Spring环境下搭建mybatis:
步骤
1、新建maven项目
2、导入坐标(mysql和mybatis)
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.13</version>
</dependency>
3、编写mybatis.xml配置文件
(1)开启自动驼峰映射
例如:数据库字段staff_id对应实体类中的staffId
<settings>
<!--开启自动驼峰映射-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
(2)分页插件
<plugins>
<!--mybatis分页-->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
(3)配置数据源
<!--开发模式-->
<environments default="env">
<environment id="env">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/tongfu?serverTimezone=GMT"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
(4)mapper映射器
<mappers>
<package name="com.ape.mapper"/>
</mappers>
4、写代码
(1)实体类:按照驼峰命名规则去写
(2)dao层:对数据库的操作
(3)测试:手动读取配置文件、开启事务、关闭事务等
InputStream resourceAsStream = null;
SqlSession sqlSession = null;
StaffMapper mapper = null;
@Before
public void beforeMethod() {
try {
resourceAsStream = Resources.getResourceAsStream("mybatis.xml");
MybatisSqlSessionFactoryBuilder builder = new MybatisSqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(resourceAsStream);
sqlSession = factory.openSession(true);//打开自动事务提交
mapper = sqlSession.getMapper(StaffMapper.class);
} catch (IOException e) {
e.printStackTrace();
}
}
@After
public void afterMethod() {
try {
sqlSession.close();
resourceAsStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
@Test
public void test_01() {
List<Staff> list = mapper.findAll();
list.forEach(System.out::println);
}
Spring环境下搭建mybatis-plus
mp适用于单表的增删改查,就是让写好的mybatis的dao层继承BaseMapper,里面有大量写好了的增删改,直接调用即可
步骤
在之前的步骤上添加几步:
1、导入mp的坐标
注意:导入mp坐标后就不用再导mybatis的坐标
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.1.1</version>
</dependency>
2、实体类加注解
(1)如果实体类和表名不一致,需要在实体类上加注解@TableName,映射数据库中的表名
(2)mp自带驼峰映射。如果类的属性名和表中字段不能形成驼峰映射,需要在属性前面加注解@TableField
(3)主键属性需要加注解@TableId(type=“IdType.AUTO”)
(4)如果实体类中有数据库表里没有的属性,该属性前需要加注解@TableField(exist = false)
(5)如果存在逻辑删除,需要在修改属性前加注解@TableLogic(value = “0”,delval = “1”)
3、dao层
继承BaseMapper即可实现对于单表的增删改查,若有表联查还是要手动写
4、测试
@Test
public void test_01() {
mapper.deleteById(2);
}
SpringBoot环境下搭建mybatis和mp
1、新建Spring Initializer项目
2、配置pom.xml文件
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
3、配置yml文件
(1)配置数据源
(2)配置mybatis和mp的相关属性
#配置数据源
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost:3306/demo01?serverTimezone=GMT
#配置mp日志
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
4、装配
在Dao层加注解@Mapper,或者在启动类上加注解@MapperScan
这一步就相当于之前在xml里配置mapper映射器
5、测试
SpringBoot里直接配置了mp的启动器,就不用我们手动读取配置文件、开启事务、关闭事务等,装配后直接调用即可
@Autowired
IUserDao iud;
@Test
void contextLoads() {
User user = iud.selectById(7);
System.out.println(user);
}