Spring JDBCTemplate 增刪查功能 (簡單易懂)


需要的外部jar包:

mysql-connector-java
druid

配置druid

<!--配置數據庫連接池-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
        <property name="url" value="jdbc:mysql://localhost:3306/spring"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    </bean>

  

配置JDBCTemplate對象,注入DataSource

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

  

創建server類,創建dao類,在dao注入JDBCTemplate對象

創建server類,創建dao類,在dao注入JDBCTemplate對象

開啟組件掃描后

Server類創建對象並且注入Dao

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

  

Dao中注入JDBTemplate對象,用來進行數據庫的操作

@Repository
public class BookDaoImpl implements BookDao {
    //注入jdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
}

  

使用創建好的JDBCTemplate進行數據操作

添加的操作

創建一個數據庫,在數據庫中創建一個表:

create table t_book
(
    user_id int not null primary key auto_increment,
    username varchar(100) not null ,
    ustatus varchar(50) not null
)

  

對應數據庫表,創建一個實體類

public class Book {
    private String userId;
    private String username;
    private String ustatus;
​
    public String getUserId() {
        return userId;
    }
​
    public String getUsername() {
        return username;
    }
​
    public String getUstatus() {
        return ustatus;
    }
​
    public void setUserId(String userId) {
        this.userId = userId;
    }
​
    public void setUsername(String username) {
        this.username = username;
    }
​
    public void setUstatus(String ustatus) {
        this.ustatus = ustatus;
    }
}

  

編寫Service和dao,在dao進行數據庫的添加操作

調用jdbcTemplate對象里面的update()方法來進行數據庫的添加操作

有兩個參數,是一個參數SQL語句,第二個參是可變參數(SQL語句中的值)

實現數據的添加:

@Repository
public class BookDaoImpl implements BookDao {
    //注入jdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
​
    @Override
    public void add(Book book) {
        //創建SQL語句
        String sql = "insert into t_book(username,ustatus) values(?,?)";
        //調用方法實現update.(sql,args)
        int update = jdbcTemplate.update(sql, book.getUsername(), book.getUstatus());
        System.out.println(update);
    }
}

  

編寫一個測試類(測試增加數據)

public class testBook {
    @Test
    public void testJdbcTemplate(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        BookService bookService = (BookService)context.getBean("bookService");
        //創建book對象
        Book book = new Book();
        //傳入對象中的值
        book.setUsername("測試用戶名");
        book.setUstatus("成功");
        //調用增加方法
        bookService.addBook(book);
    }
}

  

測試結果(數據寫入成功~)

七月 13, 2020 4:35:17 下午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl info
信息: {dataSource-1} inited
1

  

查詢數據庫表可看到

select * from t_book

 

數據庫的添加操作(完成~)


實現數據的修改

創建修改方法

@Override
public void update(Book book) {
    String SQL = "update t_book set username=?,ustatus=? where user_id=?";
    int update = jdbcTemplate.update(SQL, book.getUsername(), book.getUstatus(), book.getUserId());
    System.out.println(update);
}

  

編寫一個測試類(測試修改數據)

public class testBook {
    @Test
    public void testJdbcTemplate(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        BookService bookService = (BookService)context.getBean("bookService");
        Book book = new Book();
        book.setUserId("1");
        book.setUsername("修改測試");
        book.setUstatus("yes~");
        //調用修改方法
        bookService.updateBook(book);
    }
}

  

測試結果(數據修改成功~)

七月 13, 2020 4:47:24 下午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl info
信息: {dataSource-1} inited
1

查詢數據庫表可看到

select * from t_book

數據庫的修改操作(完成~)


實現數據的刪除

創建刪除方法

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

  

編寫一個測試類(測試刪除數據)

public class testBook {
    @Test
    public void testJdbcTemplate(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        BookService bookService = (BookService)context.getBean("bookService");
        bookService.deleteBook("1");
    }
}

  

測試結果(數據刪除成功~)

七月 13, 2020 4:56:58 下午 com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl info
信息: {dataSource-1} inited
1

查詢數據庫表可看到

select * from t_book

數據庫的刪除操作(完成~)


以上為使用jdbctemplate進行數據庫的增刪改功能~

以下為全部源碼

Bean.xml配置文件

<?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"
       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">
​
    <!--組件掃描服務開啟-->
    <context:component-scan base-package="com.minelsg"/>
    <!--數據庫連接池-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
        <property name="url" value="jdbc:mysql://localhost:3306/spring"/>
        <property name="username" value="root"/>
        <property name="password" value="rzt123123"/>
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    </bean>
​
    <!--JDBC Template對象-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <!--注入DataSource-->
        <property name="dataSource" ref="dataSource"/>
    </bean>
</beans>

  

dao層文件

接口

public interface BookDao {
    //添加的方法
    void add(Book book);
​
    void update(Book book);
​
    void delete(String id);
}

實現類

 

@Repository
public class BookDaoImpl implements BookDao {
    //注入jdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
    //增加操作
    @Override
    public void add(Book book) {
        //創建SQL語句
        String sql = "insert into t_book(username,ustatus) values(?,?)";
        //調用方法實現update.(sql,args)
        int update = jdbcTemplate.update(sql, book.getUsername(), book.getUstatus());
        System.out.println(update);
    }
    //修改操作
    @Override
    public void update(Book book) {
        String SQL = "update t_book set username=?,ustatus=? where user_id=?";
        int update = jdbcTemplate.update(SQL, book.getUsername(), book.getUstatus(), book.getUserId());
        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);
    }
}

  

entity層文件

public class Book {
    private String userId;
    private String username;
    private String ustatus;
​
    public String getUserId() {
        return userId;
    }
​
    public String getUsername() {
        return username;
    }
​
    public String getUstatus() {
        return ustatus;
    }
​
    public void setUserId(String userId) {
        this.userId = userId;
    }
​
    public void setUsername(String username) {
        this.username = username;
    }
​
    public void setUstatus(String ustatus) {
        this.ustatus = ustatus;
    }
}

  

Server層文件

@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 class testBook {
    @Test
    public void testJdbcTemplate(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
        BookService bookService = (BookService)context.getBean("bookService");
        Book book = new Book();
        //book.setUsername("測試用戶名");
        //book.setUstatus("成功");
        //bookService.addBook(book);
        //book.setUserId("1");
        //book.setUsername("修改測試");
        //book.setUstatus("yes~");
        bookService.deleteBook("1");
    }
}

  Done~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM