当前位置: 首页 > news >正文

JavaSpring+mybatis+Lombok,实现java架构[保姆教程]

1.环境与依赖配置

jdk目前稳定版本就是1.8,或者17

如果你是想选springboot3以上版本,那你就要用jdk17以上的版本

#下面这些内容是为了让MyBatis映射
#指定Mybatis的Mapper文件
mybatis.mapper-locations=classpath:mappers/*xml
#指定Mybatis的实体目录
mybatis.type-aliases-package=com.itheima.derm05.mybatis.entity   //mybatis的东西
# 应用服务 WEB 访问端口
server.port=8020  //端口spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/dormbd?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456   // 连接接口,比jdbc舒服多了// 注意这个之后要考,蛇形命名法映射驼峰命名法mybatis.configuration.map-underscore-to-camel-case=true  spring.web.cors.allowed-origins=*
spring.web.cors.allowed-methods=GET,POST,PUT,DELETE,OPTIONS
spring.web.cors.allowed-headers=*
spring.web.cors.allowed-exposed-headers=*
spring.web.cors.allowed-credentials=true    //解决跨域spring.web.resources.static-locations=file:D:/uploads/    //这个是静态资源

2.基本的架构模式

3.pojo

package com.itheima.derm05.pojo;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@AllArgsConstructor
@Data
@NoArgsConstructor
public class User {private Integer id;          //根据阿里巴巴代码规范,java里面类要用驼峰命名法private String username;private String password;private String name;private String phone;private String role;private String email;private String openId;}

注意:数据库要用蛇形命名法

4.业务层

业务层主要就是放处理业务逻辑的接口的代码

package com.itheima.derm05.service.impl;import com.itheima.derm05.pojo.Bed;
import com.itheima.derm05.mapper.BedMapper;
import com.itheima.derm05.service.BedService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.List;@Service
public class BedServiceImpl implements BedService {@Resourceprivate BedMapper bedMapper;@Overridepublic void insert(Bed bed) {bedMapper.insert(bed);}@Overridepublic void delete(Integer id) {bedMapper.delete(id);}@Overridepublic void update(Bed bed) {bedMapper.update(bed);}@Overridepublic Bed selectById(Integer id) {return bedMapper.selectById(id);}@Overridepublic List<Bed> selectAll() {return bedMapper.selectAll();}}
package com.itheima.derm05.service;import com.itheima.derm05.pojo.Bed;
import org.springframework.stereotype.Service;import java.util.List;@Service
public interface BedService {void insert(Bed bed);void delete(Integer id);void update(Bed bed);Bed selectById(Integer id);List<Bed> selectAll();
}

普通的增删查改

5.响应层

package com.itheima.derm05.controller;import com.itheima.derm05.pojo.Bed;
import com.itheima.derm05.service.BedService;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.util.List;
import java.util.Map;@RestController
@RequestMapping("/bed")
public class BedController {@Resourceprivate BedService bedService;@RequestMapping(path = "/insert",method = RequestMethod.POST)public String insert(@RequestBody Bed bed){bedService.insert(bed);return "success";}@RequestMapping(path = "/delete",method = RequestMethod.POST)public String delete(@RequestBody Map<String, Object> requestBody){Integer id = (Integer) requestBody.get("id");bedService.delete(id);return "success";}@RequestMapping(path = "/update",method = RequestMethod.POST)public String update(@RequestBody Bed bed){bedService.update(bed);return "success";}@RequestMapping(path = "/selectById",method = RequestMethod.POST)public Bed selectById(@RequestBody Map<String, Object> requestBody){Integer id = (Integer) requestBody.get("id");return bedService.selectById(id);}@RequestMapping(path = "/selectAll",method = RequestMethod.POST)public List<Bed> selectAll(){return bedService.selectAll();}
}

这边

@RequestBody Bed bed  是请求体里面内容是对象
@RequestBody Map<String, Object 这个就是基本数据类型或者String用这个

6.mapper和它的xml映射

package com.itheima.derm05.mapper;import com.itheima.derm05.pojo.Bed;
import org.apache.ibatis.annotations.Mapper;import java.util.List;public interface BedMapper {void insert(Bed bed);void delete(Integer id);void update(Bed bed);Bed selectById(Integer id);List<Bed> selectAll();
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.derm05.mapper.BedMapper"><insert id="insert" parameterType="com.itheima.derm05.pojo.Bed">insert into bed (id, room_id, bed_no,status,student_no,student_name)values (#{id},#{roomId},#{bedNo},#{status},#{studentNo},#{studentName})</insert><delete id="delete" parameterType="java.lang.Integer">delete from bed where id = #{id}</delete><update id="update" parameterType="com.itheima.derm05.pojo.Bed">update bed<set><if test="roomId != null">room_id = #{roomId},</if><if test="bedNo != null">bed_no = #{bedNo},</if><if test="status != null">status = #{status},</if><if test="studentNo != null">student_no = #{studentNo},</if><if test="studentName != null">student_name = #{studentName},</if></set>where id = #{id}</update><select id="selectById" parameterType="java.lang.Integer" resultType="com.itheima.derm05.pojo.Bed">select * from bed where id = #{id}</select><select id="selectAll" resultType="com.itheima.derm05.pojo.Bed">select * from bed</select>
</mapper>

这个就是和数据库交互,在里面写sql语句

<insert id="insert" parameterType="com.itheima.derm05.pojo.Bed">insert into bed (id, room_id, bed_no,status,student_no,student_name)values (#{id},#{roomId},#{bedNo},#{status},#{studentNo},#{studentName})</insert>

这边就到了上面那个蛇形和驼峰映射的自动转换

mybatis.configuration.map-underscore-to-camel-case=true

至此java后端,基本简单的功能就实现了,后期我会更新Ajax前端交互,和代码的优化

http://www.dtcms.com/a/347778.html

相关文章:

  • KVM虚拟化:提升企业效率的利器
  • 编程刷题-P1746 离开中山路 BFS/最短路径
  • 数据结构算法:顺序表
  • 电脑零广告快响应提速(一)之卸载搜狗输入法使用RIME—东方仙盟
  • qt ElaWidgetTools第一个实例
  • linux进程调度相关头文件sched.h介绍与使用指南
  • 油猴(tampermonkey)脚本下载及安装使用教程!绿色版
  • [python编程] 零基础入门面向对象
  • Python面向对象高级编程——定制类
  • 本地部署开源书签管理工具 LinkAce 并实现外部访问( Windows 版本)
  • git实战问题(6)git push 时发现分支已被更新,push失败了怎么办
  • EPWpy 安装教程
  • 原初书写与符号嬗变:文字学理论的多维透视与当代重估
  • 【LeetCode】24. 两两交换链表中的节点
  • 青少年机器人技术(五级)等级考试试卷(2021年12月)
  • Linux:4_进程概念
  • Python 文件操作全解析:模式、方法与实战案例
  • openharmony之启动恢复子系统详解
  • 控制建模matlab练习14:线性状态反馈控制器-③极点配置
  • 河南萌新联赛2025第(六)场:郑州大学
  • nodejs 集成mongodb实现增删改查
  • 基于深度学习的中草药识别系统:从零到部署的完整实践
  • CA6150主轴箱系统设计cad+设计说明书
  • Java 学习笔记(基础篇8)
  • MQTT 核心概念与协议演进全景解读(二)
  • BEVDepth
  • 9.Shell脚本修炼手册---数值计算实践
  • python re模块常用方法
  • 取件码-快递取件助手, 短信自动识别ios app Tech Support
  • Access开发打造专业的开关按钮效果