一、建立表sys_user_tab
CREATE TABLE `suphowe`.`Untitled` ( `id` int(11) NOT NULL, `user` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `tel` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `addr` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `duty` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

二、添加依赖
<!-- mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
三、配置properties
# ===================mybatis======================== mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.soft.entity

四、编写Java
User.java
package com.soft.entity;
public class User {
private Integer id;
private String user;
private String name;
private String tel;
private String addr;
private String duty;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getDuty() {
return duty;
}
public void setDuty(String duty) {
this.duty = duty;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", user='" + user + '\'' +
", name='" + name + '\'' +
", tel='" + tel + '\'' +
", addr='" + addr + '\'' +
", duty='" + duty + '\'' +
'}';
}
}
UserController.java
package com.soft.controller;
import com.google.gson.Gson;
import com.soft.entity.User;
import com.soft.service.IUserService;
import com.soft.util.BsUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.util.HashMap;
import java.util.List;
@RestController
@Api(value = "Mybatis测试,注解")
@RequestMapping(value = "/user")
public class UserController {
@Autowired
public IUserService userService;
@Autowired
public BsUtil bsUtil;
@RequestMapping(value = "/findUser", method = RequestMethod.POST)
@ApiOperation(value = "Mybatis查询测试", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "id", value = "id", required = false, dataType = "Integer")
})
public String findUser(Integer id) {
List<User> list = userService.findUser(id);
HashMap<String, Object> result = new HashMap<String, Object>();
bsUtil.createReturnMsg(result, "0", list);
return new Gson().toJson(result);
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ApiOperation(value = "User登陆测试", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "user", value = "user", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "query", name = "passwd", value = "passwd", required = false, dataType = "String")
})
public String login(String user, String passwd) {
int code = 0;
String message = "success";
if(!user.equals("admin") || !passwd.equals("admin123")){
code = 1;
message = "fail to login";
}
HashMap<String, Object> result = new HashMap<String, Object>();
HashMap<String, Object> meta = new HashMap<String, Object>();
meta.put("code", code);
meta.put("message", message);
result.put("meta", meta);
return new Gson().toJson(result);
}
@RequestMapping(value = "/findUserByName", method = RequestMethod.POST)
@ApiOperation(value = "Mybatis查询测试LIKE", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "name", value = "name", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "query", name = "beginRow", value = "beginRow", required = false, dataType = "int")
})
public String findUserByName(String name, int beginRow) {
List<User> list = userService.findUserByName(name, beginRow);
HashMap<String, Object> result = new HashMap<String, Object>();
bsUtil.createReturnMsg(result, "0", list);
return new Gson().toJson(result);
}
@RequestMapping(value = "/findUserChoose", method = RequestMethod.POST)
@ApiOperation(value = "Mybatis查询测试,注解choose", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "id", value = "id", required = false, dataType = "Integer"),
@ApiImplicitParam(paramType = "query", name = "name", value = "name", required = false, dataType = "String")
})
public String findUserChoose(Integer id, String name) {
List<User> list = userService.findUserChoose(id, name);
HashMap<String, Object> result = new HashMap<String, Object>();
bsUtil.createReturnMsg(result, "0", list);
return new Gson().toJson(result);
}
@RequestMapping(value = "/insertUser", method = RequestMethod.POST)
@ApiOperation(value = "Mybatis新增测试", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "id", value = "id", required = false, dataType = "Integer"),
@ApiImplicitParam(paramType = "query", name = "user", value = "user", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "query", name = "name", value = "name", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "query", name = "tel", value = "tel", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "query", name = "addr", value = "addr", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "query", name = "duty", value = "duty", required = false, dataType = "String")
})
public String insertUser(Integer id, String user, String name, String tel, String addr, String duty) {
userService.insertUser(id, user, name, tel, addr, duty);
HashMap<String, Object> result = new HashMap<String, Object>();
bsUtil.createReturnMsg(result, "0", null);
return new Gson().toJson(result);
}
@RequestMapping(value = "/updateUser", method = RequestMethod.POST)
@ApiOperation(value = "Mybatis修改测试", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "id", value = "id", required = false, dataType = "Integer"),
@ApiImplicitParam(paramType = "query", name = "user", value = "user", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "query", name = "name", value = "name", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "query", name = "tel", value = "tel", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "query", name = "addr", value = "addr", required = false, dataType = "String"),
@ApiImplicitParam(paramType = "query", name = "duty", value = "duty", required = false, dataType = "String")
})
public String updateUser(Integer id, String user, String name, String tel, String addr, String duty) {
userService.updateUser(id, user, name, tel, addr, duty);
HashMap<String, Object> result = new HashMap<String, Object>();
bsUtil.createReturnMsg(result, "0", null);
return new Gson().toJson(result);
}
@RequestMapping(value = "/deleteUser", method = RequestMethod.POST)
@ApiOperation(value = "Mybatis删除测试", notes = "")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "query", name = "id", value = "id", required = false, dataType = "Integer")
})
public String deleteUser(Integer id) {
userService.deleteUser(id);
HashMap<String, Object> result = new HashMap<String, Object>();
bsUtil.createReturnMsg(result, "0", null);
return new Gson().toJson(result);
}
@RequestMapping(value = "upload", produces = "text/plain;charset=UTF-8", method = RequestMethod.POST)
@ApiOperation(value = "文件上传测试", notes = "")
public String upload(HttpServletRequest request, MultipartFile file) throws Exception{
//file对象名记得和前端name属性值一致
System.out.println(new String (file.getOriginalFilename().getBytes("ISO-8859-1"), "UTF-8"));
System.out.println(file.getOriginalFilename());
System.out.println(file.getName());
HashMap reshm = new HashMap();
reshm.put("code", 0);
reshm.put("message", "success");
return new Gson().toJson(reshm);
}
}
IUserService.java
package com.soft.service;
import com.soft.entity.User;
import java.util.List;
public interface IUserService {
List<User> findUser(Integer id);
List<User> findUserByName(String name, int beginRow);
List<User> findUserChoose(Integer id, String name);
void insertUser(Integer id, String user, String name, String tel, String addr, String duty);
void updateUser(Integer id, String user, String name, String tel, String addr, String duty);
void deleteUser(Integer id);
}
UserService.java
package com.soft.service.impl;
import com.soft.dao.UserDao;
import com.soft.entity.User;
import com.soft.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class UserService implements IUserService {
/**
* 事务控制,手动
*/
@Autowired
private DataSourceTransactionManager dataSourceTransactionManager;
/**
* 事务控制,手动
*/
@Autowired
private TransactionDefinition transactionDefinition;
@Autowired
UserDao userDao;
@Override
public List<User> findUser(Integer id){
return userDao.findUser(id);
}
@Override
public List<User> findUserByName(String name, int beginRow){
return userDao.findUserByName(name, beginRow);
}
@Override
public List<User> findUserChoose(Integer id, String name){
return userDao.findUserChoose(id, name);
}
@Override
public void deleteUser(Integer id){
userDao.deleteUser(id);
}
}
UserDao.java
package com.soft.dao;
import com.soft.entity.User;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface UserDao {
/**
* if 对内容进行判断
* 在注解方法中,若要使用MyBatis的动态SQL,需要编写在<script></script>标签内
* 在 <script></script>内使用特殊符号,则使用java的转义字符,如 双引号 "" 使用"" 代替
* concat函数:mysql拼接字符串的函数
*/
@Select("<script>" +
"select * from sys_user_tab " +
"<where>" +
" <if test='id!=null and id!=""'>" +
" and id=#{id}" +
" </if>" +
"</where>" +
"</script>"
)
List<User> findUser(@Param("id") Integer id);
/**
* if 对内容进行判断
* 在注解方法中,若要使用MyBatis的动态SQL,需要编写在<script></script>标签内
* 在 <script></script>内使用特殊符号,则使用java的转义字符,如 双引号 "" 使用"" 代替
* concat函数:mysql拼接字符串的函数
*/
@Select("<script>" +
"select * from sys_user_tab " +
"<where>" +
" <if test='name!=null and name!=""'>" +
" and name like CONCAT('%', #{name}, '%')" +
" </if>" +
" <if test='beginRow!=null and beginRow!=""'>" +
" limit #{beginRow}, 10" +
" </if>" +
"</where>" +
"</script>"
)
List<User> findUserByName(@Param("name") String name, @Param("beginRow") int beginRow);
/**
* choose when otherwise 类似Java的Switch,选择某一项
* when...when...otherwise... == if... if...else...
* choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束
* 当 choose 中所有 when 的条件都不满则时,则执行 otherwise 中的sql
*/
@Select("<script>" +
"select * from sys_user_tab " +
"<where>" +
" <choose>" +
" <when test='id!=null and id!=""'>" +
" and id=#{id}" +
" </when>" +
" <otherwise test='name!=null and name!=""'>" +
" and name like CONCAT('%', #{name}, '%')" +
" </otherwise>" +
" </choose>" +
"</where>" +
"</script>"
)
List<User> findUserChoose(@Param("id") Integer id, @Param("name") String name);
@Insert("insert into sys_user_tab (id, user, name, tel, addr, duty)" +
" values (#{id},#{user},#{name},#{tel},#{addr},#{duty})")
void insertUser(User user);
/**
* set 动态更新语句,类似<where>
*/
@Update("<script>" +
"UPDATE sys_user_tab " +
"<set>" +
" <if test='user!=null and user!=""'> user=#{user}, </if>" +
" <if test='name!=null and name!=""'> name=#{name}, </if>" +
" <if test='tel!=null and tel!=""'> tel=#{tel}, </if>" +
" <if test='addr!=null and addr!=""'> addr=#{addr}, </if>" +
" <if test='duty!=null and duty!=""'> duty=#{duty}, </if>" +
"</set>" +
" where id=#{id}" +
"</script>")
void updateUser(User user);
/**
* foreach 遍历一个集合,常用于批量更新和条件语句中的 IN
* foreach 批量更新
* (1) item:集合的元素,访问元素的Filed 使用 #{item.Filed}
* (2) index: 下标,从0开始计数
* (3) collection:传入的集合参数
* (4) open:以什么开始
* (5) separator:以什么作为分隔符
* (6) close:以什么结束
*/
@Insert("<script> "
+ "insert into sys_user_tab "
+ "(id, user, name, tel, addr, duty) values "
+ "<foreach collection='list' item='item' index='index' separator=','> "
+ "(#{item.id}, #{item.user}, #{item.name}, #{item.tel}, #{item.addr}, #{item.duty}) "
+ "</foreach> "
+ "</script> ")
int insertUserListWithForeach(List<User> list);
@Delete("<script>"
+ "DELETE FROM sys_user_tab"
+ "<where>"
+ "<if test='id!=null and id!=""'>"
+ " and id=#{id}"
+ "</if>"
+ "</where>"
+ "</script>"
)
void deleteUser(@Param("id") Integer id);
}
五、测试


配置成功!
