MyBatis 简介
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,是一个基于Java的持久层框架。
持久层: 可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏,在断电或者其他情况下,重新开启系统仍然可以读取到这些数据。 优点: 可以使用巨大的磁盘空间存储相当量的数据,并且很廉价 缺点:慢(相对于内存而言)
为什么使用 MyBatis
在我们传统的 JDBC 中,我们除了需要自己提供 SQL 外,还必须操作 Connection、Statment、ResultSet,不仅如此,为了访问不同的表,不同字段的数据,我们需要些很多雷同模板化的代码,闲的繁琐又枯燥。
而我们在使用了 MyBatis 之后,只需要提供 SQL 语句就好了,其余的诸如:建立连接、操作 Statment、ResultSet,处理 JDBC 相关异常等等都可以交给 MyBatis 去处理,我们的关注点于是可以就此集中在 SQL 语句上,关注在增删改查这些操作层面上。
并且 MyBatis 支持使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
mybatis的实现 1.新建maven项目 2.porm文件中导入依赖3.mybatis-config.xml文件 在mybatis-config.xml中配置数据库连接org.mybatis mybatis 3.5.4 junit junit 4.12 mysql mysql-connector-java 8.0.23 org.projectlombok lombok 1.18.16
在mybatis-config.xml中配置mapper的映射文件
***Mapper.xml文件
4.新增跟数据库对应的pojo实体类select * from user
public class User {
private Integer id;
private String name;
private Integer age;
private String gender;
5.新增测试类
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MybatisTest {
InputStream inputStream;
SqlSession sqlSession;
Mapper mapper;//接口对象
@Before
public void init() throws IOException {
//1)驱动mybatis核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
//2)创建SqlSessionFactoryBuilder构造者设计模式
//3) 通过加载资源文件输入流,获取SqlSessionFactory接口工厂
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//4)创建执行对象
sqlSession = sqlSessionFactory.openSession();//手动提交
//5)获取接口代理对象
mapper = sqlSession.getMapper(***Mapper.class);
}
//测试查询全部
@Test
public void findAll() {
List list = mapper.selectAll();
if (list != null) {
for (User user : list) {
System.out.println(user.getId() + "t" + user.getName() + "tt" + user.getAge() + "tt" + user.getGender());
}
}
}
@After
public void after() throws Exception {
//增删改,提交事务
sqlSession.commit();
//执行对象释放
sqlSession.close();
inputStream.close();
}
}
mybatis三种实现方式
1.xml方式 2.注解方式 3.xml+接口方式mybatis的参数传递:
1.单个参数:占位符#{任意字母}
2.对象传参:占位符#{与对象的属性名一致}
3.零散传参:使用map集合Map 其中Map的key(String)与占位符(#{任意字符})中的字符一致。
标准日志输出:



