MyBatis使用步骤(SpringBoot)

1、添加依赖

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

2、添加配置

数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/test?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=rooot
spring.datasource.password=123456
mybatis配置
mybatis.type-aliases-package=com.xiaolu.baseinfo.entity
mybatis.mapper-locations=classpath:com/xiaolu.baseinfo/mapper/*.xml

1、alias类别名配置
指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean, 比如

<typeAliases>
  <package name="domain.blog"/>
</typeAliases>

每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 domain.blog.Author 的别名为 author;若有注解,则别名为其注解值。见下面的例子:


@Alias("author")
public class Author {
    ...
}

这样就在xml中写sql语句resulttype时可以用别名不需要用全名,如下

别名
  <select id="queryOne" resultType="user">
        select * from user;
  </select>
全包名
  <select id="queryAll" resultType="com.xiaolu.baseinfo.entity.User">
     select * from user;
  </select>

2、@Mapper注解、@MapperScan 与mybatis.mapper-locations

  • @Mapper、@MapperSCan都是用来扫描接口的,@Mapper映射的是一个接口,@MapperScan映射一个包或多个包里面的接口
  • mapper-locations是映射xml文件的位置

3、代码测试

properties配置

spring.datasource.url=jdbc:mysql://localhost:3306/user?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456

mybatis.type-aliases-package=com.xiaolu.baseinfo.entity
mybatis.mapper-locations=classpath:com/xiaolu.baseinfo/mapper/*.xml

实体类

@Alias("user")
@Data
public class User {
    private int id;
    private String userName;
    private String password;
    }

mapper接口

@Mapper
@Repository
public interface UserMapper {
    User queryOne(int id);
}

mapper.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xiaolu.baseinfo.mapper.UserMapper">
    <select id="queryOne" resultType="user">
        select *
          from user where id=#{id};
    </select>
</mapper>

service类

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public String oneUser(int id) {
        User user = userMapper.queryOne(id);

        return user.toString();
    }
}

controller类

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("oneUser")
    public String oneUser(@RequestParam int id) {
        return userService.oneUser(id);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值