Mybatis使用过程
1、准备工作
-
添加依赖
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
-
配置log4j配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <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>
2、创建Mybatis配置文件
可以使用Mybatis官网的模板修改
传送门:Mybatis官网
就是获取下列配置文件(仅仅需要将 数据源 和 mapper文件路径 修改一下)
<?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="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
</configuration>
3、不同的创建的映射的方式
-
创建Mapper映射(并在mybatis全局配置文件中指明)
<?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="testNameSpace"> <select id="selectUser" resultType="com.bean.TestUser"> select * from user </select> </mapper>
@Test public void test03() throws Exception { InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession sqlSession = sqlSessionFactory.openSession(); //使用namespace和mapper文件中标签的id,确定使用的是哪一个标签 List<TestUser> users = sqlSession.selectList("testNameSpace.selectUser"); sqlSession.close(); for (TestUser user : users) { System.out.println(user); } }
-
动态代理方式
接口与mapper共同确定需要进行的操作
创建接口(接口中的方法名,要与mapper文件中标签的id相同)
package com.dao; import com.bean.TestUser; import com.bean.User; import java.util.List; public interface TestUserMapper { List<TestUser> selectUser(); }
修改mapper映射文件的namespace为接口的全类名(注意:mapper文件需要与相应的接口在同一个包下)
<?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="com.dao.TestUserMapper"> <select id="selectUser" resultType="com.bean.TestUser"> select * from user </select> </mapper>
测试(使用 接口 和 接口的方法 确定 mapper文件 和 mapper文件 中的标签)
@Test public void test04() throws Exception { InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream); SqlSession sqlSession = sqlSessionFactory.openSession(); //得到指定接口的mapper对象 TestUserMapper mapper = sqlSession.getMapper(TestUserMapper.class); //调用相应接口的相应方法 List<TestUser> users = mapper.selectUser(); sqlSession.close(); for (TestUser user : users) { System.out.println(user); } }
-
逆向工程创建
参见另一篇博文
传送门:Mybatis逆向工程