Mybatis初步学习

78 阅读2分钟
  • 本文章为黑马javaweb学习笔记
  • Mybatis是一款优秀的持久层框架,用于简化JDBC的开发
  • Springboot中已经集成了Mybatis框架,只需要在创建工程时勾选Mybatis及MySQL即可
  • 下面是Spring的配置文件,文件为src/main/resources/application.properties
#配置数据库连接信息
#驱动类名称
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.druid.url=jdbc:mysql://localhost:3306/test
#数据库连接的用户名
spring.datasource.druid.username=root
#连接数据库的密码
spring.datasource.druid.password=

其中spring.datasource.druid是因为采用了druid连接池,druid连接池是一款由阿里开发的,功能强大的数据库连接池,是目前最好的连接池技术之一。如果想采用Spring自带的连接池,只需要spring.datasource即可,也就是无需指定druid。

image.png

image.png

  • 接下来展示代码,首先是目录结构

image.png 在该项目中Mapper负责进行数据库操作,pojo负责存储数据库数据中对应的实体类,test负责测试程序

  • AccountMapper
package springmybatis.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import springmybatis.pojo.Account;

import java.util.List;

@Mapper//在运行是会自动生成该接口的实现类对象,并且将该对象交给IOC容器管理
public interface AccountMapper {
    //表示其为查询语句并且后面即为查询语句
    @Select("select * from test.account")
    public List<Account> sqlAccount();
}

image.png

image.png 接下来是pojo中的Account类

@Data//使用该参数可以生成所以get/set方法,tostring和equals方法等
@NoArgsConstructor//无参构造
@AllArgsConstructor//有参构造
public class Account {
    Integer id= 0;
    String name = "";
    Double money = 0.0;
}

普通写法需要加入get/set/toString以及有参/无参构造方法,这样太过繁琐,使用lombok则可以简化代码编写

image.png

最后是test类

package springmybatis;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import springmybatis.mapper.AccountMapper;
import springmybatis.pojo.Account;

import java.util.List;

@SpringBootTest
class SpringMybatisApplicationTests {
    @Autowired
    private AccountMapper accountMapper;
    @Test
    public void sqlAccount(){
        List<Account> accountList = accountMapper.sqlAccount();
        accountList.stream().forEach(account -> {
            System.out.println(account);
        });
    }

}

只需要运行@Test下的方法,即可检验程序正确性

image.png 最后是项目的pom.xml

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.13</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>SpringMybatis</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>SpringMybatis</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.1</version>
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter-test</artifactId>
            <version>2.3.1</version>
            <scope>test</scope>
        </dependency>
    <dependency>
<!--        druid连接池依赖-->
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.23</version>
    </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
</dependencies>

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

</project>