一、JdbcTemplate(概念和准备)
1、Spring框架对JDBC进行封装,使用JdbcTemplate方便实现对数据库操作
2、准备工作
(1)引入相关jar包
链接:https://pan.baidu.com/s/1KjSq-sdsz6wgXmPxvAY5ug
提取码:oy66
(2)在spring配置文件中配置数据库连接池
(3)配置JdbcTemplate对象,注入DataSource
(4)创建service类,创建dao类,在dao注入jdbcTemplate对象
①配置文件
②Service
@Service
public class BookService {
//注入dao
@Autowired
private BookDao bookDao;
}
③Dao
@Repository
public class BookDaoImpl {
//注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
}
(5)创建数据库
二、JdbcTemplate操作数据库(添加)
1、对应数据库创建实体类
public class Book {
private String userId;
private String username;
private String ustatus;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUstatus() {
return ustatus;
}
public void setUstatus(String ustatus) {
this.ustatus = ustatus;
}
}
2、编写service和dao
(1)在dao进行数据库添加操作
(2)调用JdbcTemplate对象里面update方法实现添加操作
update(string sql,Object... args)
有两个参数(第一个参数:sql语句,第二个参数:可变参数,设置sql语句值)
@Service
public class BookService {
//注入dao
@Autowired
private BookDao bookDao;
//添加的方法
public void addBook(Book book){
bookDao.add(book);
}
}
@Repository
public class BookDaoImpl implements BookDao{
//注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
//添加的方法
@Override
public void add(Book book) {
// 1、创建sql语句
String sql = "insert into t_book values(?,?,?)";
// 2、调用方法实现
Object[] args = {book.getUserId(),book.getUsername(),book.getUstatus()};
int update = jdbcTemplate.update(sql,args);
System.out.println(update);
}
3、测试类
@Test
public void testJdbacTemplate(){
ApplicationContext context=
new ClassPathXmlApplicationContext("bean1.xml");
BookService bookService =context.getBean("bookService", BookService.class);
Book book =new Book();
book.setUserId("1");
book.setUsername("java");
book.setUstatus("a");
bookService.addBook(book);
}
一行受到影响
信息: {dataSource-1} inited
1
查看数据库
三、JdbcTemplate操作数据库(修改和删除)
// 1、修改
@Override
public void updateBook(Book book) {
// 1、创建sql语句
String sql = "update t_book set username=?,set ustatus=?where user_id=?";
// 2、调用方法实现
Object[] args = {book.getUsername(),book.getUstatus(),book.getUserId()};
int update = jdbcTemplate.update(sql,args);
System.out.println(update);
}
// 2、删除
@Override
public void delete(String id) {
// 1、创建sql语句
String sql = "delete from t_book where user_id=?";
// 2、调用方法实现
int update = jdbcTemplate.update(sql,id);
System.out.println(update);
}
}
测试代码
@Test
public void testJdbacTemplate(){
ApplicationContext context=
new ClassPathXmlApplicationContext("bean1.xml");
BookService bookService =context.getBean("bookService", BookService.class);
//1、修改
Book book =new Book();
book.setUserId("1");
book.setUsername("spring");
book.setUstatus("oykq");
bookService.updateBook(book);
// 2、删除
}
四、JdbcTemplate操作数据库(查询返回某个值)
1、查询表里面有多少条记录,返回时某个值
2、使用JdbcTemplate实现查询返回某个值代码
queryForObject(string sql,class
有两个参数(第一个参数:SQL语句,第二个参数:返回类型Class)
//查询表记录数
@Override
public int selectCount() {
// 1、创建sql语句
String sql = "select count(*) from t_book";
// 2、调用方法实现
Integer count= jdbcTemplate.queryForObject(sql,Integer.class);
return count;
}
测试代码
//查询返回某个值
int count =bookService.findCount();
System.out.println(count);
}
五、JdbcTemplate操作数据库(查询返回对象)
1、场景:查询图书详情
2、JdbcTemplate实现查询返回对象
queryForObject(string sql,RowMapper
有三个参数(第一个参数:sql语句,第二个参数:RowMapper(是一个接口,针对返回不同类型数据,使用这个接口里面实现类完成数据封装),第三个参数:sql语句值)
//查询返回对象
@Override
public Book findBookInfo(String id) {
// 1、创建sql语句
String sql = "select * from t_book where user_id=?";
// 2、调用方法实现
Book book= jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper(Book.class),id);
return book;
}
测试代码
//查询返回对象
Book book = bookService.findOne("1");
System.out.println(book);
测试结果
信息: {dataSource-1} inited
Book{userId='1', username='aaa', ustatus='a'}
六、JdbcTemplate操作数据库(查询返回集合)
1、场景:查询图书列表分页...
2、调用JdbcTemplate实现实现查询返回集合
query(string sql,RowMapper
有三个参数(第一个参数:sql语句,第二个参数:RowMapper(是一个接口,针对返回不同类型数据,使用这个接口里面实现类完成数据封装),第三个参数(可忽略):sql语句值)
//查询返回集合
@Override
public List findAllBook() {
// 1、创建sql语句
String sql = "select * from t_book";
// 2、调用方法实现
List bookList= jdbcTemplate.query(sql,new BeanPropertyRowMapper(Book.class));
return bookList;
测试代码
//查询返回对象
List bookList = bookService.findAll();
System.out.println(bookList);
输出结果
信息: {dataSource-1} inited
[Book{userId='1', username='aaa', ustatus='a'}, Book{userId='2', username='bbb', ustatus='b'}]
七、JdbcTemplate操作数据库(批量操作)
1、批量操作:操作表里面多条记录
2、JdbcTemplate实现批量添加操作
batchUpdate(String sql,List
有两个参数(第一个参数:sql语句,第二个参数:List集合,添加多条记录数据)
service添加批量添加的方法
//批量添加
public void batchAdd(List
@Override
public void batchAddBook(List
测试代码
//批量添加
List
运行结果
信息: {dataSource-1} inited
[1, 1, 1]
查看数据库
3、JdbcTemplate实现批量修改操作
@Override
public void batchUpdateBook(List
//批量修改
List
3、JdbcTemplate实现批量删除操作
//批量删除
@Override
public void batchDeleteBook(List
//批量删除
List
目录
一、JdbcTemplate(概念和准备)
二、JdbcTemplate操作数据库(添加)
三、JdbcTemplate操作数据库(修改和删除)
四、JdbcTemplate操作数据库(查询返回某个值)
五、JdbcTemplate操作数据库(查询返回对象)
六、JdbcTemplate操作数据库(查询返回集合)
七、JdbcTemplate操作数据库(批量操作)



