java操作MYSQL,高手来,怎么同时执行两条语句,如果table_1新插入“待发送”,如何同步
publicclassTimerTask{publicstaticvoidmain(String[]args){Timertimer=newTimer();timer.s...
public class TimerTask {
public static void main(String[] args) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTask(), 1000, 2000);
while(true){
try {
int ch = System.in.read();
if(ch-'c'==0){
timer.cancel();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
class MyTask extends java.util.TimerTask{
public void run() {
ComboPooledDataSource ds = new ComboPooledDataSource();
try{
ds.setMaxPoolSize(1);
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setJdbcUrl("jdbc:mysql://localhost:3306/test_czy");
ds.setUser("root");
ds.setPassword("123");
JdbcTemplate jdbcTemplate=new JdbcTemplate(ds);
String str="insert into table_2 select name1,state,context from table_1 where state='待发送'";
jdbcTemplate.execute(str);
String str1="UPDATE table_1 set state='已发送'";
jdbcTemplate.execute(str1);
}catch(Exception e){
e.printStackTrace();
}
}
} 展开
public static void main(String[] args) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTask(), 1000, 2000);
while(true){
try {
int ch = System.in.read();
if(ch-'c'==0){
timer.cancel();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
class MyTask extends java.util.TimerTask{
public void run() {
ComboPooledDataSource ds = new ComboPooledDataSource();
try{
ds.setMaxPoolSize(1);
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setJdbcUrl("jdbc:mysql://localhost:3306/test_czy");
ds.setUser("root");
ds.setPassword("123");
JdbcTemplate jdbcTemplate=new JdbcTemplate(ds);
String str="insert into table_2 select name1,state,context from table_1 where state='待发送'";
jdbcTemplate.execute(str);
String str1="UPDATE table_1 set state='已发送'";
jdbcTemplate.execute(str1);
}catch(Exception e){
e.printStackTrace();
}
}
} 展开
4个回答
展开全部
private Connection conn = null;
private PreparedStatement ps = null;
try {
conn.setAutoCommit(false); //将自动提交设置为false
ps.executeUpdate("修改SQL"); //执行修改操作
ps.executeQuery("查询SQL"); //执行查询操作
conn.commit(); //当两个操作成功后手动提交
} catch (Exception e) {
conn.rollback(); //一旦其中一个操作出错都将回滚,使两个操作都不成功
e.printStackTrace();
}
事务的特性:
1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。
2) 一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。
3) 隔离性(isolation):一个事务的执行不能被其他事务所影响。
4) 持久性(durability):一个事务一旦提交,事物的操作便永久性的保存在DB中。即使此时再执行回滚操作也不能撤消所做的更改。
private PreparedStatement ps = null;
try {
conn.setAutoCommit(false); //将自动提交设置为false
ps.executeUpdate("修改SQL"); //执行修改操作
ps.executeQuery("查询SQL"); //执行查询操作
conn.commit(); //当两个操作成功后手动提交
} catch (Exception e) {
conn.rollback(); //一旦其中一个操作出错都将回滚,使两个操作都不成功
e.printStackTrace();
}
事务的特性:
1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。
2) 一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。
3) 隔离性(isolation):一个事务的执行不能被其他事务所影响。
4) 持久性(durability):一个事务一旦提交,事物的操作便永久性的保存在DB中。即使此时再执行回滚操作也不能撤消所做的更改。
展开全部
学JAVA就到广州疯狂JAVA来学习 李刚老师的疯狂JAVA体系 通俗易懂 项目很多 可以免费试听 包就业
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jdbc有事件,用事件来处理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询