MyBatis最初是Apache的一个开源项目iBatis,2010年6月这个项目由Apache Software Fundation迁移到了Google Code。随着开发团队转投Google Code旗下,iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。
iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBatis提供的持久层框架包括SQLMaps和Data Access Objects(DAO)。
MyBatis特性MyBatis是支持定制化SQL,存储过程以及高级映射的优秀的持久层框架
MyBatis避免了几乎所有JDBC代码和手动设置参数以及获取结果集
MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects, 普通的java对象)映射成数据库中的记录
MyBatis是一个半自动的ORM(Object Relation Mapping:对象关系映射)框架
MyBatis下载MyBatis下载地址:https://github.com/mybatis/mybatis-3
和其他持久层技术对比JDBC
SQL夹杂在Java代码中耦合度高,导致硬编码内伤
维护不易且实际开发需求中SQL有变化,频繁修改的情况多见
代码冗长,开发效率低
Hibernate和JPA
*** 作简便,开发效率高
程序中的长难复杂SQL需要绕过框架
内部自动生产的SQL,不容易做特殊优化
基于全映射的全自动框架,大量字段的POJO进行部分映射时比较困难
反射 *** 作太多,导致数据库性能下降
MyBatis
轻量级,性能出色
SQL和Java编码分开,功能边界清晰,Java代码专注业务,SQL语句专注数据
开发效率稍逊色于Hibernate,但是完全能够接受
搭建MyBatis框架 创建Maven工程,添加依赖
org.mybatis
mybatis
3.5.7
junit
junit
4.12
test
mysql
mysql-connector-java
8.0.27
创建MyBatis的核心配置文件
习惯上命名为mybatis-config.xml,这个文件名仅仅只是建议,并非强制要求,将来整合Spring之后,这个配置文件可以省略,所以可以直接复制,粘贴。
核心配置文件主要用于配置连接数据库的环境以及MyBatis的全局配置信息
核心配置文件存放的位置是src/main/resources目录下
将driver,url等属性的属性值改为自己的配置,映射文件创建之后更改为自己的
数据库表结构
创建相应实体类
get,set方法,toString方法
创建mapper接口MyBatis中的mapper接口相当于以前的dao。但是区别在于,mapper仅仅是接口,我们不需要提供实现类。
创建MyBatis映射文件相关概念:ORM(Object Relationship Mapping)对象关系映射。
对象:Java的实体类对象
关系:关系型数据库
映射:二者之间的对应关系
1、映射文件的命名规则:
表所对应的实体类的类名+Mapper.xml
因此一个映射文件对应一个实体类,对应一张表的 *** 作
MyBatis映射文件用于编写SQL,访问以及 *** 作表中的数据
MyBatis映射文件存放的位置是src/main/resources/mappers目录下
2、MyBatis中可以面向接口 *** 作数据,要保证两个一致
mapper接口的全类名和映射文件的命名空间(namespace)保持一致
mapper接口中方法的方法名和映射文件中编写SQL的标签的id属性保持一致
insert into t_user
values (null, 'admin', '123456', 23, '男', '123456@qq.com')
在核心配置文件中引入映射文件
测试添加功能
@Test
public void testMyBatis() throws IOException {
//加载核心配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//获取SqlSessionFactoryBuilder
SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
//获取SqlSessionFactory
SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
//获取SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//获取mapper接口对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//测试
int result = mapper.insertUser();
System.out.println(result);
}
执行成功,但是此时数据库表中没有添加成功
因为在核心配置文件中配置的是使用JDBC的方式管理事务,需要手动管理
添加成功
优化
加入log4j日志功能添加依赖
log4j
log4j
1.2.17
加入log4j的配置文件
log4j的配置文件名为log4j.xml,存放的位置是src/main/resources目录下
日志的级别
FATAL(致命)>ERROR(错误)>WARN(警告)>INFO(信息)>DEBUG(调试)
从左到右打印的内容越来越详细
执行测试方法
修改,删除功能UserMapper接口
UserMapper.xml
查询功能 MyBatis核心配置文件详解
jdbc.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis
jdbc.username=root
jdbc.password=root
这里的前缀是为了防止在不同的配置文件中有相同的键。
映射文件(两个一致)
在resource下新建包 注意不能用 点”.“
先创建一个mybatis-config.xml
设置
将其中不确定的部分删除(路径等)
设置映射文件模板复制帮助帮助手册模板,去除不确定的部分
设置
封装SqlSessionUtils工具类public class SqlSessionUtils {
public static SqlSession getSqlSession() {
SqlSession sqlSession = null;
try {
//加载核心配置文件
InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
//获取SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);
//获取SqlSession,参数true表示自动提交
sqlSession = sqlSessionFactory.openSession(true);
} catch (IOException e) {
e.printStackTrace();
}
return sqlSession;
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)