mybatis是一个基于java的持久层框架

半自动的ORM框架(Object Relationship Mapping)对象关系映射

持久化

持久化是将程序数据在持久状态和瞬时状态间转换的机制。

通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存)。

持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、XML数据文件中等等。

持久层

用来完成持久化操作的代码块

可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不破坏,在断电或者其他情况下,重启系统依然可以读到这些数据

Mybatis的一些优点

简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足操作数据库的所有需求。

解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

提供映射标签,支持对象与数据库的orm字段关系映射

提供对象关系映射标签,支持对象关系组建维护

提供xml标签,支持编写动态sql。

开发mybatis步骤
配置mybatis  增加mysql驱动 增加mybatis驱动
1. conf.xml   数据源配置文件 配置数据库信息 和需要加载的映射文件 
2. 表 --  类  映射文件 xxMapper.xml  : 增删改查标签 <select> 
3. 测试类: session.selectOne("需要查询SQL的namespace.id",“SQL的参数值”)

数据源配置文件 conf.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> 
	<environments default="development"> 
		<environment id="development"> 
			<transactionManager type="JDBC"/> 
			<dataSource type="POOLED"> 
				<!-- 配置数据库信息 -->
  				<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
				<property name="url" value="jdbc:mysql://localhost:3306/testjdbc?useSSL=false&serverTimezone=UTC"/> 
				<property name="username" value="root"/> 
				<property name="password" value="6666"/> 
			</dataSource> 
		</environment> 
	</environments> 
	<mappers> 
		<!-- 加载映射文件 -->
		<mapper resource="org/student/entity/StudentMapper.xml"/> 
	</mappers> 
</configuration>

StudentMapper.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="org.student.mapper.StudentMapper"> 

	<select id="queryStudentById" resultType="org.student.entity.Student" parameterType = "String" >
		 
		select * from student where id = #{id}
	</select> 

</mapper>

 

Test.java

public class Test {
	public static void main(String[] args) throws IOException {
		
		//加载MyBatis配置文件(为了访问数据库)
		Reader reader = Resources.getResourceAsReader("conf.xml");
		//Mybatis中会话工厂SqlSessionFactory类可以通过加载资源文件,
		//读取数据源配置sonf.xml信息,从而产生一种可以与数据库交互的会话实例SqlSession,
		//会话实例SqlSession根据Mapper.xml文件中配置的sql,对数据库进行操作。
		
		SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
		
		SqlSession session = sessionFactory.openSession();
		
		String statement = "org.student.mapper.StudentMapper.queryStudentById";
		Student student = session.selectOne(statement,"2");
		System.out.println(student);
	}
}