看了几篇整合的博客,开始搭建
新建一个maven(可以直接选maven上面那个,快速构建一个spring项目,不过我的idea(16)给的(next后的页面选项,不是本图的jdk)jdk没有1.7的选项,所以我就用maven构建了)

构建后,pom.xml
<!-- 继承父包 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 测试 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!-- mysql连接 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 热部署-->
<!--springloaded :实现修改类文件的热部署-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<!--页面,代码的热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<!--Mybatis-generator-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
梳理项目结构:

application.properties

generatorConfig.xml(mybatis代码生成器)
<?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>
<!--
出现错误:Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
解决办法:将本地的MAVEN仓库中的mysql驱动引入进来
-->
<classPathEntry location="C:\work\mavenFile\mysql\mysql-connector-java\5.1.30\mysql-connector-java-5.1.30.jar"/>
<context id="mysqlgenerator" targetRuntime="MyBatis3Simple">
<!--不生成注释-->
<commentGenerator>
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!-- 配置数据库连接 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/huahua"
userId="lsl"
password="123456" />
<!-- 指定javaBean生成的位置 -->
<javaModelGenerator targetPackage="com.lsl.store.entity" targetProject="src/main/java" >
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="true" />
<!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!--指定sql映射文件生成的位置 -->
<sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources" >
<property name="enableSubPackages" value="true" />
</sqlMapGenerator>
<!-- 指定dao接口生成的位置,mapper接口 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.lsl.store.mapper" targetProject="src/main/java" >
<property name="enableSubPackages" value="true" />
</javaClientGenerator>
<!-- 选择一个table来生成相关文件,可以有一个或多个table,必须要有table元素
选择的table会生成一下文件:
1,SQL map文件
-->
<table tableName="%" >
<!-- 参考 javaModelGenerator 的 constructorBased属性-->
<property name="constructorBased" value="false"/>
<!-- 默认为false,如果设置为true,在生成的SQL中,table名字不会加上catalog或schema; -->
<property name="ignoreQualifiersAtRuntime" value="false"/>
<!-- 参考 javaModelGenerator 的 immutable 属性 -->
<property name="immutable" value="false"/>
<!-- 指定是否只生成domain类,如果设置为true,只生成domain类,如果还配置了sqlMapGenerator,那么在mapper XML文件中,只生成resultMap元素 -->
<property name="modelOnly" value="false"/>
<!-- 如果设置为true,生成的model类会直接使用column本身的名字,而不会再使用驼峰命名方法,比如BORN_DATE,生成的属性名字就是BORN_DATE,而不会是bornDate -->
<property name="useActualColumnNames" value="false"/>
</table>
</context>
</generatorConfiguration>
开始生成代码(生成器插件在pom.xml):



编写代码,测试:


ok,整合成功,剩下的就是堆代码,整合其它了。
整合须知:
mybatis的映射文件必须放在resources内,否则报错找不到。(可能是xml吗,可以试试注解,
需要在启动类添加@MapperScan (扫描mapper接口
idea自动编译:setting-complier-auto.....
springboot热部署:pom.xml里有
嗯,暂时就折磨多!
继续堆代码之事务:
自动配置自动配置自动配置,(你也可以自己搞,不过默认的已经够用了,毕竟个人的的项目很小
1.自动配置事务管理器:
在使用JDBC作为数据访问技术时,(pom.xml自己看),springboot会我们定义PlatformTransaction Manager的实现DataSourceTransactionManager的bean,
配置见源码:jdbc.DataSourceTransactionManagerAutoConfiguration类中的定义。
在使用jpa,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,JpaTransactionManager的bean,
,,,,,jpa.JpaBaseConfiguration类中的定义
(本项目使用jdbc的事务管理器)
2.自动开启注解事务的支持:
springboot专门用于配置事务的类:TransactionAutoConfiguration,该类依赖于上述两个源码类
在DataSourceTransactionManagerAutoConfiguration里自动开启了对声明式事务的支持,所以jdbc(pom.xml),所以在启动类无须显示开启使用@EnableTransactionManagement
所以使用jdbc的事务,啥都不用,(貌似使用jpa还需显示开启
所以测试下把:在serivce模拟移除删除:

继续在controller编写响应的代码,测试(不截图了,懒,反正回滚了,反正没删掉,写错的话,不要打我啊
ok,事务这块暂时就到这,以后有新发现再添加。
原文:https://www.cnblogs.com/lslshuo/p/9242677.html