MyBatis
新建工程,选好资源
实体类
不需要添加各种注解,直接把对应字段生成get与set方法即可
package com.bruce.SpringBootMVC04Mybatis.entity;
import java.io.Serializable;
public class Account implements Serializable {
private static final long serialVersionUID = -8149090919935604147L;
private Integer id;
private String loginName;
private String password;
private String nickName;
private Integer age;
private String location;
private String role;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLoginName() {
return loginName;
}
public void setLoginName(String loginName) {
this.loginName = loginName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
public Account() {
super();
}
}
Dao层接口定义
在接口上要加上@Mapper注解
package com.bruce.SpringBootMVC04Mybatis.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.bruce.SpringBootMVC04Mybatis.entity.Account;
@Mapper
public interface AccountMapper {
List
}
注:如果这里不想每个接口都加注解的话,可以在SpringBoot启动类上面加上注解@MapperScan("com.bruce.SpringBootMVC04Mybatis.mapper"),括号中对应Dao层的路径,这样每个Dao接口上面就不用加@Mapper注解了
Service层实现定义
在类名上加上@Service注解,在注入的Dao接口对象上加上@Autowired注解
package com.bruce.SpringBootMVC04Mybatis.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bruce.SpringBootMVC04Mybatis.entity.Account;
import com.bruce.SpringBootMVC04Mybatis.mapper.AccountMapper;
@Service
public class AccountService {
@Autowired
AccountMapper accountMapper;
public List
return accountMapper.findAll();
}
}
Controller层定义
在Controller类上加上@RestController注解,在注入的Service对象加上注解@Autowired
对应的Controller方法上加上@RequestMapping注解来配置请求路径
package com.bruce.SpringBootMVC04Mybatis.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.bruce.SpringBootMVC04Mybatis.entity.Account;
import com.bruce.SpringBootMVC04Mybatis.service.AccountService;
@RestController
@RequestMapping("/account")
public class AccountController {
@Autowired
AccountService accountService;
@RequestMapping("/list")
@ResponseBody
public Object list() {
List
return accounts;
}
}
配置MyBatis的xml配置文件
配置文件中mapper节点的namespace属性对应Dao层接口路径,resultMap节点的type属性对应实体类对象路径
type="com.bruce.SpringBootMVC04Mybatis.entity.Account">
property="loginName" />
property="password" />
property="nickName" />
property="location" />
select * from account
在application.properties文件中进行相关配置
spring.datasource.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=utf8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root
server.servlet.context-path = /SpringBoot
mybatis.type-aliases-package=com.bruce.SpringBootMVC04Mybatis.mapper (对应dao层接口的路径)
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml (对应MyBatis的xml配置文件的路径)
一些基础代码,可以通过代码生成器来完成,这样基础的代码就不用自己再去手动写了
mybatis-generator-gui 使用说明与下载地址:https://github.com/zouzg/mybatis-generator-gui
生成的代码中Dao层的基类MyBatisBaseDao包含了所有的基本方法
/**
* DAO公共基类,由MybatisGenerator自动生成请勿修改
* @param
* @param
* @param
*/
public interface MyBatisBaseDao
long countByExample(E example);
int deleteByExample(E example);
int deleteByPrimaryKey(PK id);
int insert(Model record);
int insertSelective(Model record);
List
Model selectByPrimaryKey(PK id);
int updateByExampleSelective(@Param("record") Model record, @Param("example") E example);
int updateByExample(@Param("record") Model record, @Param("example") E example);
int updateByPrimaryKeySelective(Model record);
int updateByPrimaryKey(Model record);
}
每个实体类对应Dao层的mapper都有一个对应的实体类的Example,Service层可以调用mapper的基本增删改查方法,当需要查询列表数据的时候,可以调用selectByExample方法
@Service
public class MenuService {
@Autowired
MenuMapper menuMapper;
public List