org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.0 mysql mysql-connector-java 8.0.31 runtime org.projectlombok lombok true com.alibaba fastjson 1.2.51
server.port=8080spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/demomybatis?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
spring.datasource.username=xx
spring.datasource.password=xx
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=truemybatis.mapper-locations = classpath:mapping/*Mapper.xml
Person数据库如下图
Address数据库如下图
@Data
public class Person {private String id;private String name;}
@Data
public class Address {private String id;private String addrName;}
@Mapper //表示这是Mybatis的mapper类
@Repository
public interface PersonMapper {List queryUserList();Person queryUserByID(String id);int addUser(Person person);int updateUser(Person person);int deleteUser(String id);}
@Mapper //表示这是Mybatis的mapper类
@Repository
public interface AddressMapper {@Select("SELECT * FROM address WHERE addrName = #{name}")Address findByName(@Param("name") String name);@Insert("INSERT INTO address VALUES (#{id}, #{addrName},)")int insert(@Param("id") String id, @Param("addrName") String addrName);
}
insert into person(id,name) values (#{id},#{name}) update person set name=#{name} where id=#{id} delete from person where id=#{id}
File---->Settings
Editor---->File And Code Templates —>中间选中Files ----->点击+号,添加模板 ----->输入模板名字:Name:XML File.xml (name可以自定义) ------>后缀名extension:xml
在面板中间输入内容
选中文件夹----->New-------->找到XML File,就可以创建xml文件了
Mybatis的Mapper文件中的select、insert、update、delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型
在启动类里加上注解用于给出需要扫描的mapper文件路径@MapperScan
@SpringBootApplication
@MapperScan("com.example.demo")
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}
@CrossOrigin
@RestController
@RequestMapping("/define")
public class DemoController {@AutowiredPersonMapper personMapper;@GetMapping("/getmybatis")public List getmybatis() {List res= personMapper.queryUserList();return res;}@GetMapping("/queryUserList")public List queryUserList() {List users = personMapper.queryUserList();return users;}@GetMapping("/queryUserByID")public Person queryUserByID() {Person user = personMapper.queryUserByID("2");return user;}@GetMapping("/addUser")public String addUser() {Person p = new Person();p.setId("4");p.setName("zzz");personMapper.addUser(p);return "增加用户完毕";}@GetMapping("/updateUser")public String updateUser() {Person p = new Person();p.setId("2");p.setName("zzz");personMapper.updateUser(p);return "修改用户完毕";}@GetMapping("/deleteUser")public String deleteUser() {personMapper.deleteUser("4");return "删除用户完毕";}@AutowiredAddressMapper addressMapper;@RequestMapping("/addAddress")public int addUser(String userName, String age) {return addressMapper.insert(age,userName);}@RequestMapping("/getAddress")public Address getUserByName(String userName) {return addressMapper.findByName(userName);}
}