创建一个Mybatis工程
一、创建maven项目,导入相关jar包(配置pom.xml文件)
1 <project xmlns="http://maven.apache.org/POM/4.0.0" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <groupId>com.maolei</groupId> 6 <artifactId>mybatis-study</artifactId> 7 <version>0.0.1-SNAPSHOT</version> 8 <packaging>pom</packaging> 9 <modules> 10 <module>mybatis-study-01</module> 11 </modules> 12 13 <dependencies> 14 <dependency> 15 <groupId>mysql</groupId> 16 <artifactId>mysql-connector-java</artifactId> 17 <version>5.1.47</version> 18 </dependency> 19 <dependency> 20 <groupId>org.mybatis</groupId> 21 <artifactId>mybatis</artifactId> 22 <version>3.5.2</version> 23 </dependency> 24 <dependency> 25 <groupId>junit</groupId> 26 <artifactId>junit</artifactId> 27 <version>4.10</version> 28 </dependency> 29 <dependency> 30 <groupId>org.projectlombok</groupId> 31 <artifactId>lombok</artifactId> 32 <version>1.18.12</version> 33 </dependency> 34 </dependencies> 35 </project>
二、创建实体类和查询sql的接口
User.java
1 package com.maolei.pojo; 2 3 import lombok.Data; 4 5 //使用lombok 6 @Data 7 public class User { 8 private int id; 9 private String name; 10 private String pwd; 11 12 }
UserMapper.java
1 package com.maolei.mapper; 2 3 import java.util.List; 4 5 import com.maolei.pojo.User; 6 7 public interface UserMapper { 8 public List<User> getUser(); 9 10 }
三、编写配置文件
1、数据库配置文件(db.properties)
1 driver=com.mysql.jdbc.Driver 2 url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT 3 username=root 4 password=123456
2、Mybatis配置文件(mybatis-config.xml)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 4 <configuration> 5 <properties resource="db.properties"/> 6 <settings> 7 <setting name="logImpl" value="STDOUT_LOGGING"/> 8 <!-- <setting name="mapUnderscoreToCamelCase" value="true"/> --> 9 <!-- <setting name="logImpl" value="LOG4J"/> --> 10 </settings> 11 <typeAliases> 12 <!-- <typeAlias alias="User" type="com.maolei.pojo.User"/> --> 13 <package name="com.maolei.pojo"/> 14 </typeAliases> 15 <!-- 16 注释快捷键 :ctrl+shift+/ 17 environments与environment值保持一致 18 --> 19 <environments default="mysql"> 20 <!--environment代表的是环境--> 21 <environment id="mysql"> 22 <!-- 23 transactionManager:代表数据库的事务 24 Type统一是JDBC 25 --> 26 <transactionManager type="JDBC"></transactionManager> 27 <!-- 28 dataSource:代表数据源 29 type:POOLED 30 --> 31 <dataSource type="POOLED"> 32 <!-- 配置数据库驱动 --> 33 <property name="driver" value="${driver}"/> 34 <!-- 配置url --> 35 <property name="url" value="${url}"/> 36 <!-- 配置用户名 --> 37 <property name="username" value="${username}"/> 38 <!-- 配置密码 --> 39 <property name="password" value="${password}"/> 40 </dataSource> 41 </environment> 42 </environments> 43 <mappers> 44 <!-- 45 <mapper resource="com/maolei/mapper/UserMapper.xml"/> 46 --> 47 <mapper class="com.maolei.mapper.UserMapper"/> 48 </mappers> 49 50 </configuration>
3、接口映射文件(UserMapper.xml)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 <mapper namespace="com.maolei.mapper.UserMapper"> 5 <select id="getUser" resultType="user"> 6 select * from user; 7 </select> 8 </mapper>
这个UserMapper.xml文件要创建在resources下面的com.maolei.mapper包下面,这个包路径要与UserMapper.java的包路径相同!
如果UserMapper.xml与UserMapper.java放在同一包中,那就需要在pom.xml中添加静态资源过滤器
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource> </resources> </build>
四、编写测试类
MyTest.java
1 import java.io.IOException; 2 import java.io.InputStream; 3 import java.util.List; 4 5 import org.apache.ibatis.io.Resources; 6 import org.apache.ibatis.session.SqlSession; 7 import org.apache.ibatis.session.SqlSessionFactory; 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 9 import org.junit.Test; 10 11 import com.maolei.mapper.UserMapper; 12 import com.maolei.pojo.User; 13 14 public class MyTest { 15 @Test 16 public void getUser() throws IOException { 17 //下面sqlsession的获取可以做成一个工具类 18 String resource = "mybatis-config.xml"; 19 InputStream in = Resources.getResourceAsStream(resource); 20 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in); 21 SqlSession sqlSession = ssf.openSession(); 22 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 23 List<User> userList = userMapper.getUser(); 24 for (User user : userList) { 25 System.out.println(user); 26 } 27 } 28 29 }
测试类执行结果:
User(id=1, name=王五, pwd=123456)
User(id=2, name=张三, pwd=123456)
User(id=3, name=李四, pwd=123456)
User(id=4, name=小明, pwd=123456)