还有,就是数据库也是在本机上的。 表结构如下 TABLE TEST1.TB_ONE ( S_ID NUMBER(7,0) NOT NULL, SOME_BEGIN_DATE DATE NOT NULL, SOME_END_DATE DATE NOT NULL, UP_COUNT NUMBER(3,0) NOT NULL, UP_TIME TIMESTAMP(6) NOT NULL, UP_USER NUMBER(7,0) NOT NULL )主键分别是 S_ID,SOME_BEGIN_DATE。
表结构如下
TABLE TEST1.TB_ONE
(
S_ID NUMBER(7,0) NOT NULL,
SOME_BEGIN_DATE DATE NOT NULL,
SOME_END_DATE DATE NOT NULL,
UP_COUNT NUMBER(3,0) NOT NULL,
UP_TIME TIMESTAMP(6) NOT NULL,
UP_USER NUMBER(7,0) NOT NULL
)主键分别是 S_ID,SOME_BEGIN_DATE。
TB_ONE
SET
UP_TIME=SYSDATE,
UP_USER='99'
WHERE
S_ID='1'
AND
SOME_BEGIN_DATE='2009/01/01'Java部分代码如下,异常处理就不写了。
Connection conn=null; //conn
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
conn = DriverManager.getConnection("java:oracle:thin:@127.0.0.1:1521:test", "test",
"test");
String sqlstr="update into TB_ONE SET UP_TIME=SYSDATE,UP_USER=? WHERE S_ID=? AND SOME_BEGIN_DATE=?"
PreparedStatement ps=conn.prepareStatement(sqlstr);
ps.setString(1, "99");
ps.setString(2, "1");
ps.setString(3, "2009/01/01");
ps.executeUpdate();
conn.close();
没有into
用过s2dao的朋友应该知道,这玩意可以支持直接写SQL文件,但解析有时候让人很头痛。
查来查去找不到问题,我都已经下他的源码跟到实现层去了,到了最后就是它使用JDBC了。
update TB_ONE SET UP_TIME=SYSDATE,UP_USER=? WHERE S_ID=? AND SOME_BEGIN_DATE=?
如果有into会直接报错的,问题点不在这。
而且在Java代码提交堵塞后,oracle数据库的工具依然可以打开这个表,并且还是可以编辑。
编辑后是否可以提交,如果可以提交的话那就可以排除锁表的问题。再就是JDBC执行更行操作后确认提交了事务。