创建一个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.0modelVersion> 5 <groupId>com.maoleigroupId> 6 <artifactId>mybatis-studyartifactId> 7 <version>0.0.1-SNAPSHOTversion> 8 <packaging>pompackaging> 9 <modules> 10 <module>mybatis-study-01module> 11 modules> 12 13 <dependencies> 14 <dependency> 15 <groupId>mysqlgroupId> 16 <artifactId>mysql-connector-javaartifactId> 17 <version>5.1.47version> 18 dependency> 19 <dependency> 20 <groupId>org.mybatisgroupId> 21 <artifactId>mybatisartifactId> 22 <version>3.5.2version> 23 dependency> 24 <dependency> 25 <groupId>junitgroupId> 26 <artifactId>junitartifactId> 27 <version>4.10version> 28 dependency> 29 <dependency> 30 <groupId>org.projectlombokgroupId> 31 <artifactId>lombokartifactId> 32 <version>1.18.12version> 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 ListgetUser(); 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 9 10 settings> 11 <typeAliases> 12 13 <package name="com.maolei.pojo"/> 14 typeAliases> 15 19 <environments default="mysql"> 20 21 <environment id="mysql"> 22 26 <transactionManager type="JDBC">transactionManager> 27 31 <dataSource type="POOLED"> 32 33 <property name="driver" value="${driver}"/> 34 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 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/javadirectory> <includes> <include>**/*.propertiesinclude> <include>**/*.xmlinclude> includes> <filtering>truefiltering> resource> <resource> <directory>src/main/resourcesdirectory> <includes> <include>**/*.propertiesinclude> <include>**/*.xmlinclude> includes> <filtering>truefiltering> 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 ListuserList = 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)