一、添加依赖
<dependencies>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17'</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.2.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
</dependencies>
二、配置mybatis的一些配置 application.properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.username=root
spring.datasource.password=123456
mybatis.mapper-locations= classpath:book.mapper/*.xml
mybatis.type-aliases-package=com.tiza.mybatisDemo.book.model
#mybatis.config-location=classpath:mybatis-config.xml
这种是springboot采用的properties类型的配置,也可以采用手动配置mybatis-config.xml ,在程序加载的时候加载该配置,该配置中主要是一些数据库连接信息,类似于properties中的数据库配置。
注:数据库要先建立好
三、建实体类,
@Data
public class SysUser {
private Long id;
private String userName;
private String userPassword;
private String userEmail;
private String userInfo;
private byte[] headImg;
private Date createTime;
}
这里的实体类应该与数据库中的对应表一致,在后续的mapper.xml中<resultMap>还要指向这个实体类。
四、建立Mapper接口类
@Mapper
public interface UserMapper {
/**
*
* @param id
* @return
*/
SysUser selectById(Long id);
}
这里的接口实体类,在后续的mapper.xml中<mapper namespace>指向该接口类
也可以做一个实现类,实现这个接口
五、书写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">
<!-- 名称空间namespace必须唯一 -->
<mapper namespace="com.tiza.mybatisDemo.book.mapper.UserMapper">
<resultMap id="userMap" type="com.tiza.mybatisDemo.book.model.SysUser">
<id property="id" column="id"/>
<result property="userName" column="user_name"/>
<result property="userPassword" column="user_password"/>
<result property="userEmail" column="user_email"/>
<result property="userInfo" column="user_info"/>
<result property="headImg" column="head_img" jdbcType="BLOB"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap>
<select id="selectById" resultMap="userMap">
select * from sys_user where id = #{id}
</select>
</mapper>
其中resultMap中的type指向数据库对应的实体类,mapper namespace指向mapper的接口类
六、测试
@SpringBootApplication
@MapperScan("com.XXX.mybatisDemo.book.mapper")
public class MybatisTest implements CommandLineRunner {
@Autowired
UserMapper userMapper;
public static void main(String[] args) {
SpringApplication.run(MybatisTest.class,args);
}
public void run(String... args) throws Exception {
SysUser user = userMapper.selectById(1L);
System.out.println(user);
}
}