第一步:导入maven依赖
<!--导入依赖-->
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.0.1-atlassian-hosted</version>
</dependency>
</dependencies>
<!--导入资源加载 防止报资源加载异常的错误-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
第二步:新建mybatis-config.xml 文件,并导入下列的配置文件
<?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代表你要映射的路径
用resource 可以指定你的mapper路径在哪里
用 class 的话就需要你的这个UserMapper.xml的名字
和接口的名字一致,并且在一个包下
-->
<mappers>
<mapper class="com.aaa.dao.UserMapper"/>
<mapper resource="com/aaa/dao/UserMapper.xml"/>
</mappers></configuration>
第三步:建一个实体类
package com.aaa.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int tid;
private String ttname;
private char tsex;
}
第四步:建一个接口
package com.aaa.dao;
import com.aaa.pojo.User;
public interface UserMapper {
//通过tid查询
User getUser(int tid);
}
第五步:建UserMapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace 中写的是 核心配置文件
因为mybatis是持久层框架
持久层就对应我们web 中的 dao 层
所以这里namespace 中写的就是我们要操作接口中的方法的类的全限定类名
-->
<mapper namespace="com.aaa.dao.UserMapper">
<select id="getUser" parameterType="_int" resultType="com.aaa.pojo.User">
select * from TBS where TID=#{tid}
</select>
</mapper>
第六步:简单测试
import com.aaa.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
public class Mytest {
@Test
public void test() throws IOException {
String resource="mybatis-config.xml";
//输入流,用来读取配值文件
InputStream inputStream = Resources.getResourceAsStream(resource);
/*
用来将配置文件放入到这个工厂中
* */
SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(inputStream);
//打开工厂 sqlSession 作用域:只在一次会话中有效
SqlSession sqlSession = sf.openSession();
User user= sqlSession.selectOne("com.aaa.dao.UserMapper.getUser", 3);
System.out.println(user);
sqlSession.close();
}
}
小结:
- 至此我们就做了一个简单的mybatis的测试
注意点:
- mybatis-config.xml 中的mappers中的mapper不要遗忘
- 接口中的方法名就是UserMapper.xml中的id名
- resultType是返回一个结果集(这里我们用的是全限定类名,下节介绍简单方法)
- parameterType是输入参数
- #{} 可以防止sql注入,还有另一种方式是${} ,这里就不详细解释了
- #{}中的值就是你的实体类中的属性名