Springboot+mybatis+generator编写增删查改
本文是在Springboot学习三的基础上进行
本项目目录如下:
先配置application.properties文件,内容如下:
server.port=8086
server.servlet.context-path=/sjxm
spring.mvc.static-path-pattern=/static/**
spring.resources.static-locations=/static/
spring.thymeleaf.prefix=classpath:/templates/
spring.datasource.url=jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.initialize=true
mybatis.config-location=classpath:mybatis-config.xml
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-package=com.y9999.www.sjxm.model
logging.level.root=info
logging.level.com.y9999.www.sjxm=debug
在上篇博客的基础上新增:
建立mybatis-config.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 开启全局性设置懒加载 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 开启按需加载 -->
<setting name="aggressiveLazyLoading" value="false" />
</settings>
<typeAliases>
<package name="com.y9999.www.sjxm.model" />
</typeAliases>
</configuration>
(注意:文件的位置要和application.properties配置一致)
新建Service接口,内容如下:
package com.y9999.www.sjxm.userinfo;
import com.y9999.www.sjxm.model.Userinfo;
import java.util.List;
import java.util.Optional;
public interface UserService {
Optional<Userinfo> findByID(String uuid);
List<Userinfo> findAll();
void deleteUser(String uuid);
void updateUser(Userinfo userinfo);
void creatUser(Userinfo userinfo);
}
xxImpl类:
package com.y9999.www.sjxm.userinfo;
import static com.y9999.www.sjxm.mapper.UserinfoDynamicSqlSupport.*;
import static org.mybatis.dynamic.sql.SqlBuilder.isEqualTo;
import static org.mybatis.dynamic.sql.select.SelectDSL.select;
import static org.mybatis.dynamic.sql.delete.DeleteDSL.deleteFrom;
import static org.mybatis.dynamic.sql.insert.InsertDSL.insert;
import static org.mybatis.dynamic.sql.update.UpdateDSL.update;
import com.y9999.www.sjxm.mapper.UserinfoDynamicSqlSupport;
import com.y9999.www.sjxm.mapper.UserinfoMapper;
import com.y9999.www.sjxm.model.Userinfo;
import org.mybatis.dynamic.sql.Constant;
import org.mybatis.dynamic.sql.SqlBuilder;
import org.mybatis.dynamic.sql.render.RenderingStrategies;
import org.mybatis.dynamic.sql.where.condition.IsEqualTo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
import java.util.Optional;
@Service
public class UserinfoImpl implements UserService {
@Autowired
private UserinfoMapper userinfoMapper;
@Override
public Optional<Userinfo> findByID(String uuid){
return userinfoMapper.selectOne(select(userinfo.allColumns())
.from(userinfo)
.where(userinfo.uuid, isEqualTo(uuid))
.build()
.render(RenderingStrategies.MYBATIS3));
}
@Override
public List<Userinfo> findAll(){
List<Userinfo> items = userinfoMapper.selectMany(select(userinfo.allColumns())
.from(userinfo)
.build()
.render(RenderingStrategies.MYBATIS3));
return items;
}
@Override
public void deleteUser(String uuid){
userinfoMapper.delete(deleteFrom(userinfo)
.where(userinfo.uuid, isEqualTo(uuid))
.build()
.render(RenderingStrategies.MYBATIS3));
}
@Override
public void updateUser(Userinfo userinfo){
userinfoMapper.updateByPrimaryKey(userinfo);
}
@Override
public void creatUser(Userinfo userinfos){
userinfoMapper.insert(SqlBuilder.insert(userinfos)
.into(userinfo)
.map(uuid).toProperty("uuid")
.map(username).toProperty("username")
.map(password).toProperty("password")
.map(crsj).toProperty("crsj")
.map(status).toProperty("status")
.map(role).toProperty("role")
.build()
.render(RenderingStrategies.MYBATIS3));
}
}
Controller类:
package com.y9999.www.sjxm.userinfo;
import com.y9999.www.sjxm.model.Userinfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Optional;
@RestController
public class UserController {
@Autowired
UserService userService;
@GetMapping("/list")
public List<Userinfo> list(){
List<Userinfo> data = userService.findAll();
return data;
}
@GetMapping("getByID/{uuid}")
public Optional<Userinfo> listByID(@PathVariable("uuid") String uuid){
Optional<Userinfo> data = userService.findByID(uuid);
return data;
}
@PostMapping("/add")
public void add(@RequestBody Userinfo userinfo){
userService.creatUser(userinfo);
}
@PostMapping("/update/{uuid}")
public void update(@PathVariable("uuid") String uuid, @RequestBody Userinfo p){
p.setUuid(uuid);
userService.updateUser(p);
}
@PostMapping("/del/{uuid}")
public void deleteUser(@PathVariable("uuid") String uuid){
userService.deleteUser(uuid);
}
}
测试:
通过postman工具测试
添加
我们去数据库看一下:
修改
删除
查询
完成,enjoy it!