JdbcTemplate
1、JdbcTemplate介绍
为了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定义了一个抽象层, 以此建立一个JDBC存取框架,Spring Boot Spring Data-JPA。
作为 SpringJDBC 框架的核心, JDBC 模板的设计目的是为不同类型的JDBC操作提供模板方法. 每个模板方法都能控制整个过程,并允许覆盖过程中的特定任务。
通过这种方式,可以在尽可能保留灵活性的情况下,将数据库存取的工作量降到最低。
2、JdbcTemplate方法介绍
JdbcTemplate主要提供以下方法:
1、execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;
Execute、executeQuery、executeUpdate
2、update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句 SQL SERVCER(GO SQL语句 GO) ;
3、query方法及queryForXXX方法:用于执行查询相关语句;
4、call方法:用于执行存储过程、函数相关语句。
3.JdbcTemplate测试案例
3.1添加数据和jdbcTemplate依赖
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.2.0.RELEASE</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.32</version> </dependency>
3.2jdbc.properties数据连接
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mydata?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false jdbc.username=root jdbc.password=123
3.3applicationContext.xml核心配置文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/cache" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--引入数据库配置文件--> <context:property-placeholder location="classpath:jdbc.properties"/> <!--配置数据源--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="password" value="${jdbc.password}"/> <property name="username" value="${jdbc.username}"/> </bean> <!--配置一个JdbcTemplate实例,并注入一个dataSource数据源--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> </beans>
3.4实体类
package com.yjc.jdbctemplate;
public class MyUser {
private Integer id;
private String name;
public MyUser() {
}
public MyUser(Integer id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "MyUser{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3.5test
package com.yjc.jdbctemplate; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import java.util.List; import java.util.Map; public class JdbcTemplateTest { public static void main(String[] args) { ApplicationContext applicationContext=new ClassPathXmlApplicationContext("com/yjc/jdbctemplate/applicationContext.xml"); /*获取jdbcTemplate的bean对象*/ JdbcTemplate jdbcTemplate = applicationContext.getBean("jdbcTemplate", JdbcTemplate.class); //准备一条添加语句,可以使用占位符 /* String sql="insert into myuser value(default,?)"; //调用update()方法进行增删改操作 //第一个参数为SQL,第二位为不定长参数 int count = jdbcTemplate.update(sql, "天雁"); System.out.println("添加结果"+count); String getOne="select * from myuser where id=?";*/ RowMapper<MyUser> rowMapper=new BeanPropertyRowMapper<MyUser>(MyUser.class); /*//查询单个用户 MyUser myUser1 = jdbcTemplate.queryForObject(getOne, rowMapper, 1); System.out.println("myUser1"+myUser1); //查询所有用户 */ String selectSql="select * from myuser"; List<MyUser> query = jdbcTemplate.query(selectSql, rowMapper); for (MyUser myUser:query){ System.out.println(myUser); } /* String deletesql="delete from myuser where id=?"; int update = jdbcTemplate.update(deletesql, 2); System.out.println("update--------"+update);*/ } }