MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
1、创建测试项目:(也可以是web项目)
2、依赖(添加)相应的jar包:
3、创建数据库和表:
1、创建数据库
create database ku2;
2、使用该数据库
use ku2;
3、在该库中创建数据表
create table student(id int primary key,name varchar(20),age int)
4、向表中插入一条数据
insert into student(id,name,age)values(1,'kongcheng',21)
至此数据库部分操作完毕
4、添加mybatis的配置文件
5、定义表所对应的实体类
package com.xawl.webMb.bean;
public class Student {
private int id;
private int age;
private String name;
public Integer getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//注意要有toString方法
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
6、定义操作student表的映射文件student.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的 4 例如namespace="com.xawl.webMb.dao.student"就是com.xawl.webMb.dao包名)+student(student.xml文件去除后缀) -->
<!-- 在select标签中编写查询的SQL语句, 设置select标签的id属性为getStudent,id属性值必须是唯一的,不能够重复 使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型 resultType="Student"就表示将查询结果封装成一个Student类的对象返回 Student类就是student表所对应的实体类 --> <!-- 根据id查询得到一个student对象 -->
<mapper namespace="com.xawl.webMb.dao.student">
<select id="getStudent" parameterType="int" resultType="com.xawl.webMb.bean.Student">
SELECT * FROM student WHERE id=#{id}
</select>
</mapper>
7、在mybatis配置文件中配置student.xml
8、编写测试类进行测试
package mybatis;
import com.xawl.webMb.bean.Student;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.InputStream;
public class MybatisTest {
public static void main(String[] args) {
//mybatis的配置文件
String resourese = "mybatis.xml";
//使用类加载器加载mybatis的配置文件
InputStream inputStream = MybatisTest.class.getClassLoader().
getResourceAsStream(resourese);
//获取session对象
//通过SqlSessionFactoryBuilder()获取SqlSessionFactory
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//通过SqlSessionFactory获取SqlSession
SqlSession sqlSession = sessionFactory.openSession();
/*
* 映射sql的标识字符串, com.xawl.webMb.dao.student是student.xml文件中mapper标签的namespace属性的值,
* * getStudent是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
* */
String s = "com.xawl.webMb.dao.student.getStudent";
//返回一个Student类型
Student stu = sqlSession.selectOne(s, 1);
//打印到控制台
System.out.println(stu);
}
}
9、输出结果如下: