在Spring中使用JDBC訪問關係資料
你需要什麼
- 大約15分鐘
- IntelliJ IDEA或其他編輯器
- JDK 1.8或更高版本
- Maven 3.2+
你會建立什麼
您將使用Spring的 JdbcTemplate
構建一個應用程式來訪問儲存在關係資料庫中的資料。
構建步驟
1、新增maven
依賴。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId >
</dependency>
<!-- Spring Boot支援H2(一種記憶體中的關係資料庫引擎),並自動建立一個連線。 -->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
2、新建POJO
。
public class Customer {
private long id;
private String firstName, lastName;
public Customer(long id, String firstName, String lastName) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}
@Override
public String toString() {
return String.format(
"Customer[id=%d, firstName='%s', lastName='%s']" ,
id, firstName, lastName);
}
// getters & setters omitted for brevity
}
3、建表、存資料以及取資料。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@SpringBootApplication
public class Application implements CommandLineRunner {
private static final Logger log = LoggerFactory.getLogger(Application.class);
public static void main(String args[]) {
SpringApplication.run(Application.class, args);
}
@Autowired
JdbcTemplate jdbcTemplate;
@Override
public void run(String... strings) throws Exception {
log.info("Creating tables");
jdbcTemplate.execute("DROP TABLE customers IF EXISTS");
jdbcTemplate.execute("CREATE TABLE customers(" +
"id SERIAL, first_name VARCHAR(255), last_name VARCHAR(255))");
// Split up the array of whole names into an array of first/last names
List<Object[]> splitUpNames = Arrays.asList("John Woo", "Jeff Dean", "Josh Bloch", "Josh Long").stream()
.map(name -> name.split(" ")) //將List中的字串變成字元陣列
.collect(Collectors.toList()); //將流物件轉化為List
// Use a Java 8 stream to print out each tuple of the list
splitUpNames.forEach(name -> log.info(String.format("Inserting customer record for %s %s", name[0], name[1])));
// Uses JdbcTemplate's batchUpdate operation to bulk load data
jdbcTemplate.batchUpdate("INSERT INTO customers(first_name, last_name) VALUES (?,?)", splitUpNames);
log.info("Querying for customer records where first_name = 'Josh':");
//首先查詢,然後得到結果,之後遍歷
jdbcTemplate.query(
"SELECT id, first_name, last_name FROM customers WHERE first_name = ?", new Object[] { "Josh" },
(rs, rowNum) -> new Customer(rs.getLong("id"), rs.getString("first_name"), rs.getString("last_name"))
).forEach(customer -> log.info(customer.toString()));
}
}
- 這個Application類實現了Spring Boot的
CommandLineRunner
,這意味著它將在應用程式上下文載入後執行run()
方法。 - 你可以使用JdbcTemplate的
execute
方法來執行一些DDL。 - 對於單插入語句,JdbcTemplate的
insert
方法很好。但對於多個插入,最好使用batchUpdate
。 - 使用
?
通過指示JDBC繫結變數來避免SQL注入攻擊的引數。
測試
整合完後直接執行main()
方法就可以執行Spring程式。執行結果如下:
相關推薦
在Spring中使用JDBC訪問關係資料
你需要什麼 大約15分鐘 IntelliJ IDEA或其他編輯器 JDK 1.8或更高版本 Maven 3.2+ 你會建立什麼 您將使用Spring的 JdbcTemplate 構建一個應用程式來訪問儲存在關係資料庫中的資料。 構建步驟 1
JDBC學習之路(十二)使用Spring中的JdbcTemple實現資料查詢
其實在Spring這個框架中,提供了一些對JDBC訪問資料庫的封裝,其中JdbcTemplate就是一個很好用的類,下面來演示一下這個類的一些用法。首先需要匯入commons-logging.jar,和spring.jar這兩個包。然後使用他的功能就可以了,可以說,Spring
mysql在spring中jdbc.properties連接配置
mys stat initials color one eid 現在 對象 rem ############################## mysql的數據源 ############################## jdbc.driver=com.mysql.
spring中jdbc.properties用法
jdbc.properties程式碼: jdbc.driverClassName=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@10.10.1.1:1521:ORCL jdbc.username=tes
spring中jdbc的配置
實現了資料庫加密訪問,讀寫分離,事物,動態資料來源,druid applicationContext-jdbc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://
Spring 中jdbc的配置檔案的編寫
<!-- dataSource 資料庫連線池--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <pro
Spring中JDBC中 宣告式事務管理(DataSourceTransactionManager)
參考 https://www.cnblogs.com/sonng/p/6587139.html 在一個業務的實現過程中,可能需要多條sql完成對資料庫的操作,比如賬戶登入,需要匹配使用者名稱和密碼,然後要增加積分,還要記錄登入的ip和時間,這可能需要三個sq
Spring Boot中使用Spring-data-jpa訪問資料
一 點睛 只需要通過編寫一個繼承自JpaRepository的介面就能完成資料訪問。 二 實戰 1 新建依賴 <dependencies> <dependency> <groupId>org
mongo中的遊標與資料一致性的取捨 spring-data-mongodb 使用原生aggregate語句 mongo的runCommand與集合操作函式的關係 spring-data-mongodb與mongo shell的對應關係 mongo中的遊標與資料一致性的取捨
除了特殊註釋外,本文的測試結果均基於 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0.6 我們在學習了一門程式語言時,一定要明白語句底層的意義,比如 User user= n
Spring-data-JPA清空OneToMany關係中Many一方的資料
/**父物件*/ class Parent { @OneToMany(mappedBy = "parent") List<Child> children; } /**子物件*/ class Child{ Parent parent; } 在
Spring系列學習之Spring Data JDBC資料訪問拓展
英文原文:https://spring.io/projects/spring-data-jdbc-ext 目錄 概述 特性 Core Oracle 快速開始 學習 文件 示例 注意:該專案不再積極開發,將於今年晚些時候束之高閣。 概述 Spring
Spring系列學習之Spring Data JDBC資料訪問
英文原文:https://spring.io/projects/spring-data-jdbc 目錄 概述 Aggregate Root聚合根 特性 快速開始 學習 文件 概述 Spring Data JDBC是更大的Spring Data系列的一部分,可以
spring框架總結(04)----介紹的是Spring中的JDBC模板
aos 不用 get interface comm use clas table oid 1.1 Jdbc模板概述 它是spring框架中提供的一個對象,是對原始Jdbc API對象的簡單封裝。spring框架為我們提供了很多的操作模板類,入下圖所示: 我們今天的
ASP.NET中 C#訪問資料庫用三種方式顯示資料表
第一種方式:使用DataReader從資料庫中每次提取一條資料,用迴圈遍歷表 下面是我寫的一個例子: &nbs
spring boot靜態資源訪問配置(訪問專案資料夾外的檔案)
很多類似的博文,但是實際配置後發現是有問題的。下面是完整的yml靜態資源訪問配置,在spring:下新增 mvc: static-path-pattern: /** #這個配置是預設配置 http:
朱有鵬C語言高階---4.9.2--單鏈表--訪問單鏈表中各個節點的資料(1)
朱有鵬C語言高階---4.9.2--單鏈表--訪問單鏈表中各個節點的資料(1) 朱有鵬C語言高階---4.9.3--單鏈表--將建立節點的程式碼封裝成一個函式(2) 構建一個簡單的單鏈表 目標:構建一個連結串列,然後將一些資料(譬如1,2,3三個數字)儲存在連結串列中,
Spring中訪問mysql出現遠端拒絕訪問問題解決?
MySql-Server 出於安全方面考慮預設只允許本機(localhost, 127.0.0.1)來連線訪問. !!!所以必須給root修改可以遠端訪問的許可權 1.在連線伺服器後,操作mysql系統資料庫
SSM框架下,spring中service和dao層的關係
【部分轉載】 1、java web 中dao 層和service層都使用介面,是否是為使用介面而使用介面? 一個dao或者一個service都是一個介面,然後再一個類去實現,為什麼不直接使用一個類呢?在入門級(單表)的SSM+maven程式碼裡面,我們甚至可以看到dao和service的介面
Spring Boot簡明教程之資料訪問(三):MyBatis
Spring Boot簡明教程之資料訪問(三):MyBatis 文章目錄 Spring Boot簡明教程之資料訪問(三):MyBatis MyBatis簡介 使用註解進行資料訪問 專案建立 專案目錄
Spring Boot簡明教程之資料訪問(二):JPA(超詳細)
Spring Boot簡明教程之資料訪問(二):JPA(超詳細) 文章目錄 Spring Boot簡明教程之資料訪問(二):JPA(超詳細) 建立專案 Spring Data簡介 JPA簡介 Spring Data 與JP