共計 6428 個字符,預計需要花費 17 分鐘才能閱讀完成。
本篇文章給大家分享的是有關 Spring 怎樣進行數據庫編程,丸趣 TV 小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著丸趣 TV 小編一起來看看吧。
前言
先入門,把核心理解后再回過頭來看這些我覺得效果更好,不知道說的對不對,要是理解不當,還望指教。此篇為 Spring 的數據庫編程,主要講 jdbcTemplate,讓初學者直接上手。
數據庫切入
數據庫編程是互聯網編程的基礎,Spring 框架為開發者提供了 JDBC 模板模式,即 jdbcTemplate,它可以簡化許多代碼,需要提醒的是 jdbcTemplate 在實際應用中并不常用,但我覺得對新手來說蒼蠅再小也是肉,要想往前走,就得把這些小肉先吃了。
Spring JDBC 配置
使用 Spring JDBC 操作數據庫,需要對其進行配置,配置如下
!-- 配置 spring-jdbcTemplate-- !-- 配置數據源 -- bean id= dataSource "MySQL" target="_blank" >MySQL 數據庫驅動 -- property name= driverClassName value= com.mysql.jdbc.Driver /property !-- 連接數據庫的 URL-- property name= url value= jdbc:mysql://localhost:3306/bbb?useUnicode=true amp;characterEncoding=UTF-8 /property !-- 連接數據庫的用戶名 -- property name= username value= root /property !-- 連接數據庫的密碼 -- property name= password value= root /property /bean !-- 配置 JDBC 模板 -- bean id= jdbcTemplate >配置 JDBC 模板時需要將 dataSource 注入到 jdbcTemplate, 而在數據訪問層 (Dao 類) 需要使用 jdbcTemplate 時也需要將 jdbc Template 注入到對應的 Bean 中,我在這演示用最簡單的注解注入
@Repository(userDao) public class UserDaoImpl implements UserDao { @Autowired // 使用配置文件中的 JDBC 模板 private JdbcTemplate jdbcTemplate; }
Spring Jdbc Template 的常用方法
在上面我們獲取了 JDBC 模板,下面我來說如何使用它。首先需要了解 JdbcTemplate 常用的方法,該類的常用方法是 update 和 query.
1、public int update(String sql,Object args[])
該方法可以對數據表進行增加、修改、刪除等操作。使用 args[]設置 SQL 語句中的參數,并返回更新的行數。
示例如下:
public void add() { String insertSql = insert into user values(null,?,?) Object parem1[] = { 成功 , 123456 jdbcTemplate.update(insertSql,parem1); System.out.println(UserDao 中的添加功能實現了 }
2、public List query(String sql,RowMapper rowMapper,Object args[])
該方法可以對數據表進行查詢操作,rowMapper 將結果集映射到用戶自定義的類中(前提是自定義類中的屬性要與數據表的字段對應)。
示例如下:
public void query() { String selectSql = select * from user RowMapper User rowMapper = new BeanPropertyRowMapper User (User.class); List User list = jdbcTemplate.query(selectSql,rowMapper,null); System.out.println(UserDao 中的查詢功能實現了 }
案例輔助
Pom.xml
dependencies dependency groupId junit /groupId artifactId junit /artifactId version 4.11 /version scope test /scope /dependency dependency groupId javax.servlet /groupId artifactId javax.servlet-api /artifactId version 3.1.0 /version /dependency dependency groupId javax.servlet /groupId artifactId jstl /artifactId version 1.2 /version /dependency dependency groupId mysql /groupId artifactId mysql-connector-java /artifactId version 5.1.38 /version /dependency !--spring 核心依賴 -- dependency groupId org.springframework /groupId artifactId spring-core /artifactId version 5.1.5.RELEASE /version /dependency dependency groupId org.springframework /groupId artifactId spring-beans /artifactId version 5.1.5.RELEASE /version /dependency dependency groupId org.springframework /groupId artifactId spring-context /artifactId version 5.1.5.RELEASE /version /dependency dependency groupId org.springframework /groupId artifactId spring-aop /artifactId version 5.1.5.RELEASE /version /dependency dependency groupId org.springframework /groupId artifactId spring-jdbc /artifactId version 5.1.5.RELEASE /version /dependency dependency groupId org.springframework /groupId artifactId spring-web /artifactId version 5.1.5.RELEASE /version /dependency dependency groupId org.springframework /groupId artifactId spring-webmvc /artifactId version 5.1.5.RELEASE /version /dependency dependency groupId org.springframework /groupId artifactId spring-expression /artifactId version 5.1.5.RELEASE /version /dependency dependency groupId org.springframework /groupId artifactId spring-tx /artifactId version 5.1.5.RELEASE /version /dependency !-- 日志相關 -- dependency groupId commons-logging /groupId artifactId commons-logging /artifactId version 1.2 /version /dependency /dependencies
spring-config.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 xmlns:tx= http://www.springframework.org/schema/tx xmlns:mvc= http://www.springframework.org/schema/mvc 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/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd !-- 配置注解要掃描的包 -- context:component-scan base-package= com.my /context:component-scan mvc:annotation-driven /mvc:annotation-driven !-- 將指定類 TestDaoImpl 配置給 Spring, 讓 Spring 創建其實例 -- bean id= testDIDao >User
package com.my.pojo; public class User { private int id; private String username; private String password; public User() { } public User(int id, String username, String password) { this.id = id; this.username = username; this.password = password; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return User{ + id= + id + , username= + username + + , password= + password + + } } }
UserDao
package com.my.dao; public interface UserDao { public void add(); public void delete(); public void update(); public void query(); }
UserDaoImpl
@Override public void update() { String updateSql = update user set username=? , password=? where id =? Object parem3[] = {修改 , 654321 ,3}; jdbcTemplate.update(updateSql,parem3); System.out.println(UserDao 中的修改功能實現了 } @Override public void query() { String selectSql = select * from user RowMapper User rowMapper = new BeanPropertyRowMapper User (User.class); List User list = jdbcTemplate.query(selectSql,rowMapper,null); System.out.println(UserDao 中的查詢功能實現了 for (User user : list){ System.out.println(user); } } }
測試 Test3
package com.my.test; import com.my.dao.UserDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test3 { @Autowired private UserDao userDao; public static void main(String[] args) { ApplicationContext appCon = new ClassPathXmlApplicationContext( spring-config.xml // 從容器中獲取目標對象 UserDao userDao = (UserDao) appCon.getBean(userDao //userDao.add(); userDao.delete(); userDao.update(); userDao.query(); } }
測試結果
以上就是 Spring 怎樣進行數據庫編程,丸趣 TV 小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注丸趣 TV 行業資訊頻道。