spring之jdbcTemplate的crud操作
1.导入jar包
2.1创建类,完成增删改操作
package cn.itcast.jdbcTemplate;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
public class JdbcTemplateDemo1 {
//1.添加操作
@Test
public void add(){
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
dataSource.setUsername("root");
dataSource.setPassword("123");
//创建jdbcTemplate对象,设置数据源
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//调用jdbcTemplate对象里面的update方法实现添加
String sql = "insert into user values(?,?)";
int rows = jdbcTemplate.update(sql,"lucy","250");
System.out.println(rows);
}
//2.修改操作
@Test
public void update(){
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
dataSource.setUsername("root");
dataSource.setPassword("123");
//创建jdbcTemplate对象
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//调用jdbcTemplate里面的update方法实现修改
String sql = "update user set password=? where username=?";
int rows = jdbcTemplate.update(sql,"555","lucy");
System.out.println(rows);
}
//3.删除操作
@Test
public void delete(){
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
dataSource.setUsername("root");
dataSource.setPassword("123");
//创建jdbcTemplate对象
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//调用jdbcTemplate里面的update方法实现删除
String sql = "delete from user where username=?";
int rows = jdbcTemplate.update(sql,"lucy");
System.out.println(rows);
}
}
2.2创建类完成查询操作
package cn.itcast.jdbcTemplate;
import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import java.sql.*;
import java.util.List;
public class jdbcTemplateDemo2 {
//1.查询有多少条记录
@Test
public void testConut() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
dataSource.setUsername("root");
dataSource.setPassword("123");
//创建jdbcTemplate对象
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//调用方法得到记录数
String sql = "select count(*) from user";
//调用jdbcTemplate的方法实现
int count = jdbcTemplate.queryForObject(sql, Integer.class);
System.out.println(count);
}
//2.查询返回对象
@Test
public void testObject() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
dataSource.setUsername("root");
dataSource.setPassword("123");
//创建jdbcTemplate对象
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//写sql语句,根据username查询
String sql = "select * from user where username=?";
//调用jdbcTemplate的方法实现
//第二个参数是接口RowMapper,需要自己写类实现接口,自己做数据封装
User user = jdbcTemplate.queryForObject(sql, new MyRowMapper(), "lucy");
System.out.println(user);
}
//3.查询返回集合
@Test
public void testList() {
//设置数据库信息
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/spring_day03?characterEncoding=utf8");
dataSource.setUsername("root");
dataSource.setPassword("123");
//创建jdbcTemplate对象
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//写sql语句,根据username查询
String sql = "select * from user";
//调用jdbcTemplate的方法
List<User> userList = jdbcTemplate.query(sql,new MyRowMapper());
System.out.println(userList);
}
}
class MyRowMapper implements RowMapper<User> {
@Override
public User mapRow(ResultSet rs, int num) throws SQLException {
//1.从结果集里面把数据得到
String username = rs.getString("username");
String password = rs.getString("password");
//2.把得到的数据封装到对象里面
User user = new User();
user.setUsername(username);
user.setPassword(password);
return user;
}
}
总结jdbcTemplate的crud操作
- 在进行增、删、改时是使用jdbcTemplate.update(sql,“相应参数”)
在进行查询操作时
- 查询记录数:jdbcTemplate.queryForObject(sql, Integer.class);
- 查询返回对象:jdbcTemplate.queryForObject(sql, new MyRowMapper(), “lucy”);
- 查询返回集合:jdbcTemplate.query(sql,new MyRowMapper());
注:其中返回的是对象或者集合时,需要手动实现RowMapper类完成数据封装
class MyRowMapper implements RowMapper<User> {
@Override
public User mapRow(ResultSet rs, int num) throws SQLException {
//1.从结果集里面把数据得到
String username = rs.getString("username");
String password = rs.getString("password");
//2.把得到的数据封装到对象里面
User user = new User();
user.setUsername(username);
user.setPassword(password);
return user;
}
}