1、首先下载必要的jar包,包括:mybatis-***.jar、mysql-connector-java-***.jar、commons-logging-***.jar
2、在创建的项目中,建立一个properties文件,这里取名mysql.properties:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mydata?serverTimezone=GMT
jdbc.username=root
jdbc.password=xushiyu
在这个文件中存放了一些jdbc的配置参数
3、建立一个名为mybatis.cfg.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>
<!-- 引入外部配置文件,这里的配置文件为jdbc的配置文件的路径+文件名 -->
<properties resource="SQLTest/mysql.properties"></properties>
<!-- 配置mybatis运行环境 -->
<environments default="cybatis">
<environment id="cybatis">
<!-- type="JDBC" 代表使用JDBC的提交和回滚来管理事务 -->
<transactionManager type="JDBC" />
<!-- mybatis提供了3种数据源类型,分别是:POOLED,UNPOOLED,JNDI -->
<!-- POOLED 表示支持JDBC数据源连接池 -->
<!-- UNPOOLED 表示不支持数据源连接池 -->
<!-- JNDI 表示支持外部数据源连接池 -->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
</configuration>
4、创建一个实体对象
public class user {
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getMark() {
return mark;
}
public void setMark(int mark) {
this.mark = mark;
}
private int id;
private String grade;
private int age;
private int mark;
public String toString() {
return "id is "+id
+",grade is "+grade
+",age is "+age
+"mark is "+mark;
}
}
5、创建一个mapper.xml,这里主要配置了处理数据库的语句以及返回的结果,可以配置多个
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="SQLTest.Dao">
<!-- 自定义返回结果集,id作为以下用的字段,type表示bean的位置 -->
<resultMap id="userMap" type="SQLTest.user">
<!--property与bean对象中的字段相同, column和数据库中的字段名称相同></id>-->
<result property="id" column="id" javaType="java.lang.Integer"></result>
<result property="age" column="age" javaType="java.lang.Integer"></result>
<result property="mark" column="mark" javaType="java.lang.Integer"></result>
<result property="grade" column="grade" javaType="java.lang.String"></result>
</resultMap>
<!-- 在各种标签中的id属性必须和接口中的方法名相同 , id属性值必须是唯一的,不能够重复使用。parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型-->
<!-- useGeneratedKeys:( 仅 对 insert 有 用 ) 这 会 告 诉 MyBatis 使 用 JDBC 的getGeneratedKeys
方法来取出由数据(比如:像 MySQL 和 SQLServer 这样的数据库管理系统的自动递增字段)内部生成的主键。默认值: false。 -->
<!--keyProperty: (仅对 insert有用)标记一个属性, MyBatis 会通过 getGeneratedKeys或者通过 insert 语句的 selectKey 子元素设置它的值。默认:不设置。 -->
<!--#{}中的内容,为占位符,当参数为某个JavaBean时,表示放置该Bean对象的属性值 -->
<!--使用类似vo的形式返回数据<select id="selectAllUser" resultType="SQLTest.user">-->
<!--使用集合的形式返回数据<select id="selectAllUser" resultType="java.util.HashMap">-->
<select id="selectAllUser" resultMap="userMap">
select * from users
</select>
</mapper>
6、创建一个接口,内含所有mapper中sql语句对应id的方法:
public interface Dao {
public List<user> selectAllUser();
}
7、创建工具类,获取SqlSession对象
public class DBTools {
public static SqlSessionFactory sessionFactory;
static{
try {
//使用MyBatis提供的Resources类加载mybatis的配置文件
Reader reader = Resources.getResourceAsReader("mybatis.cfg.xml");//这里即为实际文件的地址
//构建sqlSession的工厂
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
e.printStackTrace();
}
}
//创建能执行映射文件中sql的sqlSession
public static SqlSession getSession(){
return sessionFactory.openSession();
}
}
7、测试。。。。。。
Dao dao=sql.getMapper(Dao.class); List<user>list=dao.selectAllUser();