本文开发环境采用idea,数据库postgreSQL,小白一枚,有问题请指出,由于公司电脑不方便截图,所以操作就文字描述了
一.新建项目
在idea中的File中选New Project-Spring Intitializr --Next–填写项目名–Next-Web(勾上Spring Web)–SQL(勾上JDBC API,Mybatis Framework,PostgreSQL Driver(这里根据自己使用的数据库,本项目采用的PostgresSQL))–Next–Finish
删除生成目录中的mvnw,mvnw.cmd和.mvn(没用)
二.建项目结构
在与启动类同级的包下新建controller(控制层),orm(本文将数据访问层Dao和实体类层model都放置在orm下并且后面会用mybatis的generator插件生成实体类和dao,所以在dao和model下都有新建auto包和manual包,用来识别自己写的方法和自动生成的代码),service层,在resource下新建mybatis/mapper包用来存放生成的映射文件,同样有auto和manual
三.配置mybatis
这里配置文件采用application.yml和application-dev.yml文件(配置文件多环境配置)
application.yml和application.properties文件这两种文件都是Springboot的配置文件,注释都可以用#号来注释,只不过因为application.yml看起来更直观,更清晰。但是要注意一点:properties文件的优先级高于yml文件,即如果两个文件中都配置了端口号,只有properties中的端口号有效,而yml文件中端口配置无效。
application.properties文件,在properties文件中是以”.”进行分割的。
application.properties文件,都是K-V格式,并且通过” : ”引号进行赋值;
具体区别可参考:application.properties和application.yml的区别
spring:
# 环境 dev:开发环境|test:测试环境|prod:生产环境
profiles:
active: dev #激活的配置文件
(注意:激活application-dev.yml时若其中存在application.yml同名配置时后者的配置属性会被覆盖)
application.yml
spring:
profiles:
active: dev
application-dev.yml
端口号
server:
port: 8080
spring:
datasource:
username: 用户名
password: 密码
url: jdbc:postgresql://ip地址(数据库连接地址):端口号/数据库名
driver-class-name: org.postgresql.Driver
#配置mybatis
mybatis:
#映射文件路径
mapper-locations: classpath:mybatis/mapper/manual/*.xml
#模型所在的包名
type-aliases-package: com.dem.orm.daoX.auto
#showSql
logging:
level:
com:
demo:
mapper : debug
接下来配置Mybatis的generator插件
在resource下新建
mybatis_generator.properties
#mybatis-generator:generate
#指向本地数据库驱动
classPathEntry=D://maven_idea//repository//org//postgresql//postgresql//9.4.1212.jre7//postgresql-9.4.1212.jre7.jar
#数据库连接和驱动
jdbc_driver=org.postgresql.Driver
jdbc_url=jdbc:postgresql://ip地址(数据库连接地址):端口号/数据库名
jdbc_username=用户名
jdbc_password=密码
modelProject=src/main/java
sqlMapperProject=src/main/resources
daoMapperProject=src/main/java
#自动生成的文件路径
modelPackage=com.dem.orm.model.auto
sqlMapperPackage=mybatis.mapper.auto
daoMapperPackage=com.dem.orm.daoX.auto
#表名称
tableName=test
然后在mybatis下新建generator配置并且读取mybatis_generator.properties内的驱动和信息
generatorConfig.xml
<?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>
<properties resource="mybatis_generator.properties"/>
<!-- 注意以下标签的顺序:property*,plugin*,commentGenerator?,jdbcConnection,
javaTypeResolver?,javaModelGenerator,sqlMapGenerator?,
javaClientGenerator?,table+ -->
<!--数据库驱动jar-->
<classPathEntry location="${classPathEntry}"/>
<context id="postgresql" targetRuntime="MyBatis3" defaultModelType="flat">
<commentGenerator>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="false"/>
<!-- 不希望生成的注释中包含时间戳 -->
<property name="suppressDate" value="true"/>
<!-- 是否 自动为每一个生成的类创建一个构造方法-->
<property name="constructorBased" value="false"/>
</commentGenerator>
<!--数据库连接 -->
<jdbcConnection driverClass="${jdbc_driver}"
connectionURL="${jdbc_url}"
userId="${jdbc_username}"
password="${jdbc_password}">
</jdbcConnection>
<!-- 指定生成的类型为java类型,避免数据库中number等类型字段 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="true"/>
</javaTypeResolver>
<!-- 生成model模型,对应的包,存放位置可以指定具体的路径,如/ProjectName/src,也可以使用MAVEN来自动生成 -->
<javaModelGenerator targetPackage="${modelPackage}" targetProject="${modelProject}">
<!-- 在targetPackage的基础上,根据数据库的schema再生成一层package,最终生成的类放在这个package下,默认为false -->
<property name="enableSubPackages" value="false"/>
<!-- 设置是否在getter方法中,对String类型字段调用trim()方法 -->
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!--对应的xml mapper文件 -->
<sqlMapGenerator targetPackage="${sqlMapperPackage}" targetProject="${sqlMapperProject}">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 对应的dao接口 -->
<javaClientGenerator type="XMLMAPPER" targetPackage="${daoMapperPackage}" targetProject="${daoMapperProject}">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!--对应数据库表 mysql可以加入主键自增 字段命名 忽略某字段等-->
<table tableName="${tableName}"></table>
<!-- enableCountByExample="false" enableUpdateByExample="false"
enableDeleteByExample="false" enableSelectByExample="false"
selectByExampleQueryId="false"> 指定是否生成操作数据库对应的方法 -->
</context>
</generatorConfiguration>
接下来点击右侧的maven 选择项目名下的Plugins 会看到有mybatis-generator,点开第一个直接run就完成了!!!
接下来的业务逻辑和Service层都由自己去完成了,映射文件中会自动生成一些SQL语句,需要使用也可以直接调用。