springboot-curd基于mybatis项目搭建的示例分析
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,springboot-curd基于mybatis项目搭建的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。项目结构:pom.xml
千家信息网最后更新 2024年11月18日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安全错误
数据库的锁怎样保障安全
软件开发工程师的前途
网络安全教育主题班会课
阿里云服务器目录结构
冗余历史服务器
网络技术服务标准
印度软件开发对比中国
天翼云电脑能做服务器吗
湖南实用的外贸软件开发公司
计算机三级网络技术算职称吗
北京计算机软件开发学校
网络安全技术与应用第三版
物理服务器bmc管理网卡
虚拟化服务器系统出问题了怎么办
湖南金块网络技术
16核32线程的服务器怎么样
分布式数据库系统 的安全性
远程服务器黑屏但是运行正常
无锡惠普服务器维修价格
软件开发中的测试属于
网络安全本质含义是什么
金融 基础软件开发
必联路由器服务器名称填什么
离散与数据库
试验室小型服务器
荣耀 嵌入式软件开发
如何设置迅捷路由器服务器无响应
网络安全的海洋
助理软件开发工程师考试内容
通讯网络技术培训班
关于强化网络安全监管的建议