准备工作
mybatis数据库和user表
建库
1 2
| drop database if exists mybatis; create database mybatis;
|
建表
1 2 3 4 5 6 7 8 9 10 11 12 13
| drop table if exists user; create table user ( id bigint auto_increment comment '编号' primary key, user_name varchar(256) null comment '姓名', user_account varchar(512) null unique comment '账号', user_password varchar(512) null comment '密码', user_sex varchar(10) null comment '性别', user_age int null comment '年龄', user_email varchar(512) null comment '账号' ) comment '用户表';
|
创建maven工程
从idea中新建maven工程
设置打包方式为jar包
在pom.xml中添加下面的代码
1
| <packaging>jar</packaging>
|
引入相关依赖
相关依赖有mysql驱动、junit和Mybatis以及log4j日志框架,在pom.xml中加入以下代码块
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.3</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies>
|
创建Mybatis核心配置文件
核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息
Mybatis核心配置文件的名称随意,后缀为xml,这里叫做mybatis-config.xml
核心配置文件存放的位置在src/main/resources目录下
Mybatis核心配置文件内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| <?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.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> </configuration>
|
创建User实体类
创建数据库表user对应的实体类User
创建一个pojo包,里面放我们的实体类User
位置如下
User类内容如下
1 2 3 4 5 6 7 8 9
| public class User { private Long id; private String userName; private String userAccount; private String userPassword; private String userSex; private Integer userAge; private String userEmail; }
|
创建mapper接口
MyBatis中的mapper接口相当于jdbc的dao。但是mapper仅仅是接口,我们不需要实现
位置如下,先创建mapper包,在创建UserMapper接口
UserMapper接口内容如下
int insertUser()
方法等下做测试用
1 2 3 4 5 6 7
| public interface UserMapper {
int insertUser(); }
|
创建MyBatis的映射文件
我们在Mybatis的映射文件中写sql语句,映射到mapper接口对应的方法上去
配置文件位置
需要保证两个一致
- mapper接口的全类名和映射文件的namespace保持一致
- mapper接口中的方法的方法名和映射文件中编写sql的标签的id属性保持一致
1 2 3 4 5 6 7 8 9 10 11
| <?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="mapper.UserMapper"> <insert id="insertUser"> insert into user values(null, 'jack', 'root', '123456', '男', 18, '11111111@youxiang.com') </insert> </mapper>
|
在核心配置文件中引入映射配置文件
在核心配置文件中添加以下内容
1 2 3
| <mappers> <mapper resource="mapper/UserMapper.xml"/> </mappers>
|
插入位置如下
加入log4j配置文件
log4j的配置文件名为log4j.xml,存放的位置是src/main/resources目录下
log4j配置文件内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"> <log4j:configuration debug="true"> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <param name="Encoding" value="UTF-8"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m (%F:%L) \n"/> </layout> </appender> <logger name="java.sql"> <level value="debug"/> </logger> <logger name="org.apache.ibatis"> <level value="info"/> </logger> <root> <level value="debug"/> <appender-ref ref="STDOUT"/> </root> </log4j:configuration>
|
测试
在如下位置创建MyBatisTest测试类
jdbc中的事务是自动提交的,当我们手动对事务进行管理的时候,才会取消自动管理事务
而mybatis默认是手动提交事务,这里我们为了方便测试,将其设置为自动提交事务(实际开发中应该根据业务需求设置自动提交事务)
内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public class MyBatisTest { @Test public void test01() throws IOException { InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is); SqlSession sqlSession = sqlSessionFactory.openSession(true); UserMapper mapper = sqlSession.getMapper(UserMapper.class); int result = mapper.insertUser(); if (result > 0) { System.out.println("插入成功!"); } else { System.out.println("插入失败!"); } } }
|
测试结果
至此,MyBatis环境已经基本搭建起来!