欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot?Web項目增刪改查入門實戰(zhàn)案例

 更新時間:2024年11月28日 11:12:20   作者:SunnyRivers  
這篇文章主要給大家介紹了關(guān)于SpringBoot?Web項目增刪改查入門實戰(zhàn)的相關(guān)資料,文中詳細介紹了如何實現(xiàn)新增、刪除、修改和查詢員工的功能,并使用統(tǒng)一響應(yīng)結(jié)果進行前后端交互,需要的朋友可以參考下

前言

為了快速入門一個SpringBootWeb項目,這里就將基礎(chǔ)的增刪改查的案例進行總結(jié),作為對SpringBoot+Mybatis的基礎(chǔ)用法的一個鞏固。

準(zhǔn)備工作

  • 需求說明
    對員工表進行增刪改查操作
  • 環(huán)境搭建
  • 準(zhǔn)備數(shù)據(jù)表
-- 員工管理(帶約束)
create table emp (
  id int unsigned primary key auto_increment comment 'ID',
  username varchar(20) not null unique comment '用戶名',
  password varchar(32) default '123456' comment '密碼',
  name varchar(10) not null comment '姓名',
  gender tinyint unsigned not null comment '性別, 說明: 1 男, 2 女',
  image varchar(300) comment '圖像',
  job tinyint unsigned comment '職位, 說明: 1 班主任,2 講師, 3 學(xué)工主管, 4 教研主管, 5 咨詢師',
  entrydate date comment '入職時間',
  dept_id int unsigned comment '部門ID',
  create_time datetime not null comment '創(chuàng)建時間',
  update_time datetime not null comment '修改時間'
) comment '員工表';
-- 員工表測試數(shù)據(jù)
INSERT INTO emp
    (id, username, password, name, gender, image, job, entrydate,dept_id, create_time, update_time) VALUES
    (1,'jinyong','123456','金庸',1,'1.jpg',4,'2000-01-01',2,now(),now()),
    (2,'zhangwuji','123456','張無忌',1,'2.jpg',2,'2015-01-01',2,now(),now()),
    (3,'yangxiao','123456','楊逍',1,'3.jpg',2,'2008-05-01',2,now(),now()),
    (4,'weiyixiao','123456','韋一笑',1,'4.jpg',2,'2007-01-01',2,now(),now()),
    (5,'changyuchun','123456','常遇春',1,'5.jpg',2,'2012-12-05',2,now(),now()),
    (6,'xiaozhao','123456','小昭',2,'6.jpg',3,'2013-09-05',1,now(),now()),
    (7,'jixiaofu','123456','紀(jì)曉芙',2,'7.jpg',1,'2005-08-01',1,now(),now()),
    (8,'zhouzhiruo','123456','周芷若',2,'8.jpg',1,'2014-11-09',1,now(),now()),
    (9,'dingminjun','123456','丁敏君',2,'9.jpg',1,'2011-03-11',1,now(),now()),
    (10,'zhaomin','123456','趙敏',2,'10.jpg',1,'2013-09-05',1,now(),now()),
    (11,'luzhangke','123456','鹿杖客',1,'11.jpg',5,'2007-02-01',3,now(),now()),
    (12,'hebiweng','123456','鶴筆翁',1,'12.jpg',5,'2008-08-18',3,now(),now()),
    (13,'fangdongbai','123456','方東白',1,'13.jpg',5,'2012-11-01',3,now(),now()),
    (14,'zhangsanfeng','123456','張三豐',1,'14.jpg',2,'2002-08-01',2,now(),now()),
    (15,'yulianzhou','123456','俞蓮舟',1,'15.jpg',2,'2011-05-01',2,now(),now()),
    (16,'songyuanqiao','123456','宋遠橋',1,'16.jpg',2,'2007-01-01',2,now(),now()),
    (17,'chenyouliang','123456','陳友諒',1,'17.jpg',NULL,'2015-03-21',NULL,now(),now());
  • 創(chuàng)建springboot工程,引入對應(yīng)的起步依賴(web、mybatis、mysql驅(qū)動、lombok)

  • 配置文件application.properties中引入mybatis的配置信息,準(zhǔn)備對應(yīng)的實體類

    • application.properties
      #數(shù)據(jù)庫連接
      spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
      spring.datasource.url=jdbc:mysql://localhost:3306/tlias
      spring.datasource.username=root
      spring.datasource.password=1234
      
      #開啟mybatis的日志輸出
      mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
      
      #開啟數(shù)據(jù)庫表字段 到 實體類屬性的駝峰映射
      mybatis.configuration.map-underscore-to-camel-case=true
      
    • 實體類
      /*員工類*/
      @Data
      @NoArgsConstructor
      @AllArgsConstructor
      public class Emp {
          private Integer id;
          private String username;
          private String password;
          private String name;
          private Short gender;
          private String image;
          private Short job;
          private LocalDate entrydate;
          private Integer deptId;
          private LocalDateTime createTime;
          private LocalDateTime updateTime;
      }
      
  • 準(zhǔn)備對應(yīng)的Mapper、Service(接口、實現(xiàn)類)、Controller基礎(chǔ)結(jié)構(gòu)

    數(shù)據(jù)訪問層:

    • EmpMapper
      import org.apache.ibatis.annotations.Mapper;
      
      @Mapper
      public interface EmpMapper {
      }
      

    業(yè)務(wù)層:

    • EmpService

      //員工業(yè)務(wù)規(guī)則
      public interface EmpService {
      }
      
    • EmpServiceImpl

      import com.exmaple.service.EmpService;
      import lombok.extern.slf4j.Slf4j;
      import org.springframework.stereotype.Service;
      
      //員工業(yè)務(wù)實現(xiàn)類
      @Slf4j
      @Service
      public class EmpServiceImpl implements EmpService {
      
      }
      

    控制層:

    • EmpController
      package com.exmple.controller;
      import org.springframework.web.bind.annotation.RestController;
      
      //員工管理控制器
      @RestController
      public class EmpController {
      }
      
  • 開發(fā)規(guī)范
  • REST

    • 傳統(tǒng)URL和REST風(fēng)格比較
      (1)傳統(tǒng)URL風(fēng)格

      http://localhost:8080/user/getById?id=1     GET:查詢id為1的用戶
      http://localhost:8080/user/saveUser         POST:新增用戶
      http://localhost:8080/user/updateUser       POST:修改用戶
      http://localhost:8080/user/deleteUser?id=1  GET:刪除id為1的用戶
      

      (2)REST風(fēng)格URL:

      http://localhost:8080/users/1  GET:查詢id為1的用戶
      http://localhost:8080/users    POST:新增用戶
      http://localhost:8080/users    PUT:修改用戶
      http://localhost:8080/users/1  DELETE:刪除id為1的用戶
      

    其中總結(jié)起來,就一句話:通過URL定位要操作的資源,通過HTTP動詞(請求方式)來描述具體的操作。

    在REST風(fēng)格的URL中,通過四種請求方式,來操作數(shù)據(jù)的增刪改查。

    • GET : 查詢
    • POST :新增
    • PUT :修改
    • DELETE :刪除
  • 統(tǒng)一響應(yīng)結(jié)果

    前后端工程在進行交互時,使用統(tǒng)一響應(yīng)結(jié)果 Result。

    package com.example.pojo;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class Result {
        private Integer code;//響應(yīng)碼,1 代表成功; 0 代表失敗
        private String msg;  //響應(yīng)信息 描述字符串
        private Object data; //返回的數(shù)據(jù)
    
        //增刪改 成功響應(yīng)
        public static Result success(){
            return new Result(1,"success",null);
        }
        //查詢 成功響應(yīng)
        public static Result success(Object data){
            return new Result(1,"success",data);
        }
        //失敗響應(yīng)
        public static Result error(String msg){
            return new Result(0,msg,null);
        }
    }
    
  • 開發(fā)流程
  • 查看頁面原型明確需求

    • 根據(jù)頁面原型和需求,進行表結(jié)構(gòu)設(shè)計、編寫接口文檔(已提供)
  • 閱讀接口文檔

  • 思路分析

  • 功能接口開發(fā)

    • 就是開發(fā)后臺的業(yè)務(wù)功能,一個業(yè)務(wù)功能,我們稱為一個接口
  • 功能接口測試

    • 功能開發(fā)完畢后,先通過Postman進行功能接口測試,測試通過后,再和前端進行聯(lián)調(diào)測試
  • 前后端聯(lián)調(diào)測試

    • 和前端開發(fā)人員開發(fā)好的前端工程一起測試

新增員工

  • 需求
    在新增用戶時,我們需要保存用戶的基本信息,并且還需要上傳的員工的圖片,目前我們先完成第一步操作,保存用戶的基本信息。

  • 接口文檔

我們參照接口文檔來開發(fā)新增員工功能

  • 基本信息
請求路徑:/emps

請求方式:POST

接口描述:該接口用于添加員工的信息
  • 請求參數(shù)
    參數(shù)格式:application/json

    參數(shù)說明:

    名稱類型是否必須備注
    usernamestring必須用戶名
    namestring必須姓名
    gendernumber必須性別, 說明: 1 男, 2 女
    imagestring非必須圖像
    deptIdnumber非必須部門id
    entrydatestring非必須入職日期
    jobnumber非必須職位, 說明: 1 班主任,2 講師, 3 學(xué)工主管, 4 教研主管, 5 咨詢師

    請求數(shù)據(jù)樣例:

    {
      "image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2022-09-03-07-37-38222.jpg",
      "username": "linpingzhi",
      "name": "林平之",
      "gender": 1,
      "job": 1,
      "entrydate": "2022-09-18",
      "deptId": 1
    }
    
  • 響應(yīng)數(shù)據(jù)

    參數(shù)格式:application/json

    參數(shù)說明:

    參數(shù)名類型是否必須備注
    codenumber必須響應(yīng)碼,1 代表成功,0 代表失敗
    msgstring非必須提示信息
    dataobject非必須返回的數(shù)據(jù)
  • 思路分析
    接口文檔規(guī)定:

    • 請求路徑:/emps
    • 請求方式:POST
    • 請求參數(shù):Json格式數(shù)據(jù)
    • 響應(yīng)數(shù)據(jù):Json格式數(shù)據(jù)

    問題1:如何限定請求方式是POST?

    @PostMapping
    

    問題2:怎么在controller中接收json格式的請求參數(shù)?

    @RequestBody  //把前端傳遞的json數(shù)據(jù)填充到實體類中
    
  • 功能開發(fā)
    EmpController

@Slf4j
@RestController
@RequestMapping("/emps")
public class EmpController {

    @Autowired
    private EmpService empService;

    //新增
    @PostMapping
    public Result save(@RequestBody Emp emp){
        //記錄日志
        log.info("新增員工, emp:{}",emp);
        //調(diào)用業(yè)務(wù)層新增功能
        empService.save(emp);
        //響應(yīng)
        return Result.success();
    }

    //省略...
}

EmpService

public interface EmpService {

    /**
     * 保存員工信息
     * @param emp
     */
    void save(Emp emp);

    //省略...
}

EmpServiceImpl

@Slf4j
@Service
public class EmpServiceImpl implements EmpService {
    @Autowired
    private EmpMapper empMapper;

    @Override
    public void save(Emp emp) {
        //補全數(shù)據(jù)
        emp.setCreateTime(LocalDateTime.now());
        emp.setUpdateTime(LocalDateTime.now());
        //調(diào)用添加方法
        empMapper.insert(emp);
    }

    //省略...
}

EmpMapper

@Mapper
public interface EmpMapper {
    //新增員工
    @Insert("insert into emp (username, name, gender, image, job, entrydate, dept_id, create_time, update_time) " +
            "values (#{username}, #{name}, #{gender}, #{image}, #{job}, #{entrydate}, #{deptId}, #{createTime}, #{updateTime});")
    void insert(Emp emp);

    //省略...
}

