MyBatis是一款持久层框架。
映射配置文件
每一个接口对应一个映射配置文件,映射配置文件存储路径在resources目录下,并且要和接口的包路径保持一致,映射配置文件名需要和接口名保持一致。
idea创建映射配置文件模板,可以快速创建mybatis映射配置文件。

简单使用:
- mapper
- PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.angen.dao.MemberDao">
-
-
-
-
- <select id="findAll" resultType="com.angen.pojo.Member">
- select * from dlq_member
- select>
-
- <insert id="addMember" parameterType="com.angen.pojo.Member">
- insert into dlq_member values(null,#{phone},#{username},#{password})
- insert>
-
- <update id="updateMember" parameterType="com.angen.pojo.Member">
- update dlq_member set username=#{username} where id=#{id}
- update>
-
- <delete id="deleteMember" parameterType="java.lang.Integer">
- delete from dlq_member where id=#{id}
- delete>
- mapper>
核心配置文件
1,存放路径必须是resources的根路径
2,配置文件的名字,随便写
3,一定要引入约束
mybatis核心配置文件_笑霸final的博客-CSDN博客_mybatis核心配置
- configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
-
-
- <environments default="dev">
-
- <environment id="dev">
-
- <transactionManager type="JDBC"/>
-
- <dataSource type="POOLED">
- <property name="driver" value="com.mysql.jdbc.Driver"/>
- <property name="url" value="jdbc:mysql://localhost:3306/test_mybatis?characterEncoding=utf8"/>
- <property name="username" value="root"/>
- <property name="password" value="123456"/>
- dataSource>
- environment>
-
- <environment id="test">
- <transactionManager type="JDBC"/>
- <dataSource type="POOLED">
-
- dataSource>
- environment>
-
- <environment id="product">
- <transactionManager type="JDBC"/>
- <dataSource type="POOLED">
-
- dataSource>
- environment>
- environments>
-
- <mappers>
- <mapper resource="com/angen/dao/MemberDao.xml"/>
- mappers>
- configuration>
properties标签
- configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <configuration>
-
- <properties resource="jdbc.properties">properties>
-
-
- <environments default="dev">
-
- <environment id="dev">
-
- <transactionManager type="JDBC"/>
-
- <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>
-
- <environment id="test">
- <transactionManager type="JDBC"/>
- <dataSource type="POOLED">
-
- dataSource>
- environment>
-
- <environment id="product">
- <transactionManager type="JDBC"/>
- <dataSource type="POOLED">
-
- dataSource>
- environment>
- environments>
-
- <mappers>
- <mapper resource="com/angen/dao/MemberDao.xml"/>
- mappers>
- configuration>
在org.apache.ibatis.type.TypeAliasRegistry我们发现有很多别名

那么我们在配置映射文件的时候可以不可以写别名呢?
在核心配置文件中我们可以使用
typeAliases标签,来给类起别名
-
- <typeAliases>
- <typeAlias type="com.angen.pojo.Member" alias="Member">typeAlias>
- typeAliases>
由于有很多pojo类,如果按照以上方式一个一个配置很麻烦,所以有了如下这种方式:通过package标签进行包扫描批量配置别名。
表示将pojo包下的类都配置别名,别名就是类名,不区分大小写。
- <typeAliases>
-
- <package name="com.angen.pojo"/>
- typeAliases>
mappers标签作用引入加载映射配置文件。
-
- <mappers>
- <mapper resource="com/angen/dao/MemberDao.xml"/>
- mappers>
通过包扫描的方式批量加载映射配置文件
-
- <mappers>
-
- <package name="com.angen.dao"/>
- mappers>
配置好,并且写好其他代码后执行
- public class TestMybatis {
- @Test
- public void testFindAll() throws IOException {
- //测试findall方法
- //创建SqlSessionFactoryBuilder
- SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
- //读取核心配置文件
- InputStream resourceAsStream = Resources.getResourceAsStream("SqlMapConfig.xml");
- //创建SqlSessionFactory对象
- SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(resourceAsStream);
- //创建SqlSession
- SqlSession sqlSession = sqlSessionFactory.openSession();
- //创建MemberDao代理对象
- MemberDao mapper = sqlSession.getMapper(MemberDao.class);
- //调用想执行的方法
- List
allMember = mapper.findAll(); - for (Member member : allMember) {
- System.out.println(member);
- }
- //增删改操作需要提交事务
- sqlSession.commit();
- //关闭资源
- sqlSession.close();
- }
- }
idea mybatis插件
free-idea-mybatis是一款增强idea对mybatis支持的插件,主要功能如下:
生成mapper xml文件
快速从代码跳转到mapper及从mapper返回代码
mybatis自动补全及语法错误提示
集成mybatis generator gui界面
根据数据库注解,生成swagger model注解

直接alt+回车,自动生成映射文件中的标签

配置Mybatis日志打印,mybatis底层需要使用log4j日志打印框架来打印日志。
1,引入log4j引入依赖
2,配置log4j的配置文件
- <dependency>
- <groupId>log4jgroupId>
- <artifactId>log4jartifactId>
- <version>1.2.17version>
- dependency>
- <dependency>
- <groupId>org.slf4jgroupId>
- <artifactId>slf4j-apiartifactId>
- <version>1.6.1version>
- dependency>
- <dependency>
- <groupId>org.slf4jgroupId>
- <artifactId>slf4j-log4j12artifactId>
- <version>1.6.1version>
- dependency>
在 resources 目录下创建 log4j.properties 文件,复制以下代码。
可根据自身需求,将 文件输出的相关设置 中的 log4j.appender.file.File=./log/logFile.log 改变为自己的日志输出路径。
- #将等级为DEBUG的日志信息输出到console和file这两个目的地,console和file的定义在下面的代码
- log4j.rootLogger=DEBUG,console,file
-
- #控制台输出的相关设置
- log4j.appender.console = org.apache.log4j.ConsoleAppender
- log4j.appender.console.Target = System.out
- log4j.appender.console.Threshold=DEBUG
- log4j.appender.console.layout = org.apache.log4j.PatternLayout
- log4j.appender.console.layout.ConversionPattern=[%c]-%m%n
-
- #文件输出的相关设置
- log4j.appender.file = org.apache.log4j.RollingFileAppender
- log4j.appender.file.File=./log/logFile.log
- log4j.appender.file.MaxFileSize=10mb
- log4j.appender.file.Threshold=DEBUG
- log4j.appender.file.layout=org.apache.log4j.PatternLayout
- log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n
-
- #日志输出级别
- log4j.logger.org.mybatis=DEBUG
- log4j.logger.java.sql=DEBUG
- log4j.logger.java.sql.Statement=DEBUG
- log4j.logger.java.sql.ResultSet=DEBUG
- log4j.logger.java.sql.PreparedStatement=DEBUG