Spring JDBC的使用方法详解
1、为什么使用Spring提供的JDBC的封装?
因为Spring提供了完整的模板类以及基类可以简化开发,我们只需写少量的代码即可。
2、实例讲解
第一步:导入依赖mysql-connectorspring-jdbcspring-txspring-corespring-beansspring-context等等
第二步:数据库的建立,配置xml
第三步:获取jdbcTemplate对象
可以这样获得
privateJdbcTemplatejdbcTemplate; publicvoidsetDataSource(DataSourcedataSource){ this.jdbcTemplate=newJdbcTemplate(dataSource); }
也可以继承JdbcDaoSupport,使用super.getJdbcTemplate()获得
第四步:使用jdbcTemplate对象进行增删改查
增删改使用update(),这个方法的参数,第一个为sql语句,之后为可变参数,传入sql语句中的占位符
查询使用queryForObject()方法的第一个参数为sql中需要的参数,第三个参数为实现RowMapper接口的对象,
用于处理结果集,该方法要求返回单一的对象
query()该方法返回对象集合
publicclassUserDaoImplextendsJdbcDaoSupportimplementsIUserDao{ publicvoidsave(Useruser){ super.getJdbcTemplate().update("insertintouser(id,username,password,date,salary)values(null,?,?,?,?)", user.getUsername(),user.getPassword(),user.getDate(),user.getSalary()); } publicvoidupdate(Useruser){ super.getJdbcTemplate().update("updateusersetusername=?,password=?,date=?,salary=?whereid=?", user.getUsername(),user.getPassword(),user.getDate(),user.getSalary(),user.getId()); } publicvoiddelete(Integerid){ super.getJdbcTemplate().update("deletefromuserwhereid=?",id); } publicUserfindById(Integerid){ /*Listuser=super.getJdbcTemplate().query("select*fromuserwhereid=?",newObject[]{id}, newRowMapper (){ @Override publicUsermapRow(ResultSetresultSet,inti)throwsSQLException{ Useruser=newUser(); user.setId(resultSet.getInt("id")); user.setDate(resultSet.getDate("date")); user.setUsername(resultSet.getString("username")); user.setPassword(resultSet.getString("password")); user.setSalary(resultSet.getBigDecimal("salary")); returnuser; } //方法的返回值会直接封装到集合中 }); returnuser.size()>0?user.get(0):null;*/ Useruser=super.getJdbcTemplate().queryForObject("select*fromuserwhereid=?",newObject[]{id}, newRowMapper (){ @Override publicUsermapRow(ResultSetresultSet,inti)throwsSQLException{ Useruser=newUser(); user.setId(resultSet.getInt("id")); user.setDate(resultSet.getDate("date")); user.setUsername(resultSet.getString("username")); user.setPassword(resultSet.getString("password")); user.setSalary(resultSet.getBigDecimal("salary")); returnuser; } }); returnuser; } publicList findAll(){ List users=super.getJdbcTemplate().query("select*fromuser", newRowMapper (){ @Override publicUsermapRow(ResultSetresultSet,inti)throwsSQLException{ Useruser=newUser(); user.setId(resultSet.getInt("id")); user.setDate(resultSet.getDate("date")); user.setUsername(resultSet.getString("username")); user.setPassword(resultSet.getString("password")); user.setSalary(resultSet.getBigDecimal("salary")); returnuser; } //方法的返回值会直接封装到集合中 }); returnusers; } }
3、JdbcTemplate是JDBC核心包的中心类
知识点查询地址:
https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/data-access.html#jdbc
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。