Java操作数据库的方法是什么
导读:本文共1684.5字符,通常情况下阅读需要6分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 一、悲观锁(也叫行级锁)在本次事务的执行过程当中,我们指定的记录被查询,在我查询的过程当中记录就会被锁定,任何人,任何事务都不能对我指定查询数据进行修改操作(不能改,但是可以看),直到我都查询结束。1.使用悲观锁(在事务中的sql语句中使用)//sql指令Stringsql="select*fromt_shuihuowhereid<?forup... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。一、悲观锁(也叫行级锁)
在本次事务的执行过程当中,我们指定的记录被查询,在我查询的过程当中记录就会被锁定,任何人,任何事务都不能对我指定查询数据进行修改操作(不能改,但是可以看),直到我都查询结束。
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);}}}
需要等锁等待时间完成才能进行修改
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
Java操作数据库的方法是什么的详细内容,希望对您有所帮助,信息来源于网络。