Spring Boot 整合JDBC 实现后端项目开发

Posted niaonao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot 整合JDBC 实现后端项目开发相关的知识,希望对你有一定的参考价值。

一、前言

二、新建Spring Boot 项目

三、Spring Boot 整合JDBC 与mysql 交互

3.1 新建数据表skr_user 

3.2 Jdbcproject 项目结构如下

3.3 搭建文件结构

    3.3.1 创建package 

    3.3.2 创建开发环境配置文件

3.4 新建工具类

    3.4.1 加密工具类MD5Util.java

    3.4.2 单据编号生成工具类GenerateIdUtil.java

3.5 新建实体类

    3.5.1 数据表对应用户实体类SkrUser.java

    3.5.2 请求参数封装实体类RequsetEntity.java

    3.5.3 后台响应结果封装实体类ResultEntity.java

3.6 完善持久层和业务层代码

    3.6.1 新建持久层接口SkrUserDao.java

    3.6.2 新建持久层实现类SkrUserDaoImpl.java

    3.6.3 新建业务接口SkrUserService.java

    3.6.4 新建业务实现类SkrUserServiceImpl.java

四、后端项目对外接口开发

4.1 新建Controller 控制层类

4.2 项目最终结构图如下

五、后端开发项目测试 


 源码: https://github.com/niaonao/jdbcproject

 一、前言

    前后端分离开发是将项目开发工作前后端交互工作拆分,使前端开发人员能够专注于页面开发或APP 开发,后端开发人员专注与接口开发、业务逻辑开发。

    此处开发后端项目,给前端或者APP 端提供接口。不涉及复杂的业务逻辑,通过简单的增删改查来演示后端开发项目。

    环境介绍:

  • 开发工具:IDEA
  • JDK: 1.7 及以上
  • Spring Boot: 2.0 及以上
  • Maven: 3.0 及以上
  • MySQL: 5.7

二、新建Spring Boot 项目

    通过功能菜单File - New - Project 新建Spring Initializr 项目,Project SDK 选择Java 1.8.0,其他默认即可Next 下一步。

图2-1、新建Spring Initializr 项目

    坐标Group 填写pers.niaonao,坐标Artifact 填写jdbcproject,项目Name 为jdbcproject,Package 包名为pers.niaonao.jdbcproject。

图2-2、Project Metadata 图

    项目依赖选择Web、JDBC、MySQL 然后Next 下一步。

图2-3、选择项目依赖图

图2-4、完成项目创建

    你可以另外配置Maven 也可以使用默认的Maven,我这里是自己配置的Maven 3.5 

图2-5、Maven 配置图

三、Spring Boot 整合JDBC 与MySQL 交互

3.1 新建数据表skr_user 

-- ----------------------------
-- Table structure for skr_user
-- ----------------------------
DROP TABLE IF EXISTS `skr_user`;
CREATE TABLE `skr_user` (
  `id` int(5) NOT NULL AUTO_INCREMENT COMMENT \'主键\',
  `user_id` varchar(20) NOT NULL COMMENT \'用户ID\',
  `user_nick_name` varchar(10) DEFAULT NULL COMMENT \'用户昵称\',
  `user_real_name` varchar(10) DEFAULT NULL COMMENT \'用户名称\',
  `user_phone` varchar(11) DEFAULT NULL,
  `user_password` varchar(32) DEFAULT NULL,
  `user_address` varchar(32) DEFAULT NULL,
  `user_gender` int(1) DEFAULT NULL COMMENT \'性别: 0/1 - 男/女\',
  `user_card` varchar(20) DEFAULT NULL COMMENT \'身份证\',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of skr_user
-- ----------------------------
INSERT INTO `skr_user` VALUES (\'1\', \'2018072910221899540\', \'kecun\', \'柯纯\', \'15728287364\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'hpu松7\', \'0\', \'340824199202010355\');
INSERT INTO `skr_user` VALUES (\'2\', \'2018072910221067312\', \'huangza\', \'皇子昂\', \'15746938428\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'安徽省安庆市潜山县\', \'0\', \'340824198102115159\');
INSERT INTO `skr_user` VALUES (\'3\', \'2018072910221030545\', \'guosb\', \'郭淑白\', \'15647338496\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'广东省江门市鹤山市\', \'1\', \'440784198602241121\');
INSERT INTO `skr_user` VALUES (\'4\', \'2018072910221012658\', \'gongcj\', \'龚才俊\', \'15746938428\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'海南省三亚市万宁市\', \'0\', \'340824199808213429\');
INSERT INTO `skr_user` VALUES (\'5\', \'2018072910221060270\', \'chenh\', \'陈鸿祯\', \'13857288463\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'江苏省淮阴市金湖县\', \'0\', \'460006197201070474\');
INSERT INTO `skr_user` VALUES (\'6\', \'2018072910221209445\', \'lie\', \'李尔\', \'12094847738\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'河北省邢台市沙河市\', \'0\', \'513427199812291899\');
INSERT INTO `skr_user` VALUES (\'7\', \'2018072910221053415\', \'guxz\', \'顾兴朝\', \'17461937475\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'西藏自治区日喀则地区\', \'0\', \'320831199707251836\');
INSERT INTO `skr_user` VALUES (\'8\', \'2018072910221052908\', \'taohh\', \'陶鸿晖\', \'11537495365\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'山西省忻州地区定襄县\', \'0\', \'130582197910124575\');
INSERT INTO `skr_user` VALUES (\'9\', \'2018072910221189175\', \'qincc\', \'秦痴春\', \'15377464838\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'云南省昆明市呈贡县\', \'0\', \'142222197709186791\');
INSERT INTO `skr_user` VALUES (\'10\', \'2018072910221068870\', \'long\', \'龙伟兆\', \'11827629283\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'广西壮族自治区南宁市\', \'0\', \'542300199409116469\');
INSERT INTO `skr_user` VALUES (\'11\', \'2018072910221053349\', \'qian\', \'钱逸明\', \'15847562672\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'陕西省安康地区\', \'0\', \'530121197909145993\');
INSERT INTO `skr_user` VALUES (\'12\', \'2018072910221041169\', \'weih\', \'韦宏旷\', \'18484575399\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'安徽省安庆市潜山县\', \'0\', \'45010019710713799X\');
INSERT INTO `skr_user` VALUES (\'13\', \'2018072910221654738\', \'songms\', \'宋妙松\', \'18494737626\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'西藏自治区日喀则地区日喀则市\', \'0\', \'15212719921025705X\');
INSERT INTO `skr_user` VALUES (\'14\', \'2018072910221025795\', \'zhanghc\', \'张宏畅\', \'15122321464\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'安徽省安庆市枞阳县\', \'0\', \'612400199301127581\');
INSERT INTO `skr_user` VALUES (\'15\', \'2018072910221079179\', \'fangxq\', \'方新晴\', \'15253545293\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'辽宁省葫芦岛市兴城市\', \'1\', \'542301199907030111\');
INSERT INTO `skr_user` VALUES (\'16\', \'2018072910221091637\', \'linz\', \'林芷天\', \'15847372626\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'四川省凉山彝族自治州宁南县\', \'1\', \'21148119971204138X\');
INSERT INTO `skr_user` VALUES (\'17\', \'2018072910221022477\', \'qianyw\', \'钱阳文\', \'12828474795\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'河北省石家庄市赞皇县\', \'0\', \'513427198007131419\');
INSERT INTO `skr_user` VALUES (\'18\', \'2018072910221766265\', \'panyq\', \'潘雅琴\', \'15748237348\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'河南省濮阳市市区\', \'1\', \'430412199410027117\');
INSERT INTO `skr_user` VALUES (\'19\', \'2018072910221022477\', \'hanyh\', \'韩宇航\', \'12582738394\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'湖南省衡阳市南岳区\', \'0\', \'130129198810294762\');
INSERT INTO `skr_user` VALUES (\'20\', \'2018072910221066822\', \'luth\', \'卢天华\', \'15943732827\', \'E10ADC3949BA59ABBE56E057F20F883E\', \'安徽省安庆市潜山县\', \'0\', \'410902199204160559\');

3.2 Jdbcproject 项目结构如下

图3-1、项目初始结构图

    添加JSON 依赖,pom.xml 文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>pers.niaonao</groupId>
    <artifactId>jdbcproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>jdbcproject</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--1.JDBC 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--2.Web 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--3.MySQL 依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!--4.JSON依赖-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.8</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

    此处添加了JSON 依赖,前后端数据的传输格式统一为JSON 类型。引入依赖。

图3-2、引入Maven 依赖图

3.3 搭建文件结构

    在pers.niaonao.jdbcproject 下新建package 包

  • dao: 存放持久层接口
  • entity: 存放实体类
  • service: 存放业务层相关接口
  • util: 存放工具类
  • web: 存放Controller 控制层相关类

    在资源路径resources 新建application.yml 和application-dev.yml 文件。

  • application.yml: 和application.properties 配置文件一样,只是文件格式不一样。Spring Boot 推荐使用yaml 格式配置文件。
  • application-dev.yml: 作为开发环境配置文件。(一个项目的开发一般有正式环境application-master.yml,开发环境application-dev.yml,测试环境application-feature.yml)

图3-3、搭建文件结构图

    application.xml 文件如下

spring:
  profiles:
    active: dev

    application-dev.xml 文件如下

#develop environment
#端口
server:
  port: 8082
#数据库
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/yonyou_nc
    username: root
    password: root

3.4 新建工具类

    在util 包下新建加密工具类MD5Util.java,新建id 生成工具类。

    加密工具类MD5Util.java

package pers.niaonao.jdbcproject.util;

import java.security.MessageDigest;

/**
 * @Author: niaonao
 * @Date: Created in 15:21 2018/7/29
 * @Description :md5加密工具类
 */
public class MD5Util {
    /**
     * 生成md5
     *
     * @param message
     * @return
     */
    public static String getMD5(String message) {
        String md5str = ""Spring Boot整合Swagger2

Spring Boot MyBatis

Spring Boot整合MyBatis

idea springboot中整合jdbc连接MySQL中,Schemas中无mybatis怎么解决?

[Spring boot] Spring boot 整合RabbitMQ实现通过RabbitMQ进行项目的连接

spring boot 系列之三:spring boot 整合JdbcTemplate