Java操作数据库的方法是什么(java,开发技术)

时间:2024-05-04 03:37:19 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

一、悲观锁(也叫行级锁)

在本次事务的执行过程当中,我们指定的记录被查询,在我查询的过程当中记录就会被锁定,任何人,任何事务都不能对我指定查询数据进行修改操作(不能改,但是可以看),直到我都查询结束。

1.使用悲观锁(在事务中的sql语句中使用)

//sql指令Stringsql="select*fromt_shuihuowhereid<?forupdate";

2..完整代码

packagecom.luosf.jdbc;importcom.luosf.jdbc.utils.JdbcUtil;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;/***JDBC中锁的使用*forupdata*/publicclassJdbcLock{publicstaticvoidmain(String[]args){Connectionconn=null;PreparedStatementstat=null;ResultSetres=null;try{//创建驱动//获取数据库对象conn=JdbcUtil.getConnection();//sql指令Stringsql="select*fromt_shuihuowhereid<?forupdate";conn.setAutoCommit(false);//开启事务//3,sql语句进行编译stat=conn.prepareStatement(sql);//给占位符填充值//JDBC下标从1开始的stat.setInt(1,16);//1,代表第一个问号Thread.sleep(1000*10);//模拟访问时间//4,执行sqlres=stat.executeQuery();//5,处理查询结果集while(res.next()){intid=res.getInt("id");Stringname=res.getString("name");Stringnickname=res.getString("nickname");System.out.println("id:"+id+"name:"+name+"昵称:"+nickname);}conn.commit();//提交事务}catch(SQLExceptionthrowables){try{if(conn!=null){conn.rollback();//回滚事务}}catch(SQLExceptione){e.printStackTrace();}throwables.printStackTrace();}catch(InterruptedExceptione){e.printStackTrace();}finally{//释放资源JdbcUtil.close(conn,stat,res);}}}

3..测试代码

packagecom.luosf.jdbc;importcom.luosf.jdbc.utils.JdbcUtil;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.SQLException;/***检测锁*/publicclassJdbcLockTest{publicstaticvoidmain(String[]args){Connectionconn=null;PreparedStatementstat=null;try{//获取驱动//获取数据库链接对象conn=JdbcUtil.getConnection();//开启事务conn.setAutoCommit(false);//锁开始后进行修改数据Stringsql="updatet_shuihuosetname='小罗'whereid=?";stat=conn.prepareStatement(sql);stat.setInt(1,10);//1,代表第一个问号intcunt=stat.executeUpdate();System.out.println("更新了"+cunt+"条数据");conn.commit();//提交事务}catch(SQLExceptionthrowables){try{if(conn!=null){conn.rollback();}}catch(SQLExceptione){e.printStackTrace();}throwables.printStackTrace();}finally{//释放资源JdbcUtil.close(conn,stat,null);}}}

需要等锁等待时间完成才能进行修改

Java操作数据库的方法是什么

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Java操作数据库的方法是什么的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:sqlserver和java如何将resultSet中的记录转换为学生对象下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18