【SpringBoot 2学习笔记】《七》SpringBoot2数据库访问之JDBC(JdbcTemplate)

使用JDBC操作数据库(JdbcTemplate)

7.1 工程文件中追加使用JDBC的依赖包:pom.xml

    <!-- 导入使用JDBC访问数据库的依赖包 -->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-jdbc</artifactId>
	</dependency>
	<!-- MySQL依赖 -->
	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
	</dependency>

添加上述配置后保存,STS会自动下载对应的包文件。

7.2 配置数据源

application.properties配置MySQL数据源。

server.servlet.context-path=/gavin
server.port=9001

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://rm-wz98XXXXuo.mysql.rds.aliyuncs.com:3306/usermng?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=gavin
spring.datasource.password=gavinpw

注意:现在有些文章中可能存在记述错误的地方。

spring.datasource.driverClassName如果设定为:com.mysql.jdbc.Driver,会引起编译错误,给出的提示中已经说明了修改方法,将ClassName变更为:com.mysql.cj.jdbc.Driver

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

全局配置文件 application.properties中spring.datasource下只配置了数据库地址、连接驱动、账号、密码,默认使用的是HikariDataSource数据源(com.zaxxer.hikari.HikariDataSource)。

7.3 代码测试

创建一个UserController来进行相应的测试。

package com.gavinbj.confmng.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.gavinbj.confmng.persistence.entity.UserInfo;


@RestController
@RequestMapping("/users")
public class UserController {

	@Autowired
	JdbcTemplate jdbcTemplate;

    /**
	 * TODO:此处为了方便在浏览器确认,直接使用GET插入固定数据,主要为了体现JDBC的操作方式
	 */
	@GetMapping("/save")
	public String saveUserInfo() {

		String sqlInsert = "INSERT INTO user_info (`user_id`, `user_name`, `introduce`, `mobilephone`, `email`, `birthday`, `gender`) VALUES ('gavin', '盖文', '大学教授', '13940981276', '[email protected]', '2019-10-07', '男')";
		int rows = jdbcTemplate.update(sqlInsert);
		return "执行成功,添加" + rows + "行";
	}


	@GetMapping("/{userId}")
	public UserInfo getUserById(@PathVariable("userId") String userId) {
		String sql = "SELECT * FROM user_info WHERE user_id = ?";
		UserInfo user = jdbcTemplate.queryForObject(sql, new Object[] { userId },
				new BeanPropertyRowMapper<>(UserInfo.class));
		return user;
	}

}

插入成功后,进行检索,检索结果如下:

{
	"userId": "gavin",
	"userName": "盖文",
	"introduce": "大学教授",
	"mobilephone": "13940981276",
	"email": "[email protected]",
	"birthday": "2019-10-06T16:00:00.000+0000",
	"gender": "男"
}
发布了24 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/gavinbj/article/details/104077044