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

用惯了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));
	}

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

这些都是一些基础的东西

猜你喜欢

转载自blog.csdn.net/Breaking_xu/article/details/80494567