使用JdbcTemplate返回对象 添加时返回主键

这篇博客讲述了在从Mybatis转向使用JdbcTemplate时,如何在插入数据后获取主键值,以及如何将返回结果改为直接返回对象,避免使用集合取值的不便。通过示例代码展示了获取主键的简单方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用惯了mybatis这个持久层框架,一时间再次使用jdbc感到有些不适应

尤其是写sql的地方需要对sql进行拼接,有条件的时候尤其麻烦

当我添加一条数据的时候要得到它的主键,总不能在查一次得到主键吧,

于是试验了好多次,查了许多资料,得到返回主键代码如下

@Override
	public int addTcarPhone(String contacePhone, String driverName, String exhibitionName) {
		String sql = "INSERT INTO t_car_phone(phone,car_no,exhibition) VALUES('" + contacePhone + "','" + driverName
				+ "','" + exhibitionName + "')";
		KeyHolder keyHolder = new GeneratedKeyHolder();
		jdbcTemplate.update(new PreparedStatementCreator() {
			public PreparedStatement createPreparedStatement(Connection conn) throws SQLException {
				PreparedStatement ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
				return ps;
			}
		}, keyHolder);
		return keyHolder.getKey().intValue();
	}

return的是一个int值,如果要返回long值得话可以 return keyHolder.getKey().longValue();  返回一个long值

嗯,返回主键就是这么简单!


再说如何返回对象

因为我接手的这个项目之前全是用集合来接收对象的,导致在取值的时候先要这样取  --list.get(0).getId

总之这样很麻烦的,之后我把他们都改成了用对象接收

//得到展会名称
	@Override
	public ParkExhibition queryExhibition(Integer eid) {
		String sql = "SELECT exhibition_name exhibitionName FROM park_exhibition WHERE eid = "+eid+"";
		return jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<ParkExhibition>(ParkExhibition.class));
	}

嗯,就是这样,也是很简单的,

这些都是一些基础的东西

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值