一、
Maven
搭建
MyBatis
项目
1.1
创建
maven
项目
① 通过菜单创建项目
依次点开
[
文件
-
新建
-
项目
]
菜单,选择
Maven
,勾选
从
archetype
创建
(A)
,再选择
maven
archetype
-
webapp
点下一步。
② 给项目取名
给项目取名,并存放在合适的位置,填写组织
ID
(公司名称,如:
com.bdqn
)。
③ 配置Maven环境
通常,在新项目配置中做好配置之后,这一步不需要做任何修改。
④ 点击完成
点击完成按钮,在联网的情况下,
IDEA
会自动根据模板构建项目。
配置项目web目录位
1.2
配置
pom.xml
文件
① 确认项目名称和打包方式
groupId:
组织
ID
artifactId:
项目名称(产品
ID
)
version:
版本号
packaging:
打包方式:
pom
、
jar
、
war
三种方式
② 引入需要的框架支持
在
dependencies
节点中引入需要的框架支持,通过
指定
Maven
坐标
即可从远程仓库将需要的
jar
包引入
到项目中来。
maven
坐标包括:
groupId
、
artifactId
、
version
三项,可以通过官网搜索查看。
③ 构建配置资源目录
由于
Maven
构建项目时默认不会将
resources
目录下的配置文件加载到项目中,需要手动指定资源文件
类型及位置,以便
Maven
构建项目时将相关后缀的配置文件加载到构建目录中
(
注意:
不配置可能会报找不到配置的问题)
④ 最终pom.xml配置
二、创建项目目录结构
分包管理项目资源可以让项目结构更清晰,组织更合理,并且按照业界标准执行,大家都能看懂你的项目结构。
2.1
创建目录
① 创建目录步骤
②
IDEA
目录规则
IDEA
工具会根据目录标记识别目录,不同的目录存放的文件作用是不同的,不能错乱。
src:
源文件目录,存放
java
源代码,只有该目录下的文件才会被编译成
class
文件
resources:
资源文件目录,存放所有配置文件
webapp: Web
文件目录,存放
HTML
、
CSS
、
JS
③ 项目包组织结构
最终项目包结构如下:
项目包结构说明:
java
、
resource
、
webapp
这三个目录应该是在同一层级(
src/main/java
)中,
IDEA
是严格按照目录对
应的用途进行功能划分的,各目录说明如下:
java
源代码,此目录存放
java
源代码。
controller
控制器,
MVC
模式的核心控制器层代码。
service
业务逻辑层(也叫服务层),处理业务逻辑的代码,通常被控制器调用。
mapper
数据访问层,处理数据访问相关的代码,这里使用
MyBatis
实现,通常被服务层调用。
pojo
实体类,通常与数据库中的表对应,封装成实体类,在各层级之间传递数据。
resources
配置文件,
Spring
、
SpringMVC
、
MyBatis
、数据源、日志等配置文件均放在此处。另
外,使用MyBatis时通常我们会把Mapper
映射配置放置在
resources/mapper
目录下。
webapp
Web
页面资源,包含页面组件、
CSS
、
JS
、图片和页面等
Web
资源。
webapp/WEB-INF Web
资源中,受保护的目录,直接通过浏览器
URL
是访问不到该目录下的资源
的,可以使用SpringMVC的视图解析器访问到这个目录下的视图。
web.xml
是
Web
项目的核心配置文件(有时候项目中不一定有,没有的时候会默认使用
Web
容器
中的web.xml配置),
主要用来配置Filter、Listener、Servlet等。
三、编写配置
3.1
引入日志配置
在
resources
目录中编写如下日志文件(
log4j.properties
):
### 设置 Logger 输出级别和输出目的地 DEBUG, console,logfile ###log4j.rootLogger = DEBUG, console,logfile### 把日志信息输出到控制台 ###log4j.appender.console = org.apache.log4j.ConsoleAppenderlog4j.appender.console.Target = System.outlog4j.appender.console.layout = org.apache.log4j.PatternLayoutlog4j.appender.console.layout.ConversionPattern = %d{yyyy-MM-dd HH : mm : ss} [%5p] %m%l%n### 把日志信息输出到文件: jbit.log ###log4j.appender.logfile = org.apache.log4j.FileAppenderlog4j.appender.logfile.File = jbit.loglog4j.appender.logfile.layout = org.apache.log4j.PatternLayoutlog4j.appender.logfile.layout.ConversionPattern = %d{yyyy-MM-dd HH : mm : ss} [%5p] %m%l%n### 单独配置特殊包的日志打印级别 ###log4j.logger.com.bdqn.mapper = debuglog4j.logger.com.ibatis = debuglog4j.logger.com.ibatis.common.jdbc.SimpleDataSource = debuglog4j.logger.com.ibatis.common.jdbc.ScriptRunner = debuglog4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = debuglog4j.logger.java.sql.Connection = debuglog4j.logger.java.sql.Statement = debuglog4j.logger.java.sql.PreparedStatement = debuglog4j.logger.java.sql.ResultSet = debug
3.2
编写
MyBatis
核心配置
在
resources
目录下新建
mybatis
-
config.xml
文件,可以根据模板来创建。
配置说明:
:根节点,所有配置均包含在此之下
:资源配置,可以用来配置数据源,
resource="source.properties"
表示引用外部配置文件
:用来配置属性默认值,例如,配置名称
name="jdbc.driver"
;配置值
value="com.mysql.cj.jdbc.Driver"
:全局配置,用来配置日志、缓存、
Mapper
映射等等
:开启控制台日志
:全自动映射级别
:给类取别名,可以使用
package
指定一个实体类的基础包,也可以使用
typeAlias
为某一个实体
类取别名
:用来配置数据源及事务环境
:配置
SQL
映射文件位置
完整配置如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 数据源配置,默认配置将会被 source.properties 中的配置文件覆盖 --><properties resource = "source.properties" ><property name = "jdbc.driver" value = "com.mysql.cj.jdbc.Driver" /><property name = "jdbc.url" value = "jdbc:mysql:///cvs_db?serverTimezone=UTC&characterEncoding=utf-8" /><property name = "jdbc.username" value = "root" /><property name = "jdbc.password" value = "lilibo" /></properties><!-- 全局配置文件 --><settings><!-- 开启控制台日志 --><setting name = "logImpl" value = "STDOUT_LOGGING" /><!-- 全自动映射级别 --><setting name = "autoMappingBehavior" value = "FULL" /></settings><!-- 类型别名 --><typeAliases><!-- 单独为某个实体类取别名 --><!-- <typeAlias type="com.bdqn.pojo.SysUser" alias="sysUser" /> --><!-- 给某个包下的所有实体类取别名,别名规则为类名称小驼峰命名法 --><package name = "com.bdqn.pojo" /></typeAliases><!-- 数据源及事务配置,可以配置多段 environment , id 取名,使用 default 指定当前使用的环境 --><environments default = "dev" ><environment id = "dev" ><!-- 事务管理器 --><transactionManager type = "JDBC" ></transactionManager><!-- 数据源配置 --><dataSource type = "POOLED" ><property name = "driver" value = "${jdbc.driver}" /><property name = "url" value = "${jdbc.url}" /><property name = "username" value = "${jdbc.username}" /><property name = "password" value = "${jdbc.password}" /></dataSource></environment></environments><!-- SQL 映射文件配置 --><mappers><mapper resource = "mapper/SysUserMapper.xml" /></mappers></configuration>
3.3
编写数据源配置
数据源配置文件
source.properties
内容如下:
# 驱动名称jdbc.driver = com.mysql.cj.jdbc.Driver# 连接字符串jdbc.url = jdbc : mysql : ///cvs_db?serverTimezone = UTC&characterEncoding = utf-8# 用户名jdbc.username = root# 密码jdbc.password = ******
四、编写代码
4.1 编写实体类
4.2 编写接口
4.3 编写接口映射文件
① 创建接口映射文件 基于MyBatis Mapper模板创建接口对应的映射文件。
② 安装MyBatisX插件 在插件市场搜索MyBatisX插件,方便基于MyBatis框架编写代码。
③ 编写接口映射文件 基于生成的接口映射文件,编写代码.
五、编写测试代码
5.1
生成测试类
在
src/test/java
目录中编写测试类,可以通过
MyBatis
接口生成测试类。
5.2
编写测试类
① 编写
@Before
方法
@Before
表示所有测试,在执行之前需要做些什么。这里可以执行获取
SqlSession
对象相关代码。
② 编写
@After
方法
@After
表示所有测试,在执行之后需要做些什么。这里可以执行关闭连接回收资源相关代码。
③ 编写接口测试方法
5.3
运行测试