休闲度假村网站建设方案,产品网站系统,网站swf怎么做,百度app免费下载文章目录1.JdbcTemplate简介2.JdbcTemplate主要方法#xff1a;3.常用方法介绍update()方法增删改query()查询方法1.JdbcTemplate简介
JdbcTemplate是Spring JDBC的核心类#xff0c;借助该类提供的方法可以很方便的实现数据的增删改查。
Spring对数据库的操作在jdbc上面做…
文章目录1.JdbcTemplate简介2.JdbcTemplate主要方法3.常用方法介绍update()方法增删改query()查询方法1.JdbcTemplate简介
JdbcTemplate是Spring JDBC的核心类借助该类提供的方法可以很方便的实现数据的增删改查。
Spring对数据库的操作在jdbc上面做了深层次的封装使用spring的注入功能可以把DataSource注册到JdbcTemplate之中。
JdbcTemplate位于 spring-jdbc-4.3.0.RELEASE.jar 中。其全限定命名为org.springframework.jdbc.core.JdbcTemplate。要使用JdbcTemlate还需一个 spring-tx-4.3.0.RELEASE.jar 这个包包含了事务和异常控制
2.JdbcTemplate主要方法
JdbcTemplate主要提供以下五类方法
execute方法可以用于执行任何SQL语句一般用于执行DDL语句update方法及batchUpdate方法update方法用于执行新增、修改、删除等语句batchUpdate方法用于执行批处理相关语句query方法及queryForXXX方法用于执行查询相关语句call方法用于执行存储过程、函数相关语句。
xml中的配置
!-- 扫描 --
context:component-scan base-packagecom.xxx.*/context:component-scan!-- 不属于自己工程的对象用bean来配置 --
!-- 配置数据库连接池 --
bean iddataSource classcom.zaxxer.hikari.HikariDataSource destroy-methodclose p:usernameroot p:password123456property namedriverClassName valuecom.mysql.jdbc.Driver/propertyproperty namejdbcUrl valuejdbc:mysql://127.0.0.1:3306/test/property
/bean!-- 配置jdbcTemplate --
bean classorg.springframework.jdbc.core.JdbcTemplate p:dataSource-refdataSource/bean3.常用方法介绍
数据库user_info表 先创建一个实体对象对应数据库表中的信息方便之后的查询操作
package com.xxx.vo;public class UserInfo {private int id;private String userName;private String password;public int getId() {return id;}public void setId(int id) {this.id id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName userName;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}Overridepublic String toString() {return UserInfo [id id , userName userName , password password ];}}update()方法增删改
修改(包含增、删、改)update()方法另有批量插入方法batchUpdate()
UserInfoDao.java代码
Repository
public class UserInfoDao {Autowired//从容器中自动扫描获取jdbcTemplateprivate JdbcTemplate jdbcTemplate;//update()实现增加数据public boolean insert(int id,String userName,String password){String sql insert into user_info values (?,?,?);return jdbcTemplate.update(sql,id,userName,password)0;}//update()实现修改public boolean update(int id,String userName,String password){String sql update user_info set user_name?,password? where id?;return jdbcTemplate.update(sql,userName,password,id)0;} //update()实现删除public boolean delete(int id){String sql delete from user_info where id?;return jdbcTemplate.update(sql,id)0;}}测试类代码
public class Test {public static void main(String[] args) {ClassPathXmlApplicationContext applicationContext new ClassPathXmlApplicationContext(application.xml);UserInfoDao userDao applicationContext.getBean(UserInfoDao.class);boolean insert userDao.insert(1,Jim, 123);boolean update userDao.update(1,Tom,123456);boolean delete userDao.delete(1);System.out.println(插入insert修改update删除delete);}
}测试结果
query()查询方法
查询查询单个值、查询一个对象、查询多个对象
查询单个值
//查询单个值
public boolean login(String userName,String password){try {String sql select id from user_info where user_name? and password?;jdbcTemplate.queryForObject(sql,String.class,userName,password);return true;} catch (DataAccessException e) {return false;}
}查询一个对象RowMapper方法和ResultSetExtractor方法
//查询单个对象
public UserInfo getById(int id){String sql select id,user_name,password from user_info where id?;//RowMapper方法class UserInfoRowMapper implements RowMapperUserInfo{Overridepublic UserInfo mapRow(ResultSet rs, int rowNum) throws SQLException {UserInfo userInfo new UserInfo();userInfo.setId(rs.getInt(id));userInfo.setUserName(rs.getString(user_name));userInfo.setPassword(rs.getString(password));return userInfo;}}return jdbcTemplate.queryForObject(sql,new UserInfoRowMapper(),id);//RowMapper方法的Lambda表达式return jdbcTemplate.queryForObject(sql,(ResultSet rs,int rowNum)-{UserInfo userInfo new UserInfo();userInfo.setId(rs.getInt(id));userInfo.setUserName(rs.getString(user_name));userInfo.setPassword(rs.getString(password));return userInfo;},id);//ResultSetExtractor方法class UserInfoResultSet implements ResultSetExtractorUserInfo{Overridepublic UserInfo extractData(ResultSet rs) throws SQLException, DataAccessException {UserInfo userInfo null;if(rs.next()){userInfo new UserInfo();userInfo.setId(rs.getInt(id));userInfo.setUserName(rs.getString(user_name));userInfo.setPassword(rs.getString(password));}return userInfo;}}return jdbcTemplate.query(sql,new UserInfoResultSet(),id);//ResultSetExtractor方法的lambda表达式return jdbcTemplate.query(sql,(ResultSet rs)-{UserInfo userInfo null;if(rs.next()){userInfo new UserInfo();userInfo.setId(rs.getInt(id));userInfo.setUserName(rs.getString(user_name));userInfo.setPassword(rs.getString(password));}return userInfo;},id);}查询多个对象RowMapper方法和ResultSetExtractor方法
//查询多个对象
public ListUserInfo selectAll(){String sql select id,user_name,password from user_info;//RowMapper方法class UserInfoRowMapper implements RowMapperUserInfo{Overridepublic UserInfo mapRow(ResultSet rs, int rowNum) throws SQLException {UserInfo userInfo new UserInfo();userInfo.setId(rs.getInt(id));userInfo.setUserName(rs.getString(user_name));userInfo.setPassword(rs.getString(password));return userInfo;}}return jdbcTemplate.query(sql,new UserInfoRowMapper());//RowMapper方法的Lambda表达式return jdbcTemplate.query(sql,(ResultSet rs,int rowNum)-{UserInfo userInfo new UserInfo();userInfo.setId(rs.getInt(id));userInfo.setUserName(rs.getString(user_name));userInfo.setPassword(rs.getString(password));return userInfo;});//ResultSetExtractor方法class UserInfoResultSet implements ResultSetExtractorListUserInfo{Overridepublic ListUserInfo extractData(ResultSet rs) throws SQLException, DataAccessException {ListUserInfo list new ArrayList();while(rs.next()){UserInfo userInfo new UserInfo();userInfo.setId(rs.getInt(id));userInfo.setUserName(rs.getString(user_name));userInfo.setPassword(rs.getString(password));list.add(userInfo);}return list;}}return jdbcTemplate.query(sql, new UserInfoResultSet());//ResultSetExtractor方法的lambda表达式return jdbcTemplate.query(sql,(ResultSet rs)-{ListUserInfo list new ArrayList();while(rs.next()){UserInfo userInfo new UserInfo();userInfo.setId(rs.getInt(id));userInfo.setUserName(rs.getString(user_name));userInfo.setPassword(rs.getString(password));list.add(userInfo);}return list;});}