spring 之jdbcTemplate使用
2015-08-11 23:42
639 查看
1 方法 queryForObject() 与queryForList()
方法queryForObject(),当在数据表查找的记录不存在时,将抛异常,使用时需要添加异常处理,根据异常类型确定返回结果,建议使用queryForList()替代.
2 方法 update(sql,new Object[]{} ) 与 jdbcTemplate.update(sql, new PreparedStatementSetter())
3 插入返回主键
方法queryForObject(),当在数据表查找的记录不存在时,将抛异常,使用时需要添加异常处理,根据异常类型确定返回结果,建议使用queryForList()替代.
2 方法 update(sql,new Object[]{} ) 与 jdbcTemplate.update(sql, new PreparedStatementSetter())
在spring中第一中方式最终将转换为第二种去执行,传说第二种效率更高,未经验证. 这里只讲述这两种方式的使用,不考虑效率问题.
final String sql = "insert into t_user(c_openid, c_cellphone, c_password) values(?,?,?)"; int rowsAffected = jdbcTemplate.update(sql, new PreparedStatementSetter() { @Override public void setValues(PreparedStatement ps) throws SQLException { int index = 0; ps.setString(++index, registerData.getOpenid()); ps.setString(++index, registerData.getCellphone()); ps.setString(++index, registerData.getPassword()); } });
final String sql = "insert into t_user(c_openid, c_cellphone, c_password) values(?,?,?)"; int rowsAffected = jdbcTemplate.update(sql, new Object[]{ registerData.getOpenid(), registerData.getCellphone(), registerData.getPassword() });
3 插入返回主键
KeyHolder keyHolder = new GeneratedKeyHolder(); final String sql = "insert into t_user(c_openid, c_cellphone, c_password) values(?,?,?)"; jdbcTemplate.update(new PreparedStatementCreator() { @Override public java.sql.PreparedStatement createPreparedStatement(Connection con)throws SQLException, DataAccessException { // TODO Auto-generated method stub java.sql.PreparedStatement preparedStat = con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); int index = 0; preparedStat.setString(++index, loginData.getOpenId()); preparedStat.setString(++index, loginData.getCellphone()); preparedStat.setString(++index, loginData.getPassword()); return preparedStat; } }, keyHolder); BigInteger generatedId = BigInteger.valueOf(keyHolder.getKey().longValue());
相关文章推荐
- Java synchronized详解
- java一些常见常识
- java 重写的学习
- java 继承的学习(转)
- Java并发编程:volatile关键字解析
- Myeclipse 使用JDBC添加员工信息
- java静态初始化代码块
- keytool 错误 java.io.IOException: incorrect AVA format
- Java集合框架
- 初识JAVA项目
- eeclipse使用快捷键
- java学习之数组(二)
- Java小游戏之打飞机(二)
- 《Java实战开发经典》第四章4.3
- 《Java实战开发经典》第四章4.2
- 《Java实战开发经典》第四章4.1
- java类初始化,使用构造方法
- 深入理解Java虚拟机(1)虚拟机内存区域划分 与内存溢出异常
- java写文件时,输出不完整的原因以及解决方法close()或flush()
- 对spring默认的单列模式的理解