springboot-curd基于mybatis项目搭建的示例分析
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,springboot-curd基于mybatis项目搭建的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。项目结构:pom.xml
千家信息网最后更新 2025年02月23日springboot-curd基于mybatis项目搭建的示例分析
springboot-curd基于mybatis项目搭建的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
项目结构:
pom.xml文件:
org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE com.liuyang springbootcurd 0.0.1-SNAPSHOT springbootcurd Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot-starter 2.2.1 junit junit 4.13 test com.github.pagehelper pagehelper-spring-boot-starter 1.2.13 mysql mysql-connector-java 8.0.25 com.mchange c3p0 0.9.5.5 org.apache.commons commons-lang3 org.springframework.boot spring-boot-devtools true org.springframework.data spring-data-commons 2.2.3.RELEASE org.springframework.boot spring-boot-maven-plugin
yml
## 数据源配置spring: ## 热部署配置 devtools: restart: enabled: true # 设置重启的目录,添加目录的文件需要restart additional-paths: src/main/java # 解决项目自动重新编译后接口报404的问题 poll-interval: 3000 quiet-period: 1000 datasource: type: com.mchange.v2.c3p0.ComboPooledDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/springboot_mybatis?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8 username: root password: 123456 ##视图的配置 freemarker: template-loader-path: classpath*:/views/ charset: UTF-8 content-type: text/html cache: false suffix: .ftl## mybatis 配置mybatis: #映射文件的存放路径 mapper-locations: classpath*:/mapper/*.xml type-aliases-package: com.liuyang.bean,com.liuyang.vo,com.liuyang.query configuration: ## 下划线转驼峰配置 map-underscore-to-camel-case: true## pageHelperpagehelper: helper-dialect: mysql## 显示dao 执行sql语句logging: level: com: xxxx: mapper: debug
bean
private Integer userId; private String userName; private String userPwd;
mapper
public interface Usermapper { public User selectuserbyid(Integer id); public User selectUserByName(String userName);// 注意返回的类型 public int insertUser(User user);// 根据id进行删除数据 public int deleteUserById(int userId); //条件查询 public ListselectUserByItem(UserQuery userQuery);}
mapping.xml
insert into t_user(user_name,user_pwd) values(#{userName},#{userPwd}); delete from t_user where user_id=#{userId}
controller
@RestControllerpublic class Usercontroller { @Resource private Usermapper usermapper; @GetMapping("one/{id}") public User sayUser(@PathVariable Integer id) { System.out.println( id + "<<<" ); //根据ID查询 User user = usermapper.selectuserbyid(id); return user; }// 没有检测重复 @GetMapping("userOne/{name}") public User sayUserOne(@PathVariable String name) { System.out.println( name + "<<<" ); //根据ID查询 User user = usermapper.selectUserByName( name ); //user--json return user; } @PutMapping("add") public int sayAdd(User user) { System.out.println( user + "<<<" ); //根据ID查询 return usermapper.insertUser( user ); } @DeleteMapping("delete/{userId}") public int sayDel(@PathVariable Integer userId) { System.out.println( userId + "<<<" ); //根据ID查询 return usermapper.deleteUserById( userId ); } @GetMapping("query") public java.util.ListsayDel(UserQuery userQuery) { System.out.println( userQuery + "<<<" ); //分页的集合数据 return usermapper.selectUserByItem( userQuery ); }}
query
public class UserQuery { private Integer pageNum=1; private Integer pageSize=1; private String userName;
以上只是简单的实现了增删改查 如果发生了插入或者是删除异常,我们就应该会自定义全局异常去捕获出现的问题
新增类 service
主要进行的业务的处理
Userservice
public interface Userservice { public User queryUserById(Integer userId); public User queryUserByName(String userName); public void saveUser(User user); public void changeUser(User user); //删除一条 public void removeUserById(Integer userId); //查询用户信息 public PageInfoqueryUserByPage(UserQuery userQuery);}
UserserviceImpl
@Servicepublic class UserserviceImpl implements Userservice { @Resource private Usermapper usermapper;// 查询都是用的User返回类型 @Override public User queryUserById(Integer userId) { return usermapper.selectuserbyid( userId ); } @Override public User queryUserByName(String userName) { return usermapper.selectUserByName( userName ); }//增加操作 /*** * 需要用户名 AssertUtil * 用户密码 * 用户是否存在 * 添加用户是否成功 * @param user */ @Override public void saveUser(User user) { //验证用户名 AssertUtil.isTrue( StringUtils.isBlank(user.getUserName()),"用户名不能为空"); //用户密码 AssertUtil.isTrue(StringUtils.isBlank(user.getUserPwd()),"用户密码不能为空"); //用户是否存在 User temp = usermapper.selectUserByName(user.getUserName()); AssertUtil.isTrue(temp!=null,"用户已经存在"); //用户添加是否成功 AssertUtil.isTrue(usermapper.insertUser(user)<1,"添加失败了"); }// 修改操作 /**** * 用户名不为空 * 用户密码不为空 * 用户不存在 * 用户修改操作失败 * * @param user */ @Override public void changeUser(User user) { AssertUtil.isTrue( StringUtils.isBlank( user.getUserName() ),"用户名不为空" ); AssertUtil.isTrue( StringUtils.isBlank( user.getUserPwd() ),"密码不为空" ); User temp = usermapper.selectuserbyid(user.getUserId()); AssertUtil.isTrue( temp == null,"用户不存在"); AssertUtil.isTrue( usermapper.updateUser(user)<1,"修改失败了"); } /**** * 删除是的id是否还存在 * 删除失败 * @param userId */ @Override public void removeUserById(Integer userId) { AssertUtil.isTrue( userId==null|| null==usermapper.selectuserbyid( userId ),"待删除数据不存在" ); AssertUtil.isTrue( usermapper.deleteUserById( userId )<1,"删除失败" ); } /** * 分页参数传递了两个变量 一个是起始位置 一个是一页有多行数据 * * @param userQuery * @return */ @Override public PageInfoqueryUserByPage(UserQuery userQuery) { PageHelper.startPage( userQuery.getPageNum(),userQuery.getPageSize()); List ulist = usermapper.selectUserByItem( userQuery ); PageInfo plist =new PageInfo (ulist); return plist; }}
新增类 用来校验数据数据是否有误
AssertUtil
public class AssertUtil { /** * * @param flag 参数 * @param msg 信息 * flag=true * 抛出异常,自定义 */ public static void isTrue(Boolean flag,String msg){ if(flag){ throw new ParamException(msg); } }}
ParamException
自定义异常类
public class ParamException extends RuntimeException{ private Integer code=300; private String msg="参数异常"; public ParamException() { super("参数异常"); } public ParamException(Integer code) { super("参数异常"); this.code=code; } public ParamException(String msg) { super(msg); this.msg=msg; } public ParamException(Integer code,String msg) { super(msg); this.msg=msg; this.code=code; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; }}
把数据状态码 状态数据存在在Resultinfo
所创建的对象中
ResultInfo
public class ResultInfo { private Integer code=200; private String msg="操作成功"; private Object object; public ResultInfo() { } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Object getObject() { return object; } public void setObject(Object object) { this.object = object; } @Override public String toString() { return "ResultInfo{" + "code=" + code + ", msg='" + msg + '\'' + ", object=" + object + '}'; }}
更新传递的事json
数据:
分页查询:
springboot是什么
springboot一种全新的编程规范,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。
看完上述内容,你们掌握springboot-curd基于mybatis项目搭建的示例分析的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
用户
数据
查询
配置
参数
密码
用户名
项目
文件
问题
成功
示例
分析
信息
内容
方法
更多
框架
状态
目录
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术的分数线
松江手机软件开发
服务器sbom啥意思
任播服务器
dns服务器占用率高是咋回事
网络技术与国防安全
通信网络安全应急实训基地
三星相机服务器错误重启
数据库表中多对多怎么理解
江北区加工刀片服务器专业服务
管理员服务器密码是什么
数据库安全性的两个非法
服务器维护管理
设备软件开发要学什么条件
数据库设计的两方面内容
社保网络安全情况
数据库算不算第几范式
丽江软件开发专业招生
上海志行合力网络技术怎么样
网络安全宣传周招标
rs485监控软件开发
软件开发一定要有配置管理吗
网络安全事件分级方案
开源网络安全技术有限公司怎样
计算机网络技术教授有哪些
达达软件开发多少钱
网络安全和信息安全是一样的吗
云服务器海外
网络安全法保护公民个人信息收集
钢铁行业网络安全审计系统供应商