java多表新增

开发工具与关键技术:java eclipse
作者:听民谣的老猫
撰写时间:2020.8.8

 

 

以前有写过c#的一些技术点分享,最近学习了java编程语言,开启了另一扇大门。

学会了我们程序员的传统 "hello world"作为开篇第一个程序后,我们就会接触到数据库的一系列增,删,查,改  
这一篇博客就讲的是java多表新增

java多表新增


多表新增最常见的肯定就是用户表和用户信息表的操作。

 
然后就是sql新增语句的编写

user和user_info表的新增sql语句,建议写的sql语句先去sql那调试。


在确定了sql语句的可执行性后就可以进行新增方法的代码编写
 

 

public boolean insert(Users t) {
		System.out.println(t.toString());
		boolean bolR=false;
		try {
			
			conn=DbUtil.getConnection();
			//将事务设置为手动提交 
			conn.setAutoCommit(false);
			ps=conn.prepareStatement(userinfoinsert,Statement.RETURN_GENERATED_KEYS);
			ps.setInt(1, t.getAge());
			ps.setInt(2, t.getSex());
			ps.setString(3, t.getIdNumber());
			ps.setString(4, t.getPicture());
			
			int i=ps.executeUpdate();
			rs = ps.getGeneratedKeys();// 返回新增的ID
			
			if (i>0 && rs.next()) {
				
				ps=conn.prepareStatement(userinsert);
				ps.setString(1, t.getUserName());
				ps.setString(2, t.getPassword());
				ps.setInt(3, t.getUserTypeId());
				ps.setTimestamp(4,new Timestamp(t.getOpDatetime().getTime()));
				ps.setInt(5, rs.getInt(1));
				int s=ps.executeUpdate();
				if (s>0) {
					bolR=true;
					//提交事务
					conn.commit();
				}
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
			//回滚事务
			  try { conn.rollback(); } 
			  catch (SQLException e1) {
				  e1.printStackTrace(); 
			   }
			 
		}finally{
			DbUtil.close(conn, ps, rs);
		}	
		return bolR;
	}

代码解析

     多表新增为了防止代码出现报错,但是在保错前就已经新增了一张表的数据所以我们开启事务,并在代码捕获异常一旦出现代码错误就进行数据的回滚。

开启事务

数据回滚

在两张表的数据全部新增完毕后再提交事务
 

两张表数据之间的类型无非就是主键外键,在user表肯定存在一个外键user_info_id去起到一个连接的作用。也就是说在我们新增了user_info表之后肯定需要拿到新增数据的对应id。

那怎么拿到我们新增数据的id呢??

就是画了荧光的代码就可以做到新增数据id的获取。
 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值