1. 用.bat文件執行 ewfmgr C: -commit命令
1、首先Windows下執行java代碼編譯生成的class文件的命令,命令:java。
2. java 讀取blob類型存成.doc操作!!
這個地方加個判斷
con.commit(); //正式提交
rset.close();
改成:
if (con != null)
con.commit(); // 正式提交
rset.close();
還有:
File f = new File("f:\\test\\1.doc");
後面加一句
if (!f.exists())
f.mkdir();
另外建議你操作完成後把該關閉的都關閉 比如con.close();
stmt.close();等等
補充:
我這邊的測試已經成功,可以寫入文件。
你把這個路徑「f:\\test\\1.doc」手動建出來,然後試試,不行的話我再幫你查找原因
3. JAVA JDBC事務提交的疑問。
>>啟動事務 conn.setAutoCommit();
這個不是啟動事務,而是設置事務是否自動提交,默認是自動提交,如果要手動控的話,寫成conn.setAutoCommit(false);
if(rs.next){
>>> ...執行更新
conn.commit();
}
這個也不對,RS不可能執更新操作。只能是查詢。
如果你進行了鎖表操作,那麼如果沒有commit()或rollbak()方法,是不會進行解鎖操作的。
下面給你些代碼段以做參考。
public class SQLCondition{
public ResultSet execuQuery(Connection conn) throws SQLException{
檢索操作.......
}
public int execuUpdate(Connection conn) throws SQLException{
更新操作.......
}
}
public class DBAccess(){
public void execute(){
SQLCondition condition = .....;
Connection conn = .....;
try{
conn.setAutoCommit(false); //設成非自動提交
condition.execuQuery(conn);
condition.execuUpdate(conn);
//如果操作成功會走到這一步,進行提交,可以解鎖
conn.commit();
}catch(SQLException){
//出現任何的SQL異常都可以捕捉到,進行事務回滾,也可以解鎖。
conn.rollbak();
}
}
}
>>自動默認是回滾事務?
默認的話,是執行一條就進行提交,如果錯了會回滾。