mybatis – MyBatis 3 | 入门https://mybatis.org/mybatis-3/zh/getting-started.html
2、百度百科(1)历史:
MyBatis 最开始是apache的一个开源项目iBatis,iBatis是由Clinton Begin(克林顿·贝恩)在2001年发起的开放源代码项目,iBATIS一词来源于“internet”和“abatis”的组合。
2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis。
2013年11月迁移到Github。
(2)基本信息:
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的pojo(普通的 Java对象)映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。 (用到设计模式:工厂模式,代理)
优点:
(1)解除sql与程序代码的耦合,让sql语句在xml里面配置文件,从而使得sql与程序结构。但是它有区别与另外一个框架的整合ssh中的h(hibernate),mybatis是一种半自动的持久层的框架,它支持自定义sql语句。
(2)简化JDBC的代码书写(减少了50%以上的代码量)
(3)用标签代替编写逻辑代码
3、入门案例体验mybatis点击官网后,我们点击入门,就会看到以下的界面。
第一步:需要导入相应的依赖
导入这些jar包的原因:既然要用mybatis肯定要导入mybatis的核心jar,但是由于mybatis是跟数据库打交道的,所以需要mysql-connector的jar,由于采用的maven构建项目,需要junit测试jar,由于mybatis需要配合上日志输出,故导入log4j的jar
mysql
mysql-connector-java
5.1.47
org.mybatis
mybatis
3.5.2
junit
junit
4.12
test
log4j
log4j
1.2.17
第二步:在resource里面创建mybatis的核心xml文件。可在官网直接复制,进行轻微改动,并创建数据库的表(建表语句如下)
CREATE TABLE `student` ( `sid` int NOT NULL AUTO_INCREMENT, `sno` int DEFAULT NULL, `sname` varchar(10) DEFAULT NULL, `ssex` char(1) DEFAULT NULL, `sage` smallint DEFAULT NULL, `saddress` varchar(20) DEFAULT NULL, PRIMARY KEY (`sid`), ConSTRAINT `student_chk_1` CHECK ((`Ssex` in (_utf8mb4'男',_utf8mb4'女'))), ConSTRAINT `student_chk_2` CHECK ((`Sage` > 12)) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb3; insert into `student`(`sid`,`sno`,`sname`,`ssex`,`sage`,`saddress`) values (1,2015010312,'张明','男',22,'四川省成都市成华区'),(2,2015010313,'秦羽','女',19,'陕西省西安是未央区');
注意:xml配置文件的名字需要采用
mybatis-config.xml
在官网上复制一下代码
进行如下改造
第三步:写mybatis的工具
package com.mybatis.utils;
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 java.io.InputStream;
public class MybatisUtil {
static SqlSessionFactory factory;
static {
//首先需要读取Mybatis核心配置文件的内容
String resource="mybatis-config.xml";
try {
InputStream is = Resources.getResourceAsStream(resource);
factory= new SqlSessionFactoryBuilder().build(is);
} catch (Exception e) {
e.printStackTrace();
}
}
public static SqlSession getSqlSession(){
return factory.openSession();
}
}
第四步:创建实体类(如果要采用注解写实体类,需要导入lombok)
package com.mybatis.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data // get set eq toString
@AllArgsConstructor // 有参构造
@NoArgsConstructor // 无参构造
public class Student {
private int sid;
private int sno;
private String sname;
private String ssex;
private int sage;
private String saddress;
}
第五步:写dao层的接口以及实现的xml
maven的结构如下:(在resource里面创建文件路径“commybatisdao”)xml与dao层接口的名字要一致
dao层接口代码
package com.mybatis.dao;
import com.mybatis.pojo.Student;
import java.util.List;
public interface StudentMapper {
//查询所有数据
public List getStudentList();
}
xml配置文件
namespace:写dao层接口的全路径
id:写到层的方法名
resultType:写放回值的类型
select * from student
注意:这个xml配置文件写完后,需要在核心配置文件中的xml的
测试结果如下(证明用Mybatis查询数据库成功):



