基于上一篇调整
Spring整合MyBatis
pom添加MyBatis-Plus依赖
注释掉下面依赖,因为mybatis-plus会帮我们维护下面两个依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.spring.version}</version>
</dependency>
添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.3.2</version>
</dependency>
集成MyBatis-Plus
修改applicationContext.xml,把SqlSessionFactoryBean替换为MybatisSqlSessionFactoryBean
<!--配置MyBatis的sqlSession工厂SqlSessionFactory(Spring框架管理了session,所以也不需要mybatis工具类了)-->
<!--<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">-->
<bean id="sessionFactory2" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
<!--指定数据库连接对象dataSource-->
<property name="dataSource" ref="ds"/>
<!--指定Mapper的映射文件位置-->
<property name="mapperLocations" value="classpath:com/qzcsbj/mapper/*.xml"/>
<!--指定实体类的别名-->
<property name="typeAliasesPackage" value="com.qzcsbj.bean"/>
</bean>
修改Mapper
继承BaseMapper
package com.qzcsbj.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qzcsbj.bean.User;
import java.util.List;
/**
* @公众号 : 全栈测试笔记
* @博客 : www.cnblogs.com/uncleyong
* @微信 : ren168632201
* @描述 : <>
*/
public interface UserMapper extends BaseMapper<User> {
}
修改业务逻辑层
业务逻辑层接口:继承IService
package com.qzcsbj.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qzcsbj.bean.User;
import java.util.List;
/**
* @公众号 : 全栈测试笔记
* @博客 : www.cnblogs.com/uncleyong
* @微信 : ren168632201
* @描述 : <>
*/
public interface UserService extends IService<User> {
}
业务逻辑层实现类:继承ServiceImpl
package com.qzcsbj.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qzcsbj.bean.User;
import com.qzcsbj.mapper.UserMapper;
import com.qzcsbj.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @公众号 : 全栈测试笔记
* @博客 : www.cnblogs.com/uncleyong
* @微信 : ren168632201
* @描述 : <>
*/
@Service
public class UserServiceImlp extends ServiceImpl<UserMapper,User> implements UserService {
@Autowired
UserMapper userMapper;
}
说明:上面继承的类SserviceImpl中,注入了baseMapper,所以service对象可以调用很多方法
测试类
package com.qzcsbj.test;
import com.qzcsbj.bean.User;
import com.qzcsbj.service.UserService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* @公众号 : 全栈测试笔记
* @博客 : www.cnblogs.com/uncleyong
* @微信 : ren168632201
* @描述 : <>
*/
@RunWith(SpringJUnit4ClassRunner.class) // 表示Spring和JUnit整合测试
@ContextConfiguration("classpath:applicationContext.xml")
public class TestSpringMyBatisPlus {
@Autowired
UserService userService;
@Test
public void testGetUserById(){
User user = userService.getById(1);
System.out.println(user);
}
}
结果
删除
@Test
public void testDeleteById(){
boolean b = userService.removeById(8);
if (b){
System.out.println("删除成功");
} else {
System.out.println("删除失败");
}
}
注意:业务逻辑层继承的ServiceImpl的方法和mapper层继承的BaseMapper的方法名不一样,比如删除,业务逻辑层是remove,mapper层是delete
结果
【bak】