创建一个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 List 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         
 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         List 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)