JdbcTemplate(操作資料庫-修改和刪除功能)
阿新 • • 發佈:2021-01-02
技術標籤:Spring5
目錄
JdbcTemplate(操作資料庫-刪除功能)
1.建立資料庫
user_db資料庫的t_book表中建立兩條記錄 user_id 和 username
2.配置檔案實現
注意修改資料庫的埠號、表名、資料庫賬號密碼,特別是一些jar包的版本問題,降低版本號即可
<?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="org.example"> </context:component-scan> <!--資料庫連線池--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value="jdbc:mysql://localhost:3306/user_db?useSSL=false&useUnicode=true&characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="sise"/> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> </bean> <!-- 建立jdbcTemplate物件--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <!--需要注入資料來源資訊--> <property name="dataSource" ref="dataSource"> </property> </bean> </beans>
3.建立實體類
Book實體類的屬性對應 t_book表中的記錄
package org.example.spring.entity; public class Book { private String userId; private String username; 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; } }
4.建立dao層
介面層:
package org.example.spring.dao;
import org.example.spring.entity.Book;
public interface BookDao {
//新增的方法
void add(Book book);
//修改的方法
void update(Book book);
//刪除的方法
void delete(int id);
}
實現層:
實現層中實現對資料的增刪改
package org.example.spring.dao; import org.example.spring.entity.Book; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; @Repository public class BookDaoImpl implements BookDao{ //注入jdbcTemplate物件 @Autowired private JdbcTemplate jdbcTemplate; //新增的方法,從實體類Book中傳遞物件進來 @Override public void add(Book book) { //1.建立sql語句 String sql="insert into t_book values(?,?)"; //2.呼叫方法實現 //3.引數是可變引數,是一個數組形式,因此存在一種變式 // int update = jdbcTemplate.update(sql, book.getUserId(), book.getUsername()); //變式為 Object[] args= {book.getUserId(), book.getUsername()}; int update = jdbcTemplate.update(sql, args); //輸出影響的值 System.out.println(update); } @Override public void update(Book book) { String sql="update t_book set username=? where user_id=?"; Object[] args={book.getUsername(),book.getUserId()}; int update=jdbcTemplate.update(sql,args); System.out.println(update); } @Override public void delete(int id) { String sql="delete from t_book where user_id=?"; int update=jdbcTemplate.update(sql,id); System.out.println(update); } }
5.建立service層
呼叫dao層物件進行資料傳遞,這層寫邏輯程式碼
package org.example.spring.service;
import org.example.spring.dao.BookDao;
import org.example.spring.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@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);
}
//刪除的方法(注意,刪除是根據id去刪除)
public void deleteBook(int id){
bookDao.delete(id);
}
}
6.測試類
package org.example.spring.test;
import org.example.spring.entity.Book;
import org.example.spring.service.BookService;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestBook
{
@Test
public void test01(){
ApplicationContext context=
new ClassPathXmlApplicationContext("bean1.xml");
BookService bookService = context.getBean("bookService", BookService.class);
//因為沒有寫到頁面資料,所以直接通過new物件實現
//新增
// Book book=new Book();
// book.setUserId("2");
// book.setUsername("abc");
//
// bookService.addBook(book);
//修改
// Book book=new Book();
// book.setUserId("1");
// book.setUsername("123");
//
// bookService.updateBook(book);
//刪除
bookService.deleteBook(1);
}
}
7.測試結果:
第一條記錄已經刪除