使用JdbcTemplate訪問數據庫
參考源端:https://blog.csdn.net/liaodehong/article/details/76974827
今天用Spring Boot訪問一下數據庫,並且把數據返回到頁面中,進行增刪改查操作。主要介紹springboot通過jdbc訪問關系型MySQL,通過spring的JdbcTemplate去訪問。
創建mysql:
[sql] view plain copy
- CREATE TABLE `users` (
- `id` INT(11) NOT NULL AUTO_INCREMENT,
- `name` VARCHAR(20) NOT NULL,
- `age` INT,
- PRIMARY KEY (`id`)
- ) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
- INSERT INTO `users` VALUES (‘1‘, ‘aaa‘, 18);
- INSERT INTO `users` VALUES (‘2‘, ‘bbb‘, 19);
數據源配置
在我們訪問數據庫的時候,需要先配置一個數據源,下面分別介紹一下幾種不同的數據庫配置方式。
首先,為了連接數據庫需要引入jdbc支持,在pom.xml
中引入如下配置:
[java] view plain copy
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-jdbc</artifactId>
- </dependency>
連接生產數據源
以MySQL數據庫為例,先引入MySQL連接的依賴包,在pom.xml
中加入:
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.21</version>
- </dependency>
src/main/resources/application.properties
中配置數據源信息創建實體類
[java] view plain copy
- public class Users {
- private Integer id;
- private String name;
- private Integer age;
[java] view plain copy
- public interface UserServices {
- int add(Users users);
- int update(Users users);
- int delete(int id);
- Users findUsersById(int id);
- List<Users> findAccountList();
- }
[java] view plain copy
- @Repository
- public class UserDao implements UserServices{
- @Autowired
- <span style="white-space:pre;"> </span>private JdbcTemplate jdbcTemplate;
- @Autowired
- private NamedParameterJdbcTemplate namedParameterJdbcTemplate_love;
- @Override
- public int add(Users users) {
- return jdbcTemplate.update("insert into users(name, age) values(?, ?)",users.getName(),users.getAge());
- }
- @Override
- public int update(Users users) {
- return jdbcTemplate.update(" update users set name=?,age=? where id=?",users.getName(),users.getAge(),users.getId());
- }
- @Override
- public int delete(int id) {
- // TODO Auto-generated method stub
- return 0;
- }
- @Override
- public Users findUsersById(int id) {
- // TODO Auto-generated method stub
- return null;
- }
- @Override
- public List<Users> findAccountList() {
- return namedParameterJdbcTemplate_love.query("select *from users",new BeanPropertyRowMapper(Users.class));
- }
- }
[java] view plain copy
- @RestController
- @RequestMapping("/users")
- public class UsersController {
- @Autowired
- UserServices userServices;
- @RequestMapping(value = "/list",method = RequestMethod.GET)
- public List<Users> getUsers(){
- return userServices.findAccountList();
- }
- }
最後訪問一下,看頁面效果
Spring Boot中使用JdbcTemplate訪問數據庫
之前介紹了很多Web層的例子,包括構建RESTful API、使用Thymeleaf模板引擎渲染Web視圖,但是這些內容還不足以構建一個動態的應用。通常我們做App也好,做Web應用也好,都需要內容,而內容通常存儲於各種類型的數據庫,服務端在接收到訪問請求之後需要訪問數據庫獲取並處理成展現給用戶使用的數據形式。
本文介紹在Spring Boot基礎下配置數據源和通過JdbcTemplate編寫數據訪問的示例。
數據源配置
在我們訪問數據庫的時候,需要先配置一個數據源,下面分別介紹一下幾種不同的數據庫配置方式。
首先,為了連接數據庫需要引入jdbc支持,在pom.xml
中引入如下配置:
<dependency>
|
嵌入式數據庫支持
嵌入式數據庫通常用於開發和測試環境,不推薦用於生產環境。Spring Boot提供自動配置的嵌入式數據庫有H2、HSQL、Derby,你不需要提供任何連接配置就能使用。
比如,我們可以在pom.xml
中引入如下配置使用HSQL
<dependency>
|
連接生產數據源
以MySQL數據庫為例,先引入MySQL連接的依賴包,在pom.xml
中加入:
<dependency>
|
在src/main/resources/application.properties
中配置數據源信息
spring.datasource.url=jdbc:mysql://localhost:3306/test
|
連接JNDI數據源
當你將應用部署於應用服務器上的時候想讓數據源由應用服務器管理,那麽可以使用如下配置方式引入JNDI數據源。
spring.datasource.jndi-name=java:jboss/datasources/customers
|
使用JdbcTemplate操作數據庫
Spring的JdbcTemplate是自動配置的,你可以直接使用@Autowired
來註入到你自己的bean中來使用。
舉例:我們在創建User
表,包含屬性name
、age
,下面來編寫數據訪問對象和單元測試用例。
- 定義包含有插入、刪除、查詢的抽象接口UserService
public interface UserService {
|
- 通過JdbcTemplate實現UserService中定義的數據訪問操作
|
- 創建對UserService的單元測試用例,通過創建、刪除和查詢來驗證數據庫操作的正確性。
|
上面介紹的JdbcTemplate
只是最基本的幾個操作,更多其他數據訪問操作的使用請參考:JdbcTemplate API
通過上面這個簡單的例子,我們可以看到在Spring Boot下訪問數據庫的配置依然秉承了框架的初衷:簡單。我們只需要在pom.xml中加入數據庫依賴,再到application.properties中配置連接信息,不需要像Spring應用中創建JdbcTemplate的Bean,就可以直接在自己的對象中註入使用。
本文完整示例
使用JdbcTemplate訪問數據庫