Base de datos de operaciones Spring-JdbcTemplate

1. Concepto y preparación

  1. ¿Qué es JdbcTemplate?
    Spring framework encapsula JDBC, y el uso de JdbcTemplate puede implementar fácilmente operaciones de base de datos.
  2. Preparación
    (1) Introduzca los paquetes jar relacionados y las dependencias
    Inserte la descripción de la imagen aquí
    (2) Configure el grupo de conexiones de la base de datos en el archivo de configuración de 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>

(3) Configure el objeto jdbcTemplate e inyecte el DataSource

    <!--创建jdbcTemplate对象-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!--注入dataSource-->
        <property name="dataSource" ref="dataSource"/>
    </bean>

(4) Cree la clase de servicio, cree la clase dao e inyecte el objeto jdbcTemplate en la clase dao

  • Archivo de configuración
<!--组件扫描-->
    <context:component-scan base-package="org.example"></context:component-scan>
  • clase de servicio
@Service
public class BookService {
    //注入dao
    @Autowired
    private BookDao userDao;
}

  • clase dao
public interface BookDao {
    
    
}

@Repository
public class BookDaoImpl implements BookDao{
    
    

    //注入JdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
}

2. Base de datos de operaciones de plantilla Jdbc (agregar)

  1. Crear la clase de entidad correspondiente a la tabla de la base de datos
public class Book {
    
    
    private String bookId;
    private String bookName;
    private String bookStatus;

    public String getBookId() {
    
    
        return bookId;
    }

    public void setBookId(String bookId) {
    
    
        this.bookId = bookId;
    }

    public String getBookName() {
    
    
        return bookName;
    }

    public void setBookName(String bookName) {
    
    
        this.bookName = bookName;
    }

    public String getBookStatus() {
    
    
        return bookStatus;
    }

    public void setBookStatus(String bookStatus) {
    
    
        this.bookStatus = bookStatus;
    }
}
  1. Servicio de escritura y dao
    (1) Agregar operación de base de datos en dao
public interface BookDao {
    
    
    void add(Book book);
}

@Service
public class BookService {
    
    
    //注入dao
    @Autowired
    private BookDao bookDao;

    public void addBook(Book book) {
    
    
        bookDao.add(book);
    }
}

(2) Llame al método de actualización en el objeto jdbcTemplate para implementar la operación.
Inserte la descripción de la imagen aquí
Hay dos parámetros: el primer parámetro es una declaración sql y el segundo parámetro es un parámetro variable, que establece el valor de la declaración sql.

@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. 调用方法实现
        int update = jdbcTemplate.update(sql, book.getBookId(), book.getBookName(), book.getBookStatus());
        System.out.println(update);
    }
}

Tres, base de datos de operaciones JdbcTemplate (modificar y eliminar)

    @Override
    public void updateBook(Book book) {
    
    
        String sql = "update t_book set book_name=?,book_status=? where book_id=?";
        Object[] args = {
    
    book.getBookName(), book.getBookStatus(), book.getBookId()};
        int update = jdbcTemplate.update(sql, args);
        System.out.println(update);
    }

    @Override
    public void delete(String id) {
    
    
        String sql = "delete from t_book where book_id=?";
        int update = jdbcTemplate.update(sql, id);
        System.out.println(update);
    }

Cuatro, base de datos operativa JdbcTemplate (la consulta devuelve un valor determinado)

  1. Cuántos registros hay en la tabla de consulta, la devolución es un valor determinado.
  2. Utilice Jdbctemplate para darse cuenta de que la consulta devuelve un valor determinado.
    Inserte la descripción de la imagen aquí
    @Override
    public int selectCount() {
    
    
        String sql = "select count(*) from t_book";
        Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
        return count;
    }

5. Base de datos de operaciones de JdbcTemplate (la consulta devuelve un objeto)
1. Escenario: consulte el libro para obtener más detalles.
2. La consulta de JdbcTemplate devuelve el objeto.
Inserte la descripción de la imagen aquí
Hay tres parámetros
. El primero es: instrucción sql y el
segundo es: RowMapper, que es una interfaz que devuelve diferentes tipos de datos. Utilice la clase de implementación en esta interfaz para completar la encapsulación de datos. El
tercer parámetro: valor de la declaración sql

    @Override
    public Book findOne(String id) {
    
    
        String sql = "select * from t_book where book_id=?";
        Book book = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper<Book>(Book.class), id);
        return book;
    }

6. Base de datos de operaciones JdbcTemplate (recopilación de devoluciones de consultas)
1. Escenario: paginación de la lista de libros de consultas ...
2. Llame al método JdbcTemplate para implementar el método de devolución de consultas
Inserte la descripción de la imagen aquí

    @Override
    public List<Book> findAllBook() {
    
    
        String sql = "select * from t_book";
        List<Book> bookList = jdbcTemplate.query(sql, new BeanPropertyRowMapper<Book>(Book.class));
        return bookList;
    }

Siete, base de datos de operaciones JdbcTemplate (operación por lotes)
1. Operación por lotes: varios registros en la tabla de operaciones
2. JdbcTemplate realiza la operación de adición por lotes
Inserte la descripción de la imagen aquí
Hay dos parámetros: el primer parámetro: instrucción sql. El segundo parámetro: recopilación de listas, agregar varios registros de datos

    @Override
    public void batchAddBook(List<Object[]> batchArgs) {
    
    
        String sql = "insert into t_book values(?,?,?)";
        int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
        System.out.println(Arrays.toString(ints));
    }

3. JdbcTemplate realiza la operación de modificación por lotes

    @Override
    public void batchUpdateBook(List<Object[]> objects) {
    
    
        String sql = "update t_book set book_name=?, book_status=? where book_id=?";
        jdbcTemplate.batchUpdate(sql, objects);
    }

Nota: Cada elemento en la matriz Ojbect [] debe corresponder al marcador de posición "?" En la declaración sql uno por uno, no cometa un error en el orden.
4. JdbcTemplate realiza la operación de eliminación por lotes

   @Override
    public void batchDeleteBook(List<Object[]> objects) {
    
    
        String sql = "delete from t_book where book_id=? and book_name=? and book_status=?";
        jdbcTemplate.batchUpdate(sql, objects);
    }

Supongo que te gusta

Origin blog.csdn.net/AmorFati1996/article/details/109507101
Recomendado
Clasificación