1.用Mybatis 的第一步是在POX.xml中添加
<!--spring整合mybatis 暂时 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
2.建立一个User类封装好属性
package com.jt.pojo; import lombok.Data; import lombok.experimental.Accessors; @Data @Accessors(chain = true) public class User { private Integer id; private String name; private Integer age; private String sex; }
3.创建User类的接口UserMapper
import com.jt.pojo.User; import java.util.List; public interface UserMapper { List<User> selectList(Object o); }
4.创制核心配置文件application.yml(注意细节)
server: port: 8090 servlet: context-path: / spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true username: root password: 12345678 mybatis-plus: type-aliases-package: com.jt.pojo mapper-locations: classpath:/mybatis/mappers/*.xml #开启驼峰映射 configuration: map-underscore-to-camel-case: true
5.创建Run类,让其扫描mapper所在的包
package com.jt; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.SpringApplication; @SpringBootApplication @MapperScan("com.jt.mapper") public class SpringBootRun { public static void main(String[] args) { SpringApplication.run(SpringBootRun.class,args); } }
6.创建UserMapper.xml用于实现接口,提供sql语句
<?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.jt.mapper.UserMapper">
<select id="findAll" resultType="User"> select * from demo_user </select> <delete id="deleteByName" > delete from demo_user where name = "嫦娥" </delete> <update id="updateByName"> update demo_user set name = "兰姐姐" where name = "小兰兰" </update> <insert id="add"> insert into demo_user value (null,"后裔",20,"男") </insert> </mapper>
7.创建TestMybatis测试类
@SpringBootTest public class Testmybatis { @Autowired private UserMapper userMapper; @Test public void testInster(){ System.out.println(userMapper.getClass()); List<User> userList = userMapper.findAll(); System.out.println(userList); } @Test public void testDelete(){ userMapper.deleteByName(); } @Test public void testUpdate(){ userMapper.updateByName(); } @Test public void testAdd(){ userMapper.add(); }
用MP操作
1.pox.xml中添加<!--spring整合mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
2.User类
package com.jt.pojo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.experimental.Accessors; @Data @Accessors(chain = true) @TableName("demo_user")//实现对象和表的映射 public class User { @TableId(type = IdType.AUTO) private Integer id; //@TableField("name")如果属性名和字段一样时,可以省略 private String name; private Integer age; private String sex; }
3.UserMapper 接口
public interface UserMapper extends BaseMapper<User> { List<User> findAll(); @Insert("insert into demo_user (id,name,age,sex) value(null,#{name},#{age},#{sex})") void insertUser(User user); @Update("update demo_user set name = #{newName} where name = #{oldName}") void updateByName(String newName,String oldName); @Delete("delete from demo_user where name = #{name}") void deleteByName(String name); @Select("select*from demo_user") List<User> selectAll(); }
4.编写测试类
package com.jt.text; import com.jt.mapper.UserMapper; import com.jt.pojo.User; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.List; @SpringBootTest public class Testmybatis { @Autowired private UserMapper userMapper; @Test public void insert(){ User user = new User(); user.setName("星期五").setAge(18).setSex("男"); userMapper.insertUser(user); } @Test public void update(){ String oldName = "星期五"; String newName = "星期六"; userMapper.updateByName(oldName,newName); } @Test public void delete(){ String name = "星期五"; userMapper.deleteByName(name); } @Test public void select(){ List<User> userList = userMapper.selectAll(); System.out.println(userList); } }对于单表查询可以简写
@Test public void testInsert(){ User user = new User(); user.setName("嫦娥").setSex("女").setAge(20); userMapper.insert(user); } @Test public void testDelete(){ userMapper.deleteByName("嫦娥"); } @Test public void testUpdate(){ userMapper.updateByName("星期六","星期五"); } @Test public void testSelect(){ List<User> users = userMapper.selectAll(); System.out.println(users); }