小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
JdbcTemplate
它是spring框架中的一个对象, 一个操作数据库的模板类. 是对Jdbc API对象的简单封装.
导入JdbcTemplate
向pom.xml文件中导入spring-jdbc和spring-tx依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.16.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.16.RELEASE</version>
</dependency>
使用Navicat创建users表
在代码中创建User类
public class User {
private String username;
private String password;
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;
}
@Override
public String toString() {
return "User{" +
"username='" + username + ''' +
", password='" + password + ''' +
'}';
}
}
手动创建数据源和模板对象
// 创建数据源对象
ComboPooledDataSource ds = new ComboPooledDataSource();
ds.setJdbcUrl("jdbc:mysql://localhost:3306/LCLDataBase");
ds.setUser("root");
ds.setPassword("fengqing2018");
// 创建Jdbc模板
JdbcTemplate jt = new JdbcTemplate();
// 给模板设置数据源对象
jt.setDataSource(ds);
spring创建数据源和模板对象
- 创建jdbc.properties文件
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/LCLDataBase
jdbc.user=root
jdbc.password=fengqing2018
- 创建数据源和模板Bean
<!-- 加载配置文件-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 数据源对象-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"/>
<property name="user" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 模板对象-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
从容器中获得JdbcTemplate对象
ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
JdbcTemplate jt = app.getBean(JdbcTemplate.class);
JdbcTemplate的update方法
添加操作
jt.update("insert into users (username, password) values (?, ?)", "yuer", "111222");
修改操作
jt.update("update users set password = ? where username = ?", "111111", "tianming");
删除操作
jt.update("delete from users where username = ?", "yuer");
JdbcTemplate的query方法
查询一条数据
User u = jt.queryForObject("select * from users where username = ?", new BeanPropertyRowMapper<User>(User.class), "shaosiming");
System.out.println(u);
查询多条数据
List<User> userList = jt.query("select * from users", new BeanPropertyRowMapper<User>(User.class));
System.out.println(userList);
使用聚合语句
Integer i = jt.queryForObject("select count(*) from users", Integer.class);
System.out.println(i);