刪除員工

  • 需求
    前端頁面可以一次性刪除一個或多個員工。
    問題:我們需要開發(fā)兩個功能接口嗎?一個刪除單個員工,一個刪除多個員工
    答案:不需要。 只需要開發(fā)一個功能接口即可(刪除多個員工包含只刪除一個員工)

  • 接口文檔

  • 基本信息

    請求路徑:/emps/{ids}
    
    請求方式:DELETE
    
    接口描述:該接口用于批量刪除員工的數(shù)據(jù)信息
    
  • 請求參數(shù)
    參數(shù)格式:路徑參數(shù)

    參數(shù)說明:

    參數(shù)名類型示例是否必須備注
    ids數(shù)組 array1,2,3必須員工的id數(shù)組

    請求參數(shù)樣例:

    /emps/1,2,3
    
  • 響應(yīng)數(shù)據(jù)

    參數(shù)格式:application/json

    參數(shù)說明:

    參數(shù)名類型是否必須備注
    codenumber必須響應(yīng)碼,1 代表成功,0 代表失敗
    msgstring非必須提示信息
    dataobject非必須返回的數(shù)據(jù)

    響應(yīng)數(shù)據(jù)樣例:

    {
        "code":1,
        "msg":"success",
        "data":null
    }
    
  • 思路分析
    接口文檔規(guī)定:
  • 前端請求路徑:/emps/{ids}

  • 前端請求方式:DELETE

    問題1:怎么在controller中接收請求路徑中的路徑參數(shù)?

    @PathVariable
    

    問題2:如何限定請求方式是delete?

    @DeleteMapping
    

    問題3:在Mapper接口中,執(zhí)行delete操作的SQL語句時,條件中的id值是不確定的是動態(tài)的,怎么實現(xiàn)呢?

    Mybatis中的動態(tài)SQL:foreach
    
  • 功能開發(fā)
    EmpController

    @Slf4j
    @RestController
    @RequestMapping("/emps")
    public class EmpController {
    
        @Autowired
        private EmpService empService;
    
        //批量刪除
        @DeleteMapping("/{ids}")
        public Result delete(@PathVariable List<Integer> ids){
            empService.delete(ids);
            return Result.success();
        }
    
    }
    

    EmpService

    public interface EmpService {
    
        /**
         * 批量刪除操作
         * @param ids id集合
         */
        void delete(List<Integer> ids);
    
        //省略...
    }
    

    EmpServiceImpl

    @Slf4j
    @Service
    public class EmpServiceImpl implements EmpService {
        @Autowired
        private EmpMapper empMapper;
    
        @Override
        public void delete(List<Integer> ids) {
            empMapper.delete(ids);
        }
    
        //省略...
    }
    

    EmpMapper

    @Mapper
    public interface EmpMapper {
        //批量刪除
        void delete(List<Integer> ids);
    
        //省略...
    }
    

    EmpMapper.xml

    <?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.example.mapper.EmpMapper">
    
        <!--批量刪除員工-->
        <select id="delete">
            delete from emp where id in
            <foreach collection="ids" item="id" open="(" close=")" separator=",">
                #{id}
            </foreach>
        </select>
    
        <!-- 省略... -->
    
    </mapper>
    

    元素用于迭代傳入的集合。在這個例子中,它用于構(gòu)建IN子句中的值列表。
    collection屬性:指定要迭代的集合名稱。在這個例子中,collection="ids"意味著傳入的參數(shù)應(yīng)該是一個名為ids的集合。
    item屬性:指定每次迭代時使用的變量名。在這里,item=“id"表示每次迭代時,當(dāng)前元素會被賦值給變量id。
    open屬性:指定循環(huán)產(chǎn)生的SQL片段的開頭字符。在這里,open=”(“表示循環(huán)開始時添加一個左括號。
    close屬性:指定循環(huán)產(chǎn)生的SQL片段的結(jié)尾字符。在這里,close=”)“表示循環(huán)結(jié)束時添加一個右括號。
    separator屬性:指定每次迭代之間使用的分隔符。在這里,separator=”,"表示每次迭代之間添加一個逗號。

修改員工

  • 需求
    修改員工信息

  • 接口文檔

    • 基本信息

      請求路徑:/emps
      
      請求方式:PUT
      
      接口描述:該接口用于修改員工的數(shù)據(jù)信息
      
    • 請求參數(shù)

      參數(shù)格式:application/json

      參數(shù)說明:

      名稱類型是否必須備注
      idnumber必須id
      usernamestring必須用戶名
      namestring必須姓名
      gendernumber必須性別, 說明: 1 男, 2 女
      imagestring非必須圖像
      deptIdnumber非必須部門id
      entrydatestring非必須入職日期
      jobnumber非必須職位, 說明: 1 班主任,2 講師, 3 學(xué)工主管, 4 教研主管, 5 咨詢師

      請求數(shù)據(jù)樣例:

      {
        "id": 1,
        "image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2022-09-03-07-37-38222.jpg",
        "username": "linpingzhi",
        "name": "林平之",
        "gender": 1,
        "job": 1,
        "entrydate": "2022-09-18",
        "deptId": 1
      }
      
    • 響應(yīng)數(shù)據(jù)

      參數(shù)格式:application/json

      參數(shù)說明:

      參數(shù)名類型是否必須備注
      codenumber必須響應(yīng)碼,1 代表成功,0 代表失敗
      msgstring非必須提示信息
      dataobject非必須返回的數(shù)據(jù)

      響應(yīng)數(shù)據(jù)樣例:

      {
          "code":1,
          "msg":"success",
          "data":null
      }
      
  • 代碼實現(xiàn)

  • EmpMapper

    @Mapper
    public interface EmpMapper {
        //修改員工信息
        public void update(Emp emp);
    
        //省略...
    }
    
    • EmpMapper.xml
    <?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.mapper.EmpMapper">
    
        <!--更新員工信息-->
        <update id="update">
            update emp
            <set>
                <if test="username != null and username != ''">
                    username = #{username},
                </if>
                <if test="password != null and password != ''">
                    password = #{password},
                </if>
                <if test="name != null and name != ''">
                    name = #{name},
                </if>
                <if test="gender != null">
                    gender = #{gender},
                </if>
                <if test="image != null and image != ''">
                    image = #{image},
                </if>
                <if test="job != null">
                    job = #{job},
                </if>
                <if test="entrydate != null">
                    entrydate = #{entrydate},
                </if>
                <if test="deptId != null">
                    dept_id = #{deptId},
                </if>
                <if test="updateTime != null">
                    update_time = #{updateTime}
                </if>
            </set>
            where id = #{id}
        </update>
    
        <!-- 省略... -->
    
    </mapper>
    
    • EmpService
    public interface EmpService {
        /**
         * 更新員工
         * @param emp
         */
        public void update(Emp emp);
    
        //省略...
    }
    
    • EmpServiceImpl
    @Slf4j
    @Service
    public class EmpServiceImpl implements EmpService {
        @Autowired
        private EmpMapper empMapper;
    
        @Override
        public void update(Emp emp) {
            emp.setUpdateTime(LocalDateTime.now()); //更新修改時間為當(dāng)前時間
    
            empMapper.update(emp);
        }
    
        //省略...
    }
    
    • EmpController
    @Slf4j
    @RestController
    @RequestMapping("/emps")
    public class EmpController {
    
        @Autowired
        private EmpService empService;
    
        //修改員工
        @PutMapping
        public Result update(@RequestBody Emp emp){
            empService.update(emp);
            return Result.success();
        }
    
        //省略...
    }
    

查詢員工

  • 需求
  • 根據(jù)ID查詢員工信息
  • 接口文檔
    根據(jù)ID查詢員工數(shù)據(jù)

    • 基本信息

      請求路徑:/emps/{id}
      
      請求方式:GET
      
      接口描述:該接口用于根據(jù)主鍵ID查詢員工的信息
      
    • 請求參數(shù)

      參數(shù)格式:路徑參數(shù)

      參數(shù)說明:

      參數(shù)名類型是否必須備注
      idnumber必須員工ID

      請求參數(shù)樣例:

      /emps/1
      
    • 響應(yīng)數(shù)據(jù)

      參數(shù)格式:application/json

      參數(shù)說明:

      名稱類型是否必須默認值備注
      codenumber必須響應(yīng)碼, 1 成功 , 0 失敗
      msgstring非必須提示信息
      dataobject必須返回的數(shù)據(jù)
      idnumber非必須id
      usernamestring非必須用戶名
      namestring非必須姓名
      passwordstring非必須密碼
      entrydatestring非必須入職日期
      gendernumber非必須性別 , 1 男 ; 2 女
      imagestring非必須圖像
      jobnumber非必須職位, 說明: 1 班主任,2 講師, 3 學(xué)工主管, 4 教研主管, 5 咨詢師
      deptIdnumber非必須部門id
      createTimestring非必須創(chuàng)建時間
      updateTimestring非必須更新時間

      響應(yīng)數(shù)據(jù)樣例:

      {
        "code": 1,
        "msg": "success",
        "data": {
          "id": 2,
          "username": "zhangwuji",
          "password": "123456",
          "name": "張無忌",
          "gender": 1,
          "image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2022-09-02-00-27-53B.jpg",
          "job": 2,
          "entrydate": "2015-01-01",
          "deptId": 2,
          "createTime": "2022-09-01T23:06:30",
          "updateTime": "2022-09-02T00:29:04"
        }
      }
      
  • 代碼實現(xiàn)

  • EmpMapper

    @Mapper
    public interface EmpMapper {
    
        //根據(jù)ID查詢員工信息
        @Select("select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time " +
                "from emp " +
                "where id = #{id}")
        public Emp findById(Integer id);
    
    
        //省略...
    }
    
    • EmpService
    public interface EmpService {
    
        /**
         * 根據(jù)ID查詢員工
         * @param id
         * @return
         */
        public Emp getById(Integer id);
    
        //省略...
    }
    
    • EmpServiceImpl
    @Slf4j
    @Service
    public class EmpServiceImpl implements EmpService {
        @Autowired
        private EmpMapper empMapper;
    
        @Override
        public Emp getById(Integer id) {
            return empMapper.findById(id);
        }
    
        //省略...
    }
    
    • EmpController
    @Slf4j
    @RestController
    @RequestMapping("/emps")
    public class EmpController {
    
        @Autowired
        private EmpService empService;
    
        //根據(jù)id查詢
        @GetMapping("/{id}")
        public Result getById(@PathVariable Integer id){
            Emp emp = empService.getById(id);
            return Result.success(emp);
        }
    
        //省略...
    }
    

后記

springboot + mybatis做數(shù)據(jù)的增刪改查其實相對比較簡單,我們根據(jù)上面的案例就可以進行學(xué)習(xí),主要關(guān)注的是常用的注解以及mybatis復(fù)雜查詢時xml文件的配置。

到此這篇關(guān)于SpringBoot Web項目增刪改查入門實戰(zhàn)案例的文章就介紹到這了,更多相關(guān)SpringBoot Web增刪改查內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ActiveMQ安裝及部署教程圖解

    ActiveMQ安裝及部署教程圖解

    這篇文章主要介紹了ActiveMQ安裝及部署教程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 解決idea 項目編譯后沒有class文件的問題

    解決idea 項目編譯后沒有class文件的問題

    這篇文章主要介紹了解決idea 項目編譯后沒有class文件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Java多數(shù)據(jù)源的三種實現(xiàn)方式小結(jié)

    Java多數(shù)據(jù)源的三種實現(xiàn)方式小結(jié)

    多數(shù)據(jù)源是在一個應(yīng)用程序中配置和使用多個不同的數(shù)據(jù)庫連接,本文主要介紹了Java多數(shù)據(jù)源的三種實現(xiàn)方式小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • 詳解Spring Cloud 跨服務(wù)數(shù)據(jù)聚合框架

    詳解Spring Cloud 跨服務(wù)數(shù)據(jù)聚合框架

    這篇文章主要介紹了詳解Spring Cloud 跨服務(wù)數(shù)據(jù)聚合框架,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • JAVA 時間區(qū)間的字符串合法性驗證

    JAVA 時間區(qū)間的字符串合法性驗證

    需要對獲得的諸如08:30-11:00這樣的字符串進行合法性驗證,判定表示的時間區(qū)間是否合法,以及對高峰期時間的區(qū)間是否在總的時間區(qū)間內(nèi)部進行判斷。
    2013-03-03
  • Java輕松掌握面向?qū)ο蟮娜筇匦苑庋b與繼承和多態(tài)

    Java輕松掌握面向?qū)ο蟮娜筇匦苑庋b與繼承和多態(tài)

    本文主要講述的是面向?qū)ο蟮娜筇匦裕悍庋b,繼承,多態(tài),內(nèi)容含括從封裝到繼承再到多態(tài)的所有重點內(nèi)容以及使用細節(jié)和注意事項,內(nèi)容有點長,請大家耐心看完
    2022-05-05
  • POST方法給@RequestBody傳參數(shù)失敗的解決及原因分析

    POST方法給@RequestBody傳參數(shù)失敗的解決及原因分析

    這篇文章主要介紹了POST方法給@RequestBody傳參數(shù)失敗的解決及原因分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java日常練習(xí)題,每天進步一點點(10)

    Java日常練習(xí)題,每天進步一點點(10)

    下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • java實現(xiàn)多客戶聊天功能

    java實現(xiàn)多客戶聊天功能

    這篇文章主要為大家詳細介紹了java實現(xiàn)多客戶聊天功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • MyBatis通過JDBC數(shù)據(jù)驅(qū)動生成的執(zhí)行語句問題

    MyBatis通過JDBC數(shù)據(jù)驅(qū)動生成的執(zhí)行語句問題

    這篇文章主要介紹了MyBatis通過JDBC數(shù)據(jù)驅(qū)動生成的執(zhí)行語句問題的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-08-08

最新評論