spring的jdbcTemplate操作
- spring框架是一站式框架
- 在dao层,使用jdbcTemplate

- jdbcTemplate对jdbc进行分装
使用jdbcTemplate进行增删改操作
- 导入jdbcTemplate使用的jar包
- 使用spring提供的DriverManagerDataSource类,设置数据库信息
- 创建JdbcTemplate对象,调用update方法实现增删改操作
- jdbcTemplate操作的是已经存在的表格的增删改查
- 添加代码:
@Test
public void add() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
dataSource.setUsername("root");
dataSource.setPassword("123");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "insert into user value(?,?)";
int update = jdbcTemplate.update(sql, "小明","23岁");
System.out.println(update);
}
@Test
public void update() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
dataSource.setUsername("root");
dataSource.setPassword("123");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "update user set age=? where username=?";
int update = jdbcTemplate.update(sql, "2355","小明");
System.out.println(update);
}
@Test
public void update() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
dataSource.setUsername("root");
dataSource.setPassword("123");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "delete from user where username=?";
int update = jdbcTemplate.update(sql,"小明");
System.out.println(update);
}
jdbcTemplate 查询的方法
- 查询单个值,使用queryForObject方法,第一参数传递sql模板,第二个参数传递返回值的类型
![image]()
@Test
public void query1() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
dataSource.setUsername("root");
dataSource.setPassword("123");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "select count(*) from user;";
Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(count);
}
- 查询一条记录,将结果封装到对象中
- 使用jdbcTemplate中的

@Test
public void query2() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
dataSource.setUsername("root");
dataSource.setPassword("123");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "select * from user where username=?";
User bean = jdbcTemplate.queryForObject(sql, new RowMapper<User>() {
public User mapRow(ResultSet result, int arg1) throws SQLException {
String username = result.getString("username");
String age = result.getString("age");
User user = new User();
user.setUsername(username);
user.setAge(age);
return user;
}
}, "小明");
System.out.println(bean);
}
- 查询全部数据
- 使用jdbcTemplate中的

- 如果要根据条件查询部分数据使用以下方法

@Test
public void query3() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
dataSource.setUsername("root");
dataSource.setPassword("123");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "select * from user";
List<User> list = jdbcTemplate.query(sql, new RowMapper<User>() {
public User mapRow(ResultSet result, int arg1) throws SQLException {
String username = result.getString("username");
String age = result.getString("age");
User user = new User();
user.setUsername(username);
user.setAge(age);
return user;
}
});
System.out.println(list);
}
spring配置c3p0连接池
- 导入c3p0连接池jar包

- 在spring的配置文件中进行配置

- 测试代码:

在dao中使用jdbcTemplate
- 在service中注入dao

- 在dao中注入jdbcTemplate

- 在jdbcTemplate注入dataSource

- 测试:
