Spring5 框架封装的jdbcTemplate学习心得

Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作
相关jar包:
在这里插入图片描述
Dao层写个接口和实现类就行
Service层写业务层具体实现操作
还有测试类test的实现
在注解文件中得开启组件扫描,创建jdbcTemplate对象,并注入dataSoruce。
具体如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 开启注解扫描   -->
<!--组件扫描-->
    <context:component-scan base-package="com.yang"></context:component-scan>
    <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对象-->
    <bean id ="jdbcTempalte" class="org.springframework.jdbc.core.JdbcTemplate">
<!--注入datasource-->
        <property name="dataSource" ref="dataSource"></property>
    </bean>   

Dao层:
接口BookDao代码:

package com.yang.dao;

import com.yang.entity.Book;

import java.util.List;

public interface BookDao {
   
   void add(Book book);
   void update(Book book);
   void delete(String id);

   int selectCount();
//查询返回对象
   Book findBookInfo(String id);
//查询返回集合
   List<Book> findAllBook();

//    批量添加数据
   void batchAddBook(List<Object[]> batchArgs);
//批量修改数据
   void batchUpdateBook(List<Object[]> batchArgs);
//    批量删除数据
   void bacthDeleteBook(List<Object[]> batcArgs) ;
}
实现类代码:
package com.yang.dao;

import com.yang.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;

import java.util.Arrays;
import java.util.List;

@Repository
public class BookDaoImpl implements BookDao{
//    注入jdbctemplate
   @Autowired
   private JdbcTemplate jdbcTemplate;
//添加的方法
   @Override
   public void add(Book book) {
       String sql ="insert into t_book values(?,?,?)";
       Object[] args={book.getUserId(),book.getUsername(),book.getUstatus()};
       int update = jdbcTemplate.update(sql,args);
       System.out.println(update);

   }
//修改的方法
   @Override
   public void update(Book book) {
       String sql = "update t_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);
   }
//删除的方法
   @Override
   public void delete(String id) {
       String sql="delete from t_book where user_id=?";
       int update = jdbcTemplate.update(sql, id);
       System.out.println(update);
   }
//查询记录数
   @Override
   public int selectCount() {
       String sql =" select count(*) from t_book";
       Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
       return count;

   }
//查询返回对象
   @Override
   public Book findBookInfo(String id) {
       String sql= "select * from t_book where user_id=?";
       Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);
       return book;
   }

   @Override
   public List<Book> findAllBook() {
       String sql = "select * from t_book";
       List<Book> bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));
       return bookList;
   }
//批量添加数据
   @Override
   public void batchAddBook(List<Object[]> batchArgs) {
       String sql= "insert into t_book value(?,?,?)";
       int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
       System.out.println(Arrays.toString(ints));

   }
//批量修改操作
   @Override
   public void batchUpdateBook(List<Object[]> batchArgs) {
       String sql= "update t_book set username=?,ustatus=? where user_id=?";
       int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
       System.out.println(Arrays.toString(ints));
   }
//批量删除操作
   @Override
   public void bacthDeleteBook(List<Object[]> batcArgs) {
       String sql = " delete  from t_book where user_id=?";
       int[] ints = jdbcTemplate.batchUpdate(sql, batcArgs);
       System.out.println(Arrays.toString(ints));
   }
}

entity报下创建book类定义book类属性

package com.yang.entity;

public class Book {
    @Override
    public String toString() {
        return "Book{" +
                "userId='" + userId + '\'' +
                ", username='" + username + '\'' +
                ", ustatus='" + ustatus + '\'' +
                '}';
    }

    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;
    }
}

Service 包下 具体service业务实现

package com.yang.service;
import com.yang.dao.BookDao;
import com.yang.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BookService {
//    注入dao
@Autowired
    private BookDao bookDao;
 public  void addBook( Book book){
     bookDao.add(book);

 }
// 修改方法
    public void updateBook(Book book)
    {
        bookDao.update(book);
    }
//    删除方法
public  void  deleteBook(String id)
{
    bookDao.delete(id);
}
//查询表中的记录数
    public int findcount()
    {
     return    bookDao.selectCount();
    }
//    查询返回对象
    public Book findOne( String id){
     return  bookDao.findBookInfo(id);
    }
//    查询返回集合
    public List<Book> findAll(){
     return bookDao.findAllBook();
    }
//    批量添加
    public void batchAdd(List<Object[]> batchArgs){
      bookDao.batchAddBook(batchArgs);
    }
//    批量修改
    public void batchUpdateBook(List<Object[]> batchArgs)
    {
        bookDao.batchUpdateBook(batchArgs);
    }
//    批量删除
    public  void batchDeleteBook(List<Object[]> batchArgs)
    {
        bookDao.bacthDeleteBook(batchArgs);
    }
}

测试包Test下test实现类:

package com.yang.test;
import com.yang.entity.Book;
import com.yang.service.BookService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.ArrayList;
import java.util.List;

public class testBook {
    @Test
    public  void  testJdbcTemplate(){
        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("true");

//        book.setUsername("java update");
//        book.setUstatus("true update");
        bookService.addBook(book);
//        bookService.updateBook(book);
// bookService.deleteBook("1");
//        int count = bookService.findcount();
//        System.out.println(count);

//        查询返回对象
//        Book one = bookService.findOne("1");
//        System.out.println(one);
//          查询返回集合对象
//        List<Book> bookList = bookService.findAll();
//        System.out.println(bookList);
//        List<Object[]> batchArgs = new ArrayList<>();
//        Object[] o1 ={"3","java","a"};
//        Object []o2 ={"4","C++","b"};
//        Object[] o3 ={"5","c","c"};
//        batchArgs.add(o1);
//        batchArgs.add(o2);
//        batchArgs.add(o3);
//        bookService.batchAdd(batchArgs);
//        List<Object[]> batchArgs= new ArrayList<>();
//        Object[] o1 ={"java001","a3","3"};
//        Object []o2 ={"C++001","b4","4"};
//        Object[] o3 ={"Mysql002","c5","5"};
//        batchArgs.add(o1);
//        batchArgs.add(o2);
//        batchArgs.add(o3);
//        bookService.batchUpdateBook(batchArgs);
        List<Object[]> batchArgs= new ArrayList<>();
        Object[] o1 ={"3"};
        Object []o2 ={"4"};
        Object[] o3 ={"5"};
        batchArgs.add(o1);
        batchArgs.add(o2);
        batchArgs.add(o3);
            bookService.batchDeleteBook(batchArgs);
    }
}

总体收获:Spring5框架中封装的jdbcTemplate 真好用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值