java之路 —— SpringBoot整合MyBatis

在这里插入图片描述

文章目录


前言

将 Spring Boot 与数据库整合是非常重要的,因为数据库是大多数应用程序的核心,它存储了应用程序的数据,包括用户信息、订单信息、商品信息等等。通过将 Spring Boot 与数据库整合,我们可以方便地操作数据库,实现数据的持久化和管理。

Spring Boot 提供了很多方便的方式来与数据库进行整合,包括使用 JDBC、JPA、Hibernate、MyBatis 等 ORM 框架。我们只需要在项目中添加相应的依赖,然后进行配置,就可以方便地操作数据库了。

通过将 Spring Boot 与数据库整合,我们可以实现以下功能:

1. 数据持久化:将数据保存到数据库中,以便后续使用。

2. 数据查询:从数据库中查询数据,并将其返回给用户。

3. 数据更新:更新数据库中的数据,以保持数据的一致性。

4. 数据删除:删除数据库中的数据,以保持数据的完整性。

总的来说,将 Spring Boot 与数据库整合可以帮助我们更加方便地操作数据库,提高开发效率,实现数据的持久化和管理,从而使应用程序更加稳定和可靠。

步骤

所以在整合Mybatis之前呢,咱么还得先做一些准备工作,咱么首先使用SpringInitializer来构建
1.SpringBoot的基础工程,然后在此基础上再进行整合Mybatis
1.创建数据库
2.建数据库表

这里先假设:
名叫t_user,这张用户表有三个属性,分别是:

id 唯一标记
username 用户名称
age 年龄

#	数据库脚本文件	
SET	NAMES utf8mb4;
--	----------------------------
--	Table structure for t_user
--	----------------------------
DROP	TABLE	IF	EXISTS	`t_user`;
CREATE	TABLE	`t_user` (
`id` int(11)	NOT	NULL	AUTO_INCREMENT,
`username` varchar(255)	NOT	NULL,	
`age` varchar(255)	DEFAULT	NULL,	
PRIMARY	KEY	(`id`)
)	ENGINE=InnoDB	AUTO_INCREMENT=13	DEFAULT	CHARSET=utf8;	
#	插入数据	
INSERT	INTO	`t_user`(username, age) VALUES	('张三',	'18');	
INSERT	INTO	`t_user`(username, age) VALUES	( '李四',	'20');	
INSERT	INTO	`t_user` (username, age) VALUES	('王五',	'22');

2. 然后这里需要配置一下application.properties( .yml)的配置

# 端口的配置
server.port=8081
#	mapper xml 指定.
mybatis.mapper-locations=classpath*:mapper/*Mapper.xml	
# 数据库访问配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#将t_user改成自己的数据库的名称
spring.datasource.url=jdbc:mysql://localhost:3306/t_user?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456

这里注意一下,添加MySQL驱动,这里如果不指定版本默认是8.0的版本,当然你也可以指定版本,8.0的版本这里有一问比较坑的问题:

MySQL数据库默认使用的是美国的时区,而我们连接的时候用的是中国的北京时间,然后比美国晚上8个小时,所以当我们在连接数据库的时候要设置一下时区为东八区ServerTimezone=UTC
驱动类
MySQL5.x的版本使用的驱动类是com.mysql.jdbc.Driver
MySQL8.x的版本使用的驱动类是com.mysql.cj.jdbc.Driver

3. Maven的pom.xml文件 需要导入的依赖---可以在创建SpringBoot项目时可以勾选导入的技术栈

<?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.arm</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

其中需要集成druid,使用连接池。
Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBossDataSource等其他方面。

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.0</version>
</dependency>

4. 在Resource包下创建一个Mapper包,再创建一个与com.demo包下的一个mapper接口一样的mapper.xml文件,用来写入SQL语句;

注意的是接口方法名称要和SQL中的id名一样

<mapper namespace="com.demo.mapper">
  <select id="selectUserList" resultType="com.demo.Dao.user">
    select * form t_user;
  </select>
</mapper>

这里是mapper接口

public interface userMapper(){
    
    
public list<user> selectUserList();
}

5.测试一下

@SpringBootApplication	
@MapperScan(basePackages={
    
    "com.demo.mapper"})	//进行扫包
public	class	DemoApplication {
    
    
  public static	void main(String[]	args) {
    
    
      SpringApplication.run(DemoApplication.class,args);
  }
}
@RestController	
public class DemoController {
    
    

  @Autowired	
  private UserMappper userMappper;
  /**	
   *	查询所有用户信息	
   */	
  @GetMapping("/hello")	
  public List<User>	hello()	{
    
    
      List<User> users = userMappper.selectUserList();	
      return users;
  }
}

在这里插入图片描述

ok,成功

猜你喜欢

转载自blog.csdn.net/m0_68987535/article/details/131354297