使用Maven创建mybatis工程
前言:笔者最近在学习SSM框架,写这个的目的是想把这个过程记录下来,以便以后忘了的话能够翻阅。如果这篇文章能够帮到你,请不妨点个赞;如果有错误请提出来,一起交流学习
1. 建立数据表
1.1 建表脚本如下
create table accounts (
id int unsigned auto_increment primary key,
username varchar(50) not null,
sex varchar(10) not null default '男',
birth date not null
)engine=InnoDB default charset=utf8;
2. 使用idea创建Maven工程
2.1 创建Maven
- 不选择骨架,点击next
- 填写GroupId和ArtifactId,GroupId我就直接填我的名字,ArtifactId填项目工程名
- 填写文件夹路径,点Finish
- 进入项目界面会提示需要导入包,点击
Enable Auto Import
2.2 添加依赖
- 在pom.xml文件
<project>
标签中添加如下依赖
<dependencies>
<!-- mybatis jar 包-->
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
<!-- mysql驱动包-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- junit-->
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13-beta-3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
原本我的log4j版本是2.x,只是后来控制台老报错说是要加什么xml配置文件,然后我就把log4j的版本换成的1.x
3. 配置mybatis
3.1 添加domain领域类和dao类
- 在
src\main\java
中创建com.zimu
包,并在其中创建两个子包domain
dao
- 在
domian
中创建一个模型对象User.java
package com.zimu.domain;
import java.util.Date;
public class User {
private int id;
private String username;
private char sex;
private Date birth;
/*constructer*/
/*getter&&setter*/
}
- 在
dao
中创建一个dao接口AccountDao.java
,类型是interface
,这里我只添加一个方法用于测试
package com.zimu.dao;
import com.zimu.domain.User;
public interface AccountDao {
void addUser(User user);
}
3.2 添加mybatisConfig.xml
配置文件
- 在
src\main\resources
文件夹下创建mybatisConfig.xml
(名字任意) mybatisConfig.xml
的完整内容如下
<?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>
<environments default="development">
<!-- 环境变量名 可指定多个环境 -->
<environment id="development">
<!-- 配置事务类型-->
<transactionManager type="JDBC"/>
<!-- 配置数据源(连接池)-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="<你的mysql密码>"/>
</dataSource>
</environment>
</environments>
<!-- 映射配置文件-->
<mappers>
<mapper resource="mapper.xml"/>
</mappers>
</configuration>
3.3 添加映射配置文件mapper.xml
- 在相同的文件夹下创建
mapper.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">
<!--namespaces必须指定为全类型限定名-->
<mapper namespace="com.zimu.dao.AccountDao">
<!-- 注意id必须和方法名相同 -->
<insert id="addUser">
insert into accounts (username,sex,birth) values (#{username},#{sex},#{birth})
</insert>
</mapper>
3.4 添加log4j配置文件log4j.properties
- 在
resources
文件夹创建log4j.properties
,文件内容如下
# Global logging configuration
log4j.rootLogger=DEBUG,stdout
#Mybatis 日志配置
log4j.logger.com.zimu.dao=DEBUG
#Console output
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
- 完成后的项目目录如下
4. 测试
4.1 创建测试用例
- 在
src\test\java
目录下创建包com.zimu.test
,并在包中创建测试类demo01.java
package com.zimu.test;
/*imports*/
public class demo01 {
@Test
public void testAddUser() throws Exception{
InputStream is= Resources.getResourceAsStream("mybatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
SqlSession sqlSession = sqlSessionFactory.openSession();
AccountDao mapper = sqlSession.getMapper(AccountDao.class);
User user1=new User("xiaoming",'男',new Date());
mapper.addUser(user1);
sqlSession.commit();
sqlSession.close();
is.close();
}
}
4.2 执行测试用例
- 执行测试用例,如果控制台显示绿色的条则说明执行成功,
- 打开navicat,可以看到数据插入成功