java事务实战,java事务实战1

/**

* 插入 product_propertyKind 表,product_property 表

* 使用事务处理方法,

* setAutoCommit(false)

* rollback()

* commit()

* 批量Batch插入方法

* addBatch()

* executeBatch()

* 传入参数

* @param conn

* @param ppk

* 返回boolean值

* @return

*/

public boolean singleToBatch(Connection conn,ProductPropertyKind ppk){

String sqlPPK="insert into product_propertyKind values(default,?,?,?,?)";

String sqlPPs="insert into product_property values(default,?,?,?)";

String sqlgetid="select last_insert_id() from product_propertyKind limit 1";

PreparedStatement pst = null;

ResultSet rs = null;

int id=0;

try {

conn.setAutoCommit(false);

pst=conn.prepareStatement(sqlPPK);

pst.setString(1,ppk.getKindName());

pst.setInt(2,ppk.getFlag());

pst.setInt(3,ppk.getState());

pst.setInt(4,ppk.getMediaKindId());

pst.executeUpdate();

//返回插入的ID

pst=conn.prepareStatement(sqlgetid);

rs=pst.executeQuery();

//赋值给id

while(rs.next()){

id=rs.getInt(1);

}

//批量赋值过程

String[] property = ppk.getPropertyName().trim().split(",");

pst=conn.prepareStatement(sqlPPs);

for(int i=0;i

pst.setInt(1,id);

pst.setString(2,property[i].trim());

pst.setInt(3,1);

//把一个SQL命令加入命令列表

pst.addBatch();

}

pst.executeBatch();

} catch (Exception e) {

// TODO Auto-generated catch block

try {

conn.rollback();

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

e.printStackTrace();

}finally{

try {

pst.close();

//最后提交

conn.commit();

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return true;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值