赞
踩
首先进行xml文件的配置,包括开启组件扫描,配置数据库连接池和创建jdbcTemplate对象;
- <?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.atguigu"></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="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
- <!--注入dataSource-->
- <property name="dataSource" ref="dataSource"></property>
- </bean>
-
- </beans>

其中@Autowired属于Spring内置的注解,默认的注入方式为byType(根据类型进行匹配),也就是说会优先根据接口类型去匹配并注入Bean(接口的实现类);但是,当一个接口存在多个类的话,byType这种方式就无法正常注入对象了,因为这个时候Spring会同时找到满足条件的选择,默认情况下它不知道自己选择哪一个。这种情况下,注入方式就会变为byName(根据名称进行匹配),这个名称通常就是类名(首字母小写)。
接下来是类BookService、接口BookDao和实现类BookDaoImpl:
BookService:
- package com.atguigu.service;
-
- import com.atguigu.dao.BookDao;
- import com.atguigu.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.updateBook(book);
- }
-
- //删除方法
- public void delete(Book book){
- bookDao.delete(book);
- }
-
- //查询表的记录数
- public int findCount(){
- return bookDao.selectCount();
- }
-
- //查询返回对象
- public Book fondOne(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 batchDelete(List<Object[]> batchArgs){
- bookDao.batchDelete(batchArgs);
- }
-
- }

BookDao:
- package com.atguigu.dao;
-
- import com.atguigu.entity.Book;
-
- import java.util.List;
-
- public interface BookDao {
- //添加方法
- void add(Book book);
-
- //修改方法
- void updateBook(Book book);
-
- //删除方法
- void delete(Book book);
-
- //查询表的记录数
- int selectCount();
-
- //查询返回对象
- Book findBookInfo(String id);
-
- //查询返回集合
- List<Book> findAllBook();
-
- //批量添加
- void batchAddBook(List<Object[]> batchArgs);
-
- //批量修改
- void batchUpdateBook(List<Object[]> batchArgs);
-
- //批量删除
- void batchDelete(List<Object[]> batchArgs);
- }

BookDaoImpl:
- package com.atguigu.dao;
-
- import com.atguigu.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) {
- //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);
- }
-
- @Override
- public void updateBook(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(Book book) {
- String sql = "delete from t_book where user_id=?";
- int update = jdbcTemplate.update(sql, book.getUserId());
- System.out.println(update);
- }
-
- @Override
- public int selectCount() {
- String sql = "select COUNT(*) FROM t_book";
- return jdbcTemplate.queryForObject(sql,Integer.class);
- }
-
- @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 values(?,?,?)";
- 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 batchDelete(List<Object[]> batchArgs) {
- String sql = "delete from t_book where user_id = ?";
- int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs);
- System.out.println(Arrays.toString(ints));
- }
- }

最后进行测试:
- package com.atguigu.test;
-
- import com.atguigu.entity.Book;
- import com.atguigu.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("a");
- // bookService.addBook(book);
- //
- // Book book2 = new Book();
- // book2.setUserId("2");
- // book2.setUsername("pathon");
- // book2.setUstatus("b");
- // bookService.addBook(book2);
-
- //修改
- // Book book = new Book();
- // book.setUserId("1");
- // book.setUsername("javaupup");
- // book.setUstatus("atguigu");
- // bookService.updateBook(book);
-
- //删除
- // Book book = new Book();
- // book.setUserId("1");
- // bookService.delete(book);
-
- // System.out.println(bookService.findCount());
-
- //查询返回对象
- // Book book = bookService.fondOne("1");
- // System.out.println(book.toString());
-
- //查询返回集合
- List<Book> bookList = bookService.findAll();
- for (Book item : bookList){
- System.out.println(item);
- }
-
- //批量添加
- // List<Object[]> batchArgs = new ArrayList<>();
- // Object[] o1 = {"3","spring","study"};
- // Object[] o2 = {"4","springMVC","willStudy"};
- // Object[] o3 = {"5","myBatis","willStudy"};
- // batchArgs.add(o1);
- // batchArgs.add(o2);
- // batchArgs.add(o3);
- // bookService.batchAdd(batchArgs);
-
- //批量修改
- // List<Object[]> batchArgs = new ArrayList<>();
- // Object[] o1 = {"spring++","study++","3"};
- // Object[] o2 = {"springMVC++","willStudy","4"};
- // Object[] o3 = {"myBatis++","willStudy++","5"};
- // batchArgs.add(o1);
- // batchArgs.add(o2);
- // batchArgs.add(o3);
- // bookService.batchUpdateBook(batchArgs);
-
- //批量删除
- // List<Object[]> batchArgs = new ArrayList<>();
- // Object[] o1 = {"1"};
- // Object[] o2 = {"3"};
- // Object[] o3 = {"5"};
- // batchArgs.add(o1);
- // batchArgs.add(o2);
- // batchArgs.add(o3);
- // bookService.batchDelete(batchArgs);
-
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。