java单独事物控制_JAVA JDBC 事务控制(一)

package

com.company.DAO;import

com.company.bean.User;import

com.company.utils.DBUtils;import

java.sql.Connection;import

java.sql.ResultSet;import

java.sql.SQLException;import

java.sql.Statement;public

class Dao {public static

void read()

{Connection conn

=

null;Statement

stmt =

null;ResultSet

rs =

null;try

{conn =

DBUtils.getConnection();stmt

=

conn.createStatement();rs

=

stmt.executeQuery("select

name,id,money from

user");while

(rs.next())

{User user =

new

User(rs.getString("name"),

rs.getInt("id"),

rs.getInt("money"));System.out.println(user.toString());}

} catch

(Exception e)

{e.printStackTrace();System.out.println(e.getMessage());}

}public static void

test() throws

SQLException{Connection

conn =

null;Statement

stmt =

null;ResultSet

rs =

null;try

{conn =

DBUtils.getConnection();//开启事务,设置自动提交条件为假conn.setAutoCommit(false);String

selectSql = "select name,id,money

from user where id=1";stmt

=

conn.createStatement();rs

=

stmt.executeQuery(selectSql);while

(rs.next())

{User user =

new

User(rs.getString("name"),

rs.getInt("id"),

rs.getInt("money"));System.out.println(user.toString());}String

updateSql = "update user set money

= money -100 where

id=1";stmt.executeUpdate(updateSql);rs

=

stmt.executeQuery(selectSql);int

money =

0;if

(rs.next())

{User user =

new

User(rs.getString("name"),

rs.getInt("id"),

rs.getInt("money"));System.out.println(user.toString());money

=

rs.getInt("money");}updateSql

= "update user set money = money +100 where

id=4";stmt.executeUpdate(updateSql);rs

=

stmt.executeQuery("select

name,id,money from user where

id=4");if

(rs.next())

{User user =

new

User(rs.getString("name"),

rs.getInt("id"),

rs.getInt("money"));System.out.println(user.toString());money

=

rs.getInt("money");}if

(money >

1000) {throw

new

RuntimeException("钱的数量已经超过了最大值");}//提交事务conn.commit();}

catch (SQLException

e)

{e.printStackTrace();if

(conn !=

null)

{conn.rollback();}throw

e;} finally

{DBUtils.free(conn,

stmt,

rs);}

}}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值