首先,我们新创建一个 “SpringBootJdbcDemo” 的Maven工程。
然后我们修改编码格式以及Maven仓库地址,我们省略这个过程了。
接着我们再添加spring-boot-starter-parent,spring-boot-starter-web,spring-boot-starter-thymeleaf依赖库,然后我们还需要添加本章节要学习的spring-boot-starter-jdbc和mysql-connector-java驱动两个库文件,如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.demo</groupId>
<artifactId>SpringBootJdbcDemo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.13</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.7.18</version>
</plugin>
</plugins>
</build>
</project>
我们新添加的依赖库需要下载。下载完毕之后,我们就可以继续创建“Application”的入口类了
package com.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
这个文件基本上也是固定不变的。
接下来,我们就可以对数据库进行操作了。在之前的项目中,我们需要配置DataSource数据源,里面需要配置数据库连接参数。SpringBoot自然也提供了更加方便的使用方式。接下来,我们需要在“resources”资源目录下创建 application.properties 配置文件,我们要在这个文件里面配置数据库连接参数,SpringBoot就会自动从这个配置文件中获取数据库连接参数,如下所示
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true
spring.datasource.username = root
spring.datasource.password = 123456
这里需要提醒大家的,如果你安装的是MySQL8.0的话,我们所需的驱动和配置是不一样的,大家可以自行了解。
Spring JDBC的核心就是JDBCTemplate,有了它就能进行数据库表操作了。Spring Boot 已经自动为我们做好的所有的配置,包括数据源以及JdbcTemplate,我们只需要使用 @Autowired 注解将其注入到其他bean中使用即可。这一些都是SpringBoot遵守 “约定大于配置” 的原则来简化开发流程,接下来,我们就创建一个“StudentDao” 类
package com.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class StudentDao {
@Autowired
private JdbcTemplate jdbcTemplate;
// 查询学生列表
public List<StudentData> getStudentList(){
String sql = "select * from student_info order by stu_id asc";
return jdbcTemplate.query(sql,
new BeanPropertyRowMapper<StudentData>(StudentData.class), null);
}
}
package com.demo;
public class StudentData {
private int stuId;
private int classId;
private String stuName;
private int stuAge;
private int stuSex;
private String addTime;
// 省略get/set方法
}
这样的使用方式,明显是方便快捷了很多。
接下来,我们在“StudentController”中来使用“StudentDao”
package com.demo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import java.util.List;
import java.util.Map;
@Controller
public class StudentController {
@Autowired
private StudentDao studentDao;
@RequestMapping("/student")
public String student(Map<String, Object> map){
List<StudentData> list = studentDao.getStudentList();
map.put("list", list);
return "student";
}
}
接下来,我们在 “resources” 下创建 “templates” 目录,然后继续创建 “student.html” 视图文件
<!doctype html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>student</title>
</head>
<body>
<div th:each="item:${list}">
<span th:text="${item.stuName}"></span>
</div>
</body>
</html>
我们使用之前章节的 “Thymeleaf” 模版输出列表数据。关于更多“Thymeleaf” 模版的使用请参考之前章节。接下来,我们在创建一个名称为 “index.html” 工程访问入口文件,请大家注意的是,这个文件是静态文件,需要放置到在 “resources” 下创建 “static” 目录下,如下所示
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>index</title>
</head>
<body>
<a href="/student">student</a>
</body>
</html>
我们工程的文件结构为
接下来,我们就Run当前工程,然后浏览器访问:http://localhost:8080/
剩下的其他数据库操作,我们就不在详细介绍了,更多关于 JdbcTemplate 的使用请参考之前的章节:第四章 Spring集成JDBC-CSDN博客 Spring Boot对我们的帮助主要在于项目前期的搭建工作,具体的业务流程操作,比如数据库操作,视图层数据展示等等,还是需要我们按照之前的方式一点一点完成的,SpringBoot不会在这些方法给我们提供便捷的支持。也就是说,SpringBoot让我们更加专注业务逻辑的研发工作,而其他的工作则给我们提供一个简单的快捷工具化支持。
接下来,我们介绍如何使用 “Druid ” 数据库连接池。Druid 是阿里巴巴开源平台上一个数据库连接池实现。首先我们需要在“pom.xml”中增加“Druid ”的支持,Druid官方已提供starter启动器了
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
接下来,直接修改“application.properties” 文件
spring.datasource.type = com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/student?useUnicode=true&characterEncoding=utf-8&useSSL=false&autoReconnect=true
spring.datasource.username = root
spring.datasource.password = 123456
与之前相比,仅仅增加了 “spring.datasource.type” 一项内容。
我们重新运行项目,就可以继续访问:http://localhost:8080/
Druid Spring Boot Starter 配置属性的名称完全遵照 Druid,你可以通过 Spring Boot 配置文件来配置Druid数据库连接池和监控,如果没有配置则使用默认值。我们可以简单在 “application.properties” 文件中做几项设置
# 初始化连接数量
spring.datasource.druid.initial-size=10
# 最小线连接数量
spring.datasource.druid.min-idle=10
# 最大连接数量
spring.datasource.druid.max-active=100
我们在“application.properties” 文件中添加几个比较重要的参数设置,参数说明已经在注释中给出了。
更多Druid内容可以参考这里:常见问题 · alibaba/druid Wiki · GitHub
更多 Druid 参数设置请参考这里:DruidDataSource配置 · alibaba/druid Wiki · GitHub
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc_url}" />
<property name="username" value="${jdbc_user}" />
<property name="password" value="${jdbc_password}" />
<property name="filters" value="stat" />
<property name="maxActive" value="20" />
<property name="initialSize" value="1" />
<property name="maxWait" value="6000" />
<property name="minIdle" value="1" />
<property name="timeBetweenEvictionRunsMillis" value="60000" />
<property name="minEvictableIdleTimeMillis" value="300000" />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
<property name="poolPreparedStatements" value="true" />
<property name="maxOpenPreparedStatements" value="20" />
<property name="asyncInit" value="true" />
</bean>
我们按照规则将上面的bean设置转换为“application.properties”格式即可。
标签:JDBC,SpringBoot,04,spring,boot,springframework,datasource,import,org From: https://blog.csdn.net/richieandndsc/article/details/142913489