springboot整合mybatis
1、引入依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.1</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
2、配置application.properties
server.port=8080 #配置内置数据源hikari(最新推荐,性能比德鲁伊高) spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl spring.datasource.username=c##boat spring.datasource.password=c##boat #配置mybatis实体类扫描包 mybatis.type-aliases-package=com.example.pojo mybatis.mapper-locations=classpath:mappers/**/*.xml
关于hikari 与 相关数据库连接池的比较

对于性能测试对比也给出了柱状图:

3、创建相关实体类,Dao, Mapper,Servier信息
创建实体类:(与数据库的表一致)
public class UserInfo { private String id; private String username; private String email; private String password; private String phoneNum; private Boolean status; }
创建UserInfoMapper.xml文件
在这里,配置了一个路径模式:
classpath*:表示从类路径中搜索。/mappers/**/*.xml表示在mapper目录下,递归查找所有子目录中符合*.xml格式的文件,表示 src/resources/mappers/user/*.xml。
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.dao.UserInfoDao"> <select id="selectAll" resultType="UserInfo"> select * from users </select> <delete id="deleteById" parameterType="String"> delete from users where id = #{id} </delete> </mapper>
创建dao
import com.example.pojo.UserInfo; import org.apache.ibatis.annotations.Select; import tk.mybatis.mapper.common.Mapper; import java.util.List; @org.apache.ibatis.annotations.Mapper public interface UserInfoDao extends Mapper<UserInfo> { List<UserInfo> selectAll(); Integer deleteById(String id); }
创建service
接口: public interface UserInfoService { List<UserInfo> findAll(); Boolean deleteUserInfo(String id); } 实现类: @Service public class UserInfoServiceImpl implements UserInfoService{ @Autowired private UserInfoDao userInfoDao; @Override public List<UserInfo> findAll() { return userInfoDao.selectAll(); } @Override @Transactional public Boolean deleteUserInfo(String id) { Integer integer = userInfoDao.deleteById(id); Boolean flag = integer == 1 ? true : false; //int i = 1 / 0; //主要测试事务 return flag; } }
创建controller
@RestController @RequestMapping("user") public class UserInfoController { @Autowired private UserInfoService userInfoService; @GetMapping("findAll") public List<UserInfo> findAll(){ return userInfoService.findAll(); } @GetMapping("drop/{id}") public Boolean drop(@PathVariable(name = "id") String id){ return userInfoService.deleteUserInfo(id); } }
4、测试
访问 http://localhost:8080/user/findAll

浙公网安备 33010602011771号