1.1 使用Maven的quickstart框架
注意是不出现w的quickstart:
1.2 加入依赖
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!--mybatis依赖--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.1</version></dependency><!--mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.9</version></dependency></dependencies>
1.3 引入插件
<build><!--资源插件:处理src/main/java目录中的xml--><resources><resource><directory> src/main/java</directory> <!--所在的目录--><includes><!--包括目录下的.properties,.xml文件都会扫描到--><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>
注意加了插件后dao的xml文件才能加载到target的classes中:
1.4 在pojo包中创建Student实体类
package jiang.pojo;public class Student {private Integer id;private String name;private Integer age;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "Student{" +"id=" + id +", name='" + name + '\'' +", age=" + age +'}';}public Student(Integer id, String name, Integer age) {this.id = id;this.name = name;this.age = age;}public Student() {}
}
1.5 创建对应的Student数据库
1.6 在dao包中创建StudentDao接口
package jiang.dao;import jiang.pojo.Student;public interface StudentDao {Student selectStudentById(Integer id);
}
1.7 在dao包中创建StudentDao.xml文件
注意:需要修改的有namespace、id、resultType;sql语句后面不写分号;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="jiang.dao.StudentDao"><!--namespace、id、resultType都需要修改--><select id="selectStudentById" resultType="jiang.pojo.Student"> <!--查询一个学生Student<select>:表示查询操作,里面的selectid:要执行的sql语句的唯一表示。是一个自定义的字符串。推荐使用dao接口中的方法名称resultType:告诉mybatis,执行sql语句,把数据赋值给那个类型的java对象。resultType的值现在使用的java对象的全限定名称,从java路径后开始写包路径-->SELECT * FROM student where id = 1</select>
</mapper>
1.8 在main中创建resources资源包
1.9 在resources中创建mybatis.xml主配置文件
要修改的部分:
1.<property name="url" value="jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=utf-8"/> study是数据库的名称!
2.<mapper resource="jiang/dao/StudentDao.xml"/>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//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"/><!--配置数据源:创建connection对象。--><dataSource type="POOLED"><!--driver:驱动的内容--><property name="driver" value="com.mysql.jdbc.Driver"/><!--url:连接数据库的url--><property name="url" value="jdbc:mysql://localhost:3306/study?useUnicode=true&characterEncoding=utf-8"/><!--用户名--><property name="username" value="root"/><!--密码--><property name="password" value="root"/></dataSource></environment></environments><!--指定其他mapper文件的位置:找到其他文件的sql语句--><mappers><!--使用mapper的resource属性指定mapper文件路径这个路径是从target/classes路径开启的使用注意:resoruce="mapper文件的路径,使用/分割路径"一个mapper resource指定一个mapper文件--><mapper resource="jiang/dao/StudentDao.xml"/></mappers>
</configuration>
1.10 创建测试内容
package jiang;import jiang.pojo.Student;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import org.apache.ibatis.io.Resources;import java.io.IOException;
import java.io.InputStream;public class MyTest {@Testpublic void test1() throws IOException {//调用mybatis某个对象的方法,执行mapper文件中的sql语句// mybatis核心类:sqlsessionFactory//1.定义mybatis主配置文件的位置,从类路径开始的相对路径String config = "mybatis.xml";//2.读取主配置文件。使用mybatis框架中的Resources类InputStream inputStream = Resources.getResourceAsStream(config);//3.创建SqlSessionFactory对象,使用sqlSessionFactoryBuidler类SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);//4.获取SqlSession对象SqlSession sqlSession = factory.openSession();//5.指定要执行的sql语句的id// sql的id = namespace+"."+ selectlupdate|insert |delete标签的id属性值(接口的方法名)String sqlId = "jiang.dao.StudentDao"+"."+"selectStudentById";//6.通过SqlSession方法,执行sql语句Student student = sqlSession.selectOne(sqlId);System.out.print("使用mybatis查询一个学生:"+student);//7.关闭SqlSession对象sqlSession.close();}
}
运行结果如下: