mybatis
MyBatis框架的作用
MyBatis框架在三层架构中处于Dao层(数据访问层),用于访问数据库(DB).其作用类似于JDBC.
MyBatis框架的运行原理
API : application programming Interface 应用程序接口
ORM : Object Ralationship Mapping 对象关系映射
MyBatis是一种ORM框架.是一种半自动ORM。 MyBatis底层封装了JDBC(JDBC是一种协议)
连接数据库的4要素 :
驱动、URL、username、password(该4要素存放在MyBatis的主配置文件MyBatis.xml中)
Mapper.xml:映射文件,里面存放SQL语句。
创建maven项目
pom.xml —>dependencies建立依赖,会自动从仓库下载jar包
1.junit单元测试
2.mysql驱动
3.mybatis的jar包
4.整合log4j
maven项目
1.文件路径:src/main/resources(xml文件)
1)mybatis-config.xml配置文件 ---->xml文件
<!-- 1.配置开发环境-->(configuration)
指定一个数据库
<environments default="dev"> --mybatis默认要使用的数据
<!-- 2.在数据库中配置-->
<!-- 1.1配置事务管理方式
语法: <transactionManager type="JDBC"></transactionManager>
JDBC:将事务交给JDBC管理(mybatis会自动开启事务,但需要手动提交)
MANAGED: 自动手动管理事务
<!-- 1.2配置连接池信息,type的取值:
语法: <dataSource type="POOLED">
POOLED:使用连接池(可以减少连接创建次数,提高执行效率)
包含: 1)注册信息
2)连接的数据库信息
3)用户名
4)密码
语法:
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///yonghedb?characterEncoding=utf-8&
severTimezone=Asia/Shanghai"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
2)XxxMapper(映射器) ---->xml文件
存放对数据库[单张表]的操作指令
一张表是一个mapper
多张表多个mapper怎么区分
### namespace值应该保证唯一 XxxMapper
### id属性:要求当前这个文件中的id值必须是独一无二的(不能重复)
### resultType属性:指定查询的结果要存放在哪个类型的对象中
格式:
<mapper namespace="EmpMapper">
<select id="findAll" resultType="cn.tedu.pojo.Emp">
不同Mapper文件的namespace值应该保证唯一 在程序中通过[ namespace + id ]定位到要执行哪一条SQL语句
2.文件路径: src/main/java (java文件)
java文件下的操作步骤
//1.读取mybatis核心配置文件中的配置信息(mybatis-config.xml)
InputStream in = Resources.getResourceAsStream(“mybatis-config.xml”);
//2.基于上面读取的配置信息获取SqlSessionFactory对象(工厂)
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
//3.通过工厂对象打开与数据库的连接(即通过工厂对象获取SqlSession对象)
****openSession(true) 参数为true--->提交数据***
配置事务管理方式:JDBC,没有提交方式,需要手动提交
session = factory.openSession(true);