MySQL 软件由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点, 一般中小型网站的开发都选择MySQL 作为网站数据库。
Spring Boot 集成MySQL 非常简单,因为Spring Boot 包含一个功能强大的资源库,借助于Spring Boot 框架,我们可以不用编写原始的访问数据库的代码, 也不用调用JDBC (Java Data Base Connectivity )或者连接池等被称为底层的代码,我们将在更高层次上访问数据库。
在springboot中集成MySQL大致有以下5个步骤:
步骤1:引入依赖:在项目的porn 文件中添加MySQL 所需的依赖
<!-- MySQL连接Java的驱动程序 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 支持通过JDBC连才妾数据库 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
步骤2:在application.properties 文件中添加数据库相关配置
# MySQL连接信息
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/sqltest
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
步骤3:设计表和实体
在MySQL的客户端工具Navicat中,创建的表如下图所示:
实体如下:
public class Stu {
private Integer stuId;
private String stuName;
private String stuPassword;
//省略get/set方法
步骤4:测试用例开发:开发项目的单元测试类,代码如下:
//JdbcTemplate :是一个通过JDBC 连接数据库的工具类。
//@Resource :自动注入,项目启动后会实例化一个JdbcTemplate对象,省去初始化工作。
@Resource
private JdbcTemplate jdbcTemplate;
/**
* MySQL集成springboot的测试
*/
@Test
public void mySqlTest() {
String sql = "select stu_id,stu_name,stu_password from stu";
//query()方法:通过传入SQL 语句和Row Mapper对象可以查询出数据库中的数据。
List<Stu> stuList = (List<Stu>) jdbcTemplate.query(sql, new RowMapper<Stu>() {
@Override
public Stu mapRow(ResultSet rs, int i) throws SQLException {
Stu stu = new Stu();
stu.setStuId(rs.getInt("stu_id"));
stu.setStuName(rs.getString("stu_name"));
stu.setStuPassword(rs.getString("stu_password"));
return stu;
}
});
System.out.println("查询数据库成功:");
for (Stu stu : stuList) {
System.out.println("id:"+stu.getStuId()+"; name:"+stu.getStuName()+"; password:"+stu.getStuPassword());
}
}
步骤5:测试,执行一下单元测试,可在控制台看到如下信息:
至此,springboot在idea上 集成MySQL数据库,完成。
为了方便,可以在idea上配置MySQL:在idea最右边,点DataBase
,添加数据库
填完信息之后,点 Test Connection
看看能不能连接。成功的话,点Apply
,ok
即可。
可对数据库中的数据进行操作:
通常,项目开发中会集成Druid:
Druid 是阿里巴巴开源项目中的一个数据库连接池。Druid 是一个JDBC 组件,包
括三部分:
- DruidDriver 代理Driver ,能够提供基于Filter-Chain 模式的插件体系;
- DruidDataSource 高效可管理的数据库连接池;
- SQLParser,支持所有JDBC 兼容的数据库,包括Oracle 、MySQL 、SQL Server 等。
Durid 在监控、可扩展、稳定性和性能方面具有明显的优势, 通过其提供的监控功能可以观察数据库连接池和SQL 查询的工作情况,使用Druid 连接池可以提高数据库的访问性能。
在项目依赖中继续添加druid 的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
</dependency>