//2.进行插入方法 public boolean charu(Image Image){ int count[]; int count1[]; boolean flag=false; //1.先连接数据库 Connection connection=getCon(); PreparedStatement pst = null; PreparedStatement pst2 = null; String sql="INSERT INTO tb_banqiimgs(img_name,img_path) values(?,?)"; String sql2="INSERT INTO tb_areas(area_id,areaTitle,areaLink,areaMapInfo) values(?,?,?,?)"; Integer enterInfoId = null; try { connection.setAutoCommit(false);// 需要用到事务,不能让他自动提交,需要手动提交 pst = (PreparedStatement) connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pst2 = connection.prepareStatement(sql2);// sql2表示对另一张表的插入记录 pst.setString(1,Image.getImg_name()); pst.setString(2,Image.getImage()); pst.addBatch(); pst2.setInt(1,1); pst2.setString(2,"haha"); pst2.setString(3,"wocao"); pst2.setString(4,"hehe"); pst2.addBatch(); count = pst.executeBatch(); count1 = pst2.executeBatch(); connection.commit(); //提交事务,这个非常重要 for(int i : count){ if(i == 0) { connection.rollback(); // 回滚,非常重要 System.out.println("======出现异常,回滚========="); } } for(int i : count1){ if(i == 0) { connection.rollback(); // 回滚,非常重要 System.out.println("==111====出现异常,回滚====111====="); } } ResultSet rst = pst.getGeneratedKeys(); if(rst.next()) { enterInfoId = rst.getInt(1); System.out.print("获取自动增加的id号=="+enterInfoId+"\n"); } flag=true; }catch (SQLException e){ e.printStackTrace(); } return flag; }
jdbc一次可以插入多个表 ,多条记录
猜你喜欢
转载自blog.csdn.net/qq_37164847/article/details/80250447
今日推荐
周排行