1. 程式人生 > 實用技巧 >Spring JDBCTemplate 增刪查功能 (簡單易懂)

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~

------------恢復內容結束------------