好久没写博客了,最近接到一个组内的测试开发任务是作一个使用SpringBoot 开发一个后台程序(还未完成),特写感想记录一下前端
首先是目前不少公司的后台仍是JAVA编写的,或者直接就是MVC的一个后台,大部分测试其实会采用python 做为一个测试语言,易上手而后见效快。java
可是咱们能够想见,其实在传统行业,领导更但愿你可以使用同一种语言来进行一些程序或者代码的编写。python
PS: 实际上是由于我本身报的,我说了python或者springboot均可以,领导给我选了springboot mysql
通常默认的是: springboot+mybatis+(MVC三件套: mapper,entity,service,controller) 等等,你须要了解基本的java语法,以及一些sql语法spring
最重要的,你须要一个前端童鞋配合你,调用你的后台接口(全栈大神能够忽略)sql
3.1 首先是我以前基本就不多接触过springboot, 固然对JAVA还算熟悉,开发过appium为框架下的自动化测试程序。那么你须要一个自学springboot的过程数据库
3.2 其次是业务逻辑的学习,我须要首先把Jira 的数据拉取下来,那么须要了解Jira自己提供的那些api怎么使用后端
3.3 如何与前端联调,增强本身的后台开发能力 api
进入正题:springboot
---------------------------------------------------------------------------------------------------------------------------------------------------------
说下我目前的开发顺序和进度(你们能够规避个人误区,直接选择新建一个SpringBoot 项目去开启):
了解需求---翻看JIRA的API---参考了博主“天外飞云”的JIRA程序---启动一个JAVA程序去调用JIRA的API---调通了以后思考如何引入SpringBoot(翻车,从新来)
---另外启动一个全新的SpringBoot程序---开始参考别人的SpringBoot入门博客---编写SpringBoot后台---调试本身完成的接口---联系前端调用----知足前端要求新增接口
application.yml的写法 (单数据库源)
server: port: 8080 spring: datasource: name: XXXX url: jdbc:mysql://127.0.0.1:3306/XXXX?useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=GMT%2B8 username: root password: 123456 driver-class-name: com.mysql.jdbc.Driver jpa: database-platform: org.hibernate.dialect.MySQLDialect mybatis: mapper-locations: classpath:mapper/*.xml #注意:必定要对应mapper映射xml文件的所在路径 type-aliases-package: com.ctyun.springboot.entity # 注意:对应实体类的路径
若是须要操做数据库,可使用generatorConfig.xml去获取 ; 或者是本身先写好实体类entity ,而后自动生成数据库表。
这里我使用的是第一种,先在数据库建表,而后使用generatorConfig 提取到SpringBoot程序中
顺序: 1. 起SpringBoot 程序 2. 启动下面的generator
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包--> <classPathEntry location="C:\xxxx\mysql\mysql-connector-java\5.1.45\mysql-connector-java-5.1.45.jar"/> <context id="DB2Tables" targetRuntime="MyBatis3"> <commentGenerator> <property name="suppressDate" value="true"/> <!-- 是否去除自动生成的注释 true:是 : false:否 --> <property name="suppressAllComments" value="false"/> </commentGenerator> <!--数据库链接驱动类,URL,用户名、密码 --> <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://127.0.0.1:3306/xxxx?characterEncoding=utf8" userId="root" password="123456"> </jdbcConnection> <javaTypeResolver> <property name="forceBigDecimals" value="false"/> </javaTypeResolver> <!-- 生成(实体)模型的包名和位置--> <javaModelGenerator targetPackage="com.ctyun.springboot.entity" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> <property name="trimStrings" value="true"/> </javaModelGenerator> <!-- 生成XML映射文件的包名和位置--> <sqlMapGenerator targetPackage="resources.mapper" targetProject="src/main"> <property name="enableSubPackages" value="true"/> </sqlMapGenerator> <!-- 生成DAO接口的包名和位置--> <javaClientGenerator type="XMLMAPPER" targetPackage="com.ctyun.springboot.mapper" targetProject="src/main/java"> <property name="enableSubPackages" value="true"/> </javaClientGenerator> <!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名--> <!--<table tableName="xxx" domainObjectName="xxx" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>--> <!--<table tableName="xxx" domainObjectName="menus" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>--> <table tableName="xxx" domainObjectName="Menusconfig" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context> </generatorConfiguration>
后台可能有两种状况:
1. 不须要数据库,直接提供service+entity+controller 调用
2. 须要链接数据库,那么后台须要编写: mapper.xml --- mapper --- entity ---service ---controller 这么几层 【须要注意的是entity 至关于VO层, mapper 至关于DAO层,不用重复】
下面放一下第二种,mapper.xml的写法
下面是一个简单的用户表, 在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.ctyun.springboot.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.ctyun.springboot.entity.User"> <id column="id" property="id" jdbcType="INTEGER"/> <result column="username" property="username" jdbcType="VARCHAR"/> <result column="password" property="password" jdbcType="VARCHAR"/> <result column="nickname" property="nickname" jdbcType="VARCHAR"/> </resultMap> <sql id="Base_Column_List"> id, username, password, nickname </sql> <!--用户登陆验证--> <select id="userlogin" parameterType="User" resultType="com.ctyun.springboot.entity.User"> SELECT <include refid="Base_Column_List"/> FROM user WHERE username = #{username} AND password = #{password} </select> <!--新用户注册 方式1--> <insert id="adduser" parameterType="user" useGeneratedKeys="true" keyProperty="id"> INSERT INTO user (username,password,nickname) VALUES (#{username},#{password},#{nickname}) </insert> <!--新用户注册 方式2--> <insert id="adduser1" parameterType="user"> <selectKey keyProperty="id" resultType="int"> select LAST_INSERT_ID() </selectKey> INSERT INTO user (username,password,nickname) VALUES (#{username},#{password},#{nickname}) </insert> <!--查询全部用户--> <select id="queryAllUser" resultType="map"> SELECT <include refid="Base_Column_List"/> FROM user </select> <!--查询数据库里面的username--> <select id="queryUserName" resultType="java.lang.String"> SELECT username FROM user </select>
</mapper>