MyBatis

简介

作用于Dao层上的数据库操作框架,底层用的JDBC,是JDBC的改进升级版。

MyBatis相比JDBC:
无需自行管理Connection、statement的关闭。
读取数据库字段更为简便,直接返回对象集合。
配置信息解耦,存放与xml文件中,修改配置时无需重新编译程序。

使用步骤

1.在创建module时引入mybatis框架、Mysql驱动。
2.在resources/application.properties文件中设置数据源

spring.datasource.driver-class-name= com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test
spring.datasource.username=root
spring.datasource.password=123456

3.创建实体类,设置get/set方法。
4.创建Mapper接口,标记相关注解,springboot会自动生成实现类对象。

@Mapper //自动生成Mapper接口的实现类对象,并交给IOC容器管理
public interface UserMapper {
    @Select("select * from user")
    public List<User> showUsers();
}

4.在使用时直接通过@Autowire注入UserMapper接口进行数据访问。

lombok工具:简化实体类定义

在每次构建实体类时都需要进行定义get/set方法、重新toString方法等等,这样定义的类会非常的冗长,lombok框架可以通过注解进行着一系列操作。

@Getter/Setter 为所有属性设置get/set方法
@ToString 设置易读的toString方法
@EqualsAndHashCode 根据类中非静态字段重写equals方法与hashCode方法
@Data =@Getter+@Setter+@ToString+@EqualsAndHashCode
@NoArgsConstructor 提供默认无参构造
@AllArgsConstructor 根据非静态字段提供有参构造

引入配置文件

在pom.xml中加入

   <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.2</version>
    </dependency>

修改之前的实体类:


public class User {
    private Integer uid;
    private String username;
    private String password;

    public User(Integer uid, String username, String password) {
        this.uid = uid;
        this.username = username;
        this.password = password;
    }

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "uid=" + uid +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

修改后的实体类:

@AllArgsConstructor
@Setter
@Getter
@ToString
public class User {
    private Integer uid;
    private String username;
    private String password;
    
}

或者使用@Data注解(=@Getter+@Setter+@ToString+@EqualsAndHashCode)

@AllArgsConstructor
@Data
public class User {
    private Integer uid;
    private String username;
    private String password;
}

你可能感兴趣的:(java,mybatis)