最近在学习Java搭建后台框架,想自己写接口,自己用,毕竟自己动手丰衣足食,同时也想去了解一下后台的大体框架和流程是怎么创建的,此过程由公司后台教的,有人带着真好~
首先第一步,就是创建数据库,这个是必不可少的,本人用的数据库为Mysql,数据库管理工具为Mysql Workbeanch:
打开workbeanch,如果你的工作空间有本地数据库连接,就无须创建一个了,因为自己本地的数据库连接只有一个,之前网上教程一直创建一个新的连接,总是失败,总监告诉我,本地只有一个连接,所有的本地数据库都在这一个地方控制:
然后就是没有本地连接的,那么就创建一个本地连接:
然后就是设置你的数据库连接的属性了:
然后点击OK,这样本地的数据库连接就创建成功了:(因为我取得Connection name是中文,所以是乱码,这个无所谓,可以设置一下编码都行)
本地数据库连接创建完毕之后,接下来就是创建本地数据库了,在点击输入密码之后,进入页面:
点击左上角的小红框进行创建数据库:
然后点击下方的Apply,在弹出一个框框之后,继续点击Apply,我就不截图了,太麻烦了····
在你的左下角找到这个就说明创建成功了,你的数据库,然后就是创建一个表了:
OK,这样里面就添加一点点字段即刻,用来测试一下就行,我就用我的表来说接下来的功能了哈··不用这个给你们测试用的表了,接下来就是打开我们的idea,看他们都用Myeclipse做,我总觉得太麻烦了,还不如用Idea方便,我的idea版本是1.3的,和现在的2.2差不多:
第一步就是File --> new --> Project:
选择Spring Initializr,其他选项默认即刻,其他的我就不描述的,看图识字!
好!终于创建完了···
如果你的环境都配置好的话,就看到的目录应该是这样的:
项目创建成功之后,我们就来配置一些初始化的东西:
首先配置的是pom.xml中的东西:(看好标签在放!!)
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<mybatis-spring.version>1.3.1</mybatis-spring.version>
<mybatis-spring-boot-starter.version>1.3.0</mybatis-spring-boot-starter.version>
<mybatis.version>3.4.4</mybatis.version>
<pagehelper-spring-boot-starter.version>1.0.0</pagehelper-spring-boot-starter.version>
<druid.version>1.0.29</druid.version>
<mapper.version>3.3.4</mapper.version>
<json-lib.version>2.4</json-lib.version>
<pagehelper-spring-boot-starter.version>1.0.0</pagehelper-spring-boot-starter.version>
<springfox-swagger.version>2.2.2</springfox-swagger.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--视图支持 start -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis-spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper-spring-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>${mapper.version}</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>${json-lib.version}</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--视图支持 end -->
<!--热启动 start -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--热启动 end -->
<!--mysql驱动 start -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${druid.version}</version>
</dependency>
<!--mysql驱动 end -->
<!--分页支持 start -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper-spring-boot-starter.version}</version>
</dependency>
<!--分页支持 end -->
<!--poi导入相关 start -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-excelant</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.16</version>
</dependency>
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.apache.poi.xwpf.converter.xhtml</artifactId>
<version>1.0.4</version>
</dependency>
<!--poi导入相关 end -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>${json-lib.version}</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8.1</version>
</dependency>
</dependencies>
<build>
<finalName>asset_split</finalName>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<!-- 代表生成的内容不要覆盖已有的内容 -->
<overwrite>false</overwrite>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.21</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
放进去之后,在你的右下角会出来一个import让你下载,然后你就点击,抿口茶就完了··等待一切妥当之后,开始配置数据库了,也就是application.properties:
这是代码:
#数据库连接
spring.datasource.url=jdbc:mysql://连接地址:端口号/数据库名称?useUnicode=true&characterEncoding=UTF-8&useSSL=true&serverTimezone=CTT
spring.datasource.username=用户名
spring.datasource.password=密码
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
#service配置
server.address=localhost
server.port=8080
#logging.level.org.springframework.web = DEBUG
logging.level.com.myjsp=DEBUG
mybatis.configuration.log-impl:org.apache.ibatis.logging.stdout.StdOutImpl
#mybatis配置
mybatis.mapperLocations=classpath*:mapper/**/*Mapper.xml
#session配置
spring.session.store-type=none
# tomcat配置
server.tomcat.remote-ip-header=x-forwarded-for
spring.jackson.serialization.fail-on-empty-beans=false
# 配置JavaScript代码的映射
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.cache=false
spring.thymeleaf.mode=LEGACYHTML5
接下来,,就是搭建框架的时候了!!!
创建这些结构,和我一样:
然后我们接下来一一看这些包下需要实现哪些东西:
首先给你们看下我的数据库是什么样的:
不要在意内容,好的,接下来就是先创建一个Bean类,用来存放这些返回值的地方:
这是一个父类,统一管理,还有一个子类:(用来存放数据库中的字段)
接下来就是我们mapper下的东西了,之前说过,mapper是对应我们数据库查询得映射,是接口包:
定义一个接口,返回值就用我们的子类就行,这个传入的参数是用来做查询使用的,然后就是我们的数据库查询了:
代码来咯:
<?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.test.demo.mapper.Mapper">
<resultMap type="com.test.demo.po.Hello" id="CourseResult">
<id column="id" property="id" jdbcType="INTEGER"/>
<result column="tb_userName" property="tbUserName" jdbcType="VARCHAR"/>
<result column="tb_userPassword" property="tbUserPassword" jdbcType="VARCHAR"/>
<result column="tb_userSex" property="tbUserSex" jdbcType="VARCHAR"/>
<result column="tb_userAge" property="tbUserAge" jdbcType="VARCHAR"/>
<result column="tb_userAddress" property="tbUserAddress" jdbcType="VARCHAR"/>
</resultMap>
<sql id="tb_user">
id, tb_userName, tb_userPassword, tb_userSex, tb_userAge, tb_userAddress
</sql>
<select id="hello" resultMap="CourseResult" parameterType="java.lang.String">
select
<include refid="tb_user"/>
from tb_user where tb_userName = #{tb_userName,jdbcType = VARCHAR}
</select>
</mapper>
我们现在就要去创建service下的接口了,用来和mapper下的接口相关联:
接下来就是去实现mapper和service下的接口管理类了,也就是serviceImpl包下面的东西了···好累
然后就是Control的啦,用来实现外部请求和内部相应的重要类!!
好,至此,我们的App请求接口写完了,,,现在我们去看一下接口请求是什么样子的:
记住,先跑一下,就是右上角的倒三角形··接下来就是三种请求方式的结果:
这是三种请求方式的返回结果!!接下来就是网页的请求方式了····
告辞!!!