用惯了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)); }
嗯,就是这样,也是很简单的,
这些都是一些基础的东西