Spring5(三)——JdbcTemplate操作数据库
Spring5(三)——JdbcTemplate操作数据库
·
一、Jdbc概念与准备
1、什么是JdbcTemplate
Spring对JDBC进行封装,使用JdbcTemplate方便实现对数据库的操作。
2、准备工作
- 导入相关依赖

- 在spring配置文件中配置数据库连接池
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="url" value="jdbc:mysql:///user_db" />
<property name="username" value="root" />
<property name="password" value="root" />
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
</bean>
- 配置JdbcTemplate对象,注入DataSource
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
- 创建Service类,创建dao类,在dao类注入JdbcTemplate对象
*配置文件
<context:component-scan base-package="com.atguigu"/>
- Service
@Service
public class BookService{
//注入dao
@Autuwired
private BookDao bookDao;
}
- Repository
@Repository
public class BookDaoImpl implements BookDao{
//注入JdbcTemplate
@Autowired
private JdbcTemplate jdbcTemplate;
}
实体类
public class User{
private String userId;
private String username;
private String ustatus;
//省略get()&set()&toString()方法...
}
二、JdbcTemplate操作数据库
1、添加操作
- 编写service与dao
(1)在dao进行数据库操作
(2)调用JdbcTemplate对象里面的update方法实现操作
- dao
@Repository
public class UserDaoImpl{
public void addBook(Book book){
String sql = "insert into Book values(?,?,?);
Object[] args = {book.getUserId(),book.getUsername(),book.getUstatus()};
int insert = jdbcTemplate.update(sql,args);
System.out.println(insert);
}
}
- service
@Service
public class BookService(){
public void addBook(Book book){
bookDao.addBook(book)
}
}
- 编写测试类
public class TestDemo{
@Test
public void testJdbcTemplate(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService service = context.getBean("bookService",BookService.class);
Book book = new Book();
book.setUserId("1");
book.setUsername("Tony");
book.setUstatus("a");
service.addBook(book);
}
}
2、修改操作
- dao
@Repository
public class UserDaoImpl{
public void updateBook(Book book){
String sql = "update Book set username=?,ustatus=? where user_id=?"
Object[] args = {book.getUsername(),book.getUstatus(),book.getUserId()};
int update = jdbcTemplate.update(sql,args);
System.out.println(update);
}
}
- service
@Service
public class BookService(){
public void updateBook(Book book){
bookDao.updateBook(book)
}
}
- 编写测试方法
public class TestDemo{
@Test
public void testJdbcTemplate(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService service = context.getBean("bookService",BookService.class);
Book book = new Book();
book.setUserId("1");
book.setUsername("tony1");
book.setUstatus("bad");
service.updateBook(book);
}
}
3、删除操作
- dao
@Repository
public class UserDaoImpl{
public void deleteBook(String id){
String sql = "delete from Book Where user_id=?"
int update = jdbcTemplate.update(sql,id);
System.out.println(update);
}
}
- service
@Service
public class BookService(){
public void deleteBook(String id){
bookDao.deleteBook(id)
}
}
- 编写测试方法
public class TestDemo{
@Test
public void testJdbcTemplate(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService service = context.getBean("bookService",BookService.class);
service.deleteBook("1");
}
}
4、查询操作
查询返回某个值
- dao
public int selectOne(){
String sql = "select count(*) from Book";
int i = jdbcTemplate.queryForObject(sql,Integer.class);
return i;
}
- service
public int selectOne(){
return bookDao.selectOne();
}
- 编写测试类
public class TestDemo{
@Test
public void testJdbcTemplate(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService service = context.getBean("bookService",BookService.class);
int i = service.selectOne();
System.out.println(i);
}
}
查询返回对象
- dao
public Book selectBookInfo(String id){
String sql = "select * from Book Where user_id=?";
Book book = jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<Book>(Book.class),id);
return book;
}
- service
public Book selectBookInfo(String id){
return bookDao.selectBookInfo(id);
}
- 编写测试类
public class TestDemo{
@Test
public void testJdbcTemplate(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService service = context.getBean("bookService",BookService.class);
Book book = service.selectBookInfo("1");
System.out.println(book);
}
}
查询返回集合
- dao
public List<Book> selectAllBook(){
String sql = "select * from Book";
List<Book> bookList = jdbcTemplate.query(sql,new BeanPropertyRowMapper<Book>(Book.class));
return bookList;
}
- service
public List<Book> selectAllBook(){
return bookDao.selectAllBook();
}
- 编写测试类
public class TestDemo{
@Test
public void testJdbcTemplate(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService service = context.getBean("bookService",BookService.class);
List<Book> bookList = service.selectAllBook();
System.out.println(bookList);
}
}
5、批量操作
批量添加
- dao
public void batchAddBook(List<Object[]> args){
String sql = "insert into Book values(?,?,?)";
int[] ints = jdbcTemplate.batchUpdate(sql,args);
System.out.println(ints.lenght());
}
- service
public void batchAddBook(List<Object[]> args){
bookDao.batchAddBook(args);
}
- 编写测试类
public class TestDemo{
@Test
public void testJdbcTemplate(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService service = context.getBean("bookService",BookService.class);
List<Object[]> objects = new ArrayList<>();
Object[] o1 = {"3","ben","a"};
Object[] o2 = {"4","halen","b"};
Object[] o3 = {"5","westen","c"};
objects.add(o1);
objects.add(o2);
objects.add(o3);
service.batchAddBook(args);
}
}
批量修改
- dao
public void batchUpdateBook(List<Object[]> args){
String sql = "update Book set username=?,ustatus=? where user_id=?";
int[] ints = jdbcTemplate.batchUpdate(sql,args);
System.out.println(ints.length());
}
- service
public void batchUpdateBook(List<Object[]> args){
bookDao.batchUpdateBook(args);
}
- 编写测试类
public class TestDemo{
@Test
public void testJdbcTemplate(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService service = context.getBean("bookService",BookService.class);
List<Object[]> objects = new ArrayList<>();
Object[] o1 = {"ben1010","a123","3"};
Object[] o2 = {"halen2020","b123","4"};
Object[] o3 = {"westen3030","c123","5"};
objects.add(o1);
objects.add(o2);
objects.add(o3);
service.batchUpdateBook(args);
}
}
批量删除
- dao
public void batchDeleteBook(List<Object[]> args){
String sql = "delete from Book Where user_id=?";
int[] ints = jdbcTemplate.batchUpdate(sql,args);
System.out.println(ints.length());
}
- service
public void batchDeleteBook(List<Object[]> args){
bookDao.batchDeleteBook(args);
}
- 编写测试类
public class TestDemo{
@Test
public void testJdbcTemplate(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
BookService service = context.getBean("bookService",BookService.class);
List<Object[]> objects = new ArrayList<>();
Object[] o1 = {"3"};
Object[] o2 = {"4"};
objects.add(o1);
objects.add(o2);
service.batchDeleteBook(args);
}
}
更多推荐
所有评论(0)