SpringBoot如何集成Mybatis呢?
下文笔者讲述SpringBoot集成Mybatis的方法分享,如下所示
Mybatis简介
Mybatis是一个ORM框架 ORM框架是我们操作数据库中不可缺少的一部分 Mybatis框架可借助SQL将查询结果转换为ORM对象 将对象插入至数据库中
实现思路: 1.引入mybatis starter器 2.设置配置信息 3.编写相应的脚本
引入Mybatis依赖
<!--mybaits在spring-boot中的依赖--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.2.0</version> </dependency> 注意事项: mybatis会自动引入jdbc 所以无需加入spring-boot-starter-jdbc依赖
添加数据库配置信息
spring: datasource: url: jdbc:mysql://localhost:3306/test username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver type: com.alibaba.druid.pool.DruidDataSource例
controller: @RestController @RequestMapping("/mybatis") public class MybatisController { @Autowired private MybatisService service; /** * 更新用户信息 * @param user_id 用户ID * @param nickName 昵称 */ @PutMapping("/updateUser/{id}") public void updateUser(@PathVariable("id") String user_id, @RequestParam("nickName") String nickName){ service.updateUser(user_id,nickName); } /** * 获取用户信息 * @param id 用户Id * @return */ @GetMapping("/getUser/{id}") public UserInfo getUser(@PathVariable("id") Integer id){ return service.getUser(id); } /** * 删除用户 * @param tel */ @DeleteMapping("/deleteUserByUserId/{tel}") public void deleteUserByUserId(@PathVariable("tel") String tel){ UserInfo user = new UserInfo(); user.setTel(tel); service.deleteUserByUserId(user); } /** * 使用@RequestBody获取参数,用map类型接收,再取出 * @param reqMap */ @PostMapping("/createUserByMap") public void createUserByMap(@RequestBody Map<String,Object> reqMap){ service.createUser(reqMap); } } service @Service public class MybatisService { @Autowired private MybatisUserAnnotaionMapper annotaionMapper; public void updateUser(String user_id, String nickName) { annotaionMapper.updateUser(user_id,nickName); } public UserInfo getUser(Integer id) { return annotaionMapper.getUser(id); } public void deleteUserByUserId(UserInfo userInfo) { annotaionMapper.deleteUserByUserId(userInfo); } public void createUser(Map<String, Object> reqMap) { annotaionMapper.createUser(reqMap); } } dao: @Mapper public interface MybatisUserAnnotaionMapper { @Insert("INSERT INTO test.tp_user(tel,password,nickname,secret) VALUES (#{tel},md5(#{pwd}),#{tel},'')") void createUser(Map<String, Object> reqMap); @Select("select tel,nickname,password FROM test.tp_user WHERE user_id = #{id}") UserInfo getUser(@Param("id") Integer id); @Update("UPDATE test.tp_user SET nickname = #{nickName} WHERE user_id = #{userId}") void updateUser(@Param("userId") String user_id, @Param("nickName") String nickName); @Delete("DELETE FROM test.tp_user WHERE tel = #{tel}") void deleteUserByUserId(UserInfo userInfo); }
注意事项: 以上操作方式 我们需保证数据库列名和对象名一致 如果不一致时,请使用as关键字转换
另:将脚本使用xml配置文件的方式编写
XML文件放于resources下mapper目录<?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.java265.dao.impl.MybatisUserXMLMapper"> <insert id="createUser" parameterType="java.util.Map"> INSERT INTO test.tp_user(tel,password,nickname,secret) VALUES (#{tel},md5(#{pwd}),#{tel},'') </insert> <update id="updateUser"> UPDATE test.tp_user SET nickname = #{nickName} WHERE user_id = #{userId} </update> <select id="getUser" resultType="com.java265.pojo.UserInfo"> SELECT tel,nickname,password FROM test.tp_user WHERE user_id = #{id} </select> <delete id="deleteUserByUserId"> DELETE FROM test.tp_user WHERE tel = #{tel} </delete> </mapper>
注意事项: 使用以上方式 1.需在application.yml中加入相应的配置信息 mybatis: mapper-locations: classpath:mapper/*.xml 2.启动类上加入扫描mybatis包的注解 @MapperScan(basePackages = "com.java265.dao")
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。