一. Spring的JDBC的模板
1. Spring对持久层也提供了解决方案: ORM模块和JDBC的模板。
2. Spring提供了很多的模板用于简化开发:
3. Spring的JDBC模板的jar包:
二. Spring的JDBC的模板简单使用例子
1. 新建一个名为SpringJdbc的Java工程, 同时拷入相关jar包
2. 创建SpringJdbc.java
package com.lywgames.springjdbc;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class SpringJdbc {
public static void main(String[] args) {
// 创建连接池
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://192.168.25.138:3306/studyjdbc?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
dataSource.setUsername("root");
dataSource.setPassword("lyw123456");
// 创建jdbc模板
JdbcTemplate jdbcTemplate = new JdbcTemplate();
jdbcTemplate.setDataSource(dataSource);
Long count = jdbcTemplate.queryForObject("select count(*) from user", Long.class);
System.out.println("count = " + count);
}
}
3. 查看user表
4. 运行项目
三. Spring的JDBC的模板属性注入方式例子
1. 新建一个名为SpringJdbcProperty的Java工程, 同时拷入相关jar包
2. 创建User.java
package com.lywgames.springjdbc;
import java.io.Serializable;
import java.sql.Timestamp;
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String username;
private String password;
private Timestamp registertime;
public User() {
}
public Integer getId() {
return id;
}
public void setId(Integer 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;
}
public Timestamp getRegistertime() {
return registertime;
}
public void setRegistertime(Timestamp registertime) {
this.registertime = registertime;
}
@Override
public String toString() {
return "id=" + id + ",username=" + username + ",password=" + password + ",registertime=" + registertime;
}
}
3. 创建SpringJdbc.java
package com.lywgames.springjdbc;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Spring单元测试, 还必须引入aop模块
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class SpringJdbc {
// 注入Jdbc模板属性
@Resource(name = "jdbcTemplate")
private JdbcTemplate jdbcTemplate;
@Test
public void getAdminUserList() {
List<User> list = jdbcTemplate.query("select * from user", new MyRowMapper());
for (User user : list) {
System.out.println(user);
}
}
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class);
User user = jdbcTemplate.queryForObject("select * from user where id=?", new MyRowMapper(), 1000);
System.out.println(user);
context.close();
}
}
class MyRowMapper implements RowMapper<User>{
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User account = new User();
account.setId(rs.getInt("id"));
account.setUsername(rs.getString("username"));
account.setPassword(rs.getString("password"));
account.setRegistertime(rs.getTimestamp("registertime"));
return account;
}
}
4. 在src目录下创建jdbc.properties数据库连接配置文件
5. 在src目录下创建applicationContext.xml
6. 引入JUnit
7. 运行项目
8. JUnit运行项目