写了一个关于提交投票信息的模块,需要同时插入两张表,衡量左右决定用Statement实现;
Statement 及PreparedStatement主要区别在于,前者执行一条sql就得编译一次,后者只编译一次;常用后者原因在于参数设置非常方便;
具体代码如下:
Connection conn = null;
try {
conn=dataSource.getConnection();
conn.setAutoCommit(false);
Statement stmt=null;
stmt=conn.createStatement();
stmt.executeUpdate("insert into web_poll(poll_title,poll_content,create_time) values('"+title+"','"+content+"', getDate())");
for (String string : options) {
stmt.executeUpdate("declare @id int set @id=IDENT_CURRENT('web_poll') insert into web_polllist(choose_name,poll_id)values('"+string+"',@id)");
}
conn.commit();
conn.setAutoCommit(true);
}catch(SQLException e){
conn.rollback();
throw(e);
} finally {
if (conn != null)
conn.close();
}
因逻辑并不复杂,所以代码也不怎么凌乱;