hh 表示12小時制
取消註冊控件
regsvr32 /u "D:\XXX.ocx"
====================================================================================================
利用MyEclipse從數據庫反向生成實體類之Hibernate方式
第一步:
window-->open Perspective-->MyEclipse Java Persistence進行了上面的操作後會出現一個視圖
DB Brower:MyEclipse Derby,點擊右鍵新建一個在出現的面板中,driver template中選擇MySQL的,
driver name自己寫個隨便的,Connection URL就寫平常的JDBC中的URL,用戶密碼也是的,
接下來就是add Jars了這個JAR大家很清楚肯定是MYSQL的驅動包了測試下是否可用,可用就點擊下一步完成就行了,
這時在視圖中會出現你寫的driver name的那個圖標了,點擊圖標可以看到數據庫中所有的表。
第二步:
選中項目右鍵-->MyEclipse-->add Hibernate Capabilities 這裏我們當然是希望用最新的hibernate3.3的了,
雖然說目前已經有3.5的了,但是工具IDE就支持3.3咱就用吧,
然後如果需要用到在實體類上添加註釋的話那麼選中緊挨着的add Hibernate Annotations Support
然後下一步選中一個目錄存放自動生成hibernate.cfg.xml文件,下一步選中一個DB Driver中我們第一步建立的那個,
然後下一步選中一個目錄存放自動生成的HibernateSessionFactory工具類。
第三步:
到DB Brower中那個新建的選中點開到所有表選中並且點擊右鍵
--->Hibernate Reverse Enginnering 選中目錄存放將要反轉出來的實體類並且勾選中第一個Create POJO<>DB
這個選中add Hibernate mapping..用來在實體類中添加註釋映射,選中Update Hibernate configuration..
用來將生成的實體類映射到上一步生成的hibernate.cfg.xml中去,接着再下一步到typeMapping
這裏選中Hibernate type類型,再到Id Generator這裏,我們可以手動寫上guid讓它生成,
下面的選中Generate version and timestamp tags用來在有version字樣的數據庫列生成表的字段時自動加上@version註解,
OK這樣下一步到完成。
==================================================================================================
問題:在執行Hibernate的插入和更新記錄是出現異常,貌似是不識別別名,應該不支持這一種的格式的HQL,
但是在上一個版本的服務中能正常使用,
解決:問題最終確定爲時antlr-2.7.6.jar的問題,原來的jar包爲antlr-2.7.5.jar,這個包應該是解析HQL的。
==================================================================================================
2012-04-19
問題:在通過調用URL來執行servlet動作,對數據庫進行增刪改查時,出現中文信息從客戶端傳到後臺是亂碼。
dataProxy = new HttpProxy(GWT.getModuleBaseURL()
+ "GetXXXServlet?operate=3&authName=" + PubJSFunc.urlChinese(authName));
解決:
//對URl中的中文進行編碼
public static native String urlChinese(String parameter) /*-{
// return escape(parameter); //不能正常使用
return encodeURI(encodeURI(parameter));
}-*/;
//後臺的處理,對獲取的中文參數進行解碼
URLDecoder.decode(request.getParameter("authNodeName"), "UTF-8");
==================================================================================================
問題:在配置上Hibernate的WEB項目部署到tomcat上時,出現好多異常,原因是找不到所引用的JAR包
解決:把第三方jar包導入到tomcat目錄下的lib下即可。
==================================================================================================
問題:把web service項目發佈到tomcat下是,(web service 是集成hibernate的),找不到hibernate的配置文件
解決:把myeclipse下編譯的com中的.class文件拷貝到tomcat下的項目目錄下的web-info下的classes即可。
==================================================================================================
問題:在生成PKCS12的證書安裝文件是報異常,如下:
Key protection algorithm not found: java.security.KeyStoreException: Certificate chain is not validate
因爲JDK本身不支持PKCS12的KeyStore,
解決:在生成KeyStore實例時,指定用“BC”Provider,
outputKeyStore = KeyStore.getInstance("PKCS12", "BC");
問題解決!
注意:java在生成證書庫時JKS和PKCS12的步驟是一樣的,步驟如下:
PKCS8EncodedKeySpec pksc8KeySpec = new PKCS8EncodedKeySpec(derRSAprivkey);
//實例化密鑰工廠,並制定RSA算法
KeyFactory keyFactory;
Key privateKey = null;
KeyStore outputKeyStore = null;
CertificateFactory cf = null;
1.需要有證書的公鑰和私鑰,公鑰需要生成Certificate
2.keyFactory = KeyFactory.getInstance("RSA");
privateKey = keyFactory.generatePrivate(pksc8KeySpec);
3.outputKeyStore = KeyStore.getInstance("PKCS12", "BC");
outputKeyStore.load(null, password.toCharArray());
cf = CertificateFactory.getInstance("x509");
Certificate[] certChain = new Certificate[2];
String rsaPubKey = rsaKeyPair.getCpubkey();
String rsaCert = 。。。
byte[] rsaCertDer = Base64.decode(rsaCert);
InputStream isCert = new DataInputStream(new ByteArrayInputStream(rsaCertDer));
try {
certChain[0] = cf.generateCertificate(isCert);
} catch (CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
isDeviceCert = new DataInputStream(new ByteArrayInputStream(Base64.decode(rootCertPem)));
try {
certChain[1] = cf.generateCertificate(isCert);
} catch (CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
outputKeyStore.setKeyEntry("XXX", privateKey, password.toCharArray(), certChain);
FileOutputStream out3 = new FileOutputStream("C://XXX.pfx");
outputKeyStore.store(out3, password.toCharArray());
==================================================================================================