MyBatis学习笔记(一)初识MyBatis_接口式编程
MyBatis学习笔记(一)初识MyBatis_接口式编程
文章目录
- MyBatis学习笔记(一)初识MyBatis_接口式编程
- MyBatis与hibernate的区别
- Hibernate
- 优点
- 缺点
- MyBatis
- 优点
- MyBatis的下载及使用
- 接口式编程
- 示例
- 小结
MyBatis与hibernate的区别 Hibernate
优点
- 全自动全映射(ORM)框架
- 旨在消除sql,不懂sql也可以使用
- 全自动生成sql,不能自行优化sql
- 如果想要优化,还需要学习HQL语句
- 全映射,造成资源浪费
- 硬编码,高耦合
优点
- 半自动,轻量级
- SQL与java代码分离,SQL是开放人员控制的
- Mybatis下载地址
- 下载2个文件,一个是Mybatis的核心文件,一个是Mybatis的源代码
- 下载完成之后,将Mybatis的核心文件解压,用的时候只需要把 核心jar包导入到项目即可
- 需要查看Mybatis的源代码时,导入下载的压缩包即可,无需解压
- MAVEN 方式导入
org.mybatis
mybatis
3.4.6
接口式编程
- 接口式编程和之前的方法一样,区别在于把接口与配置文件进行动态绑定
- 接口与配置文件进行动态绑定
- namespace: 空间名称: 指定为接口的全类名
- id:唯一标识: 指定为接口的方法名
- EmployeeMapper.java
public interface EmployeeMapper { // 根据id查询对象 Employee getEmpById(Integer id); }
- 创建了一个接口
- EmployeeMapper.xml
id="getEmpById" resultType="com.fu.bean.Employee"> select id,last_name lastName,gender,email from tbl_employee where id = #{id}
- 测试类
- 关于 mybatis-config.xml 的创建与配置,请参见MyBatis学习笔记(二)全局配置文件 mybatis-config.xml详解
public SqlSessionFactory getSqlSessionFactory(){ String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } //. 我们需要手动提交数据 //getSqlSessionFactory().openSession(); ==》手动提交 //getSqlSessionFactory().openSession(true); ==》自动提交 @Test public void demo2() throws IOException { SqlSession session = getSqlSessionFactory().openSession(); try { // 获取接口的实现类对象 // 只要是动态编程,MyBatis会自动为接口创建一个代理对象,由代理对象执行增删改查 EmployeeMapper mapper = session.getMapper(EmployeeMapper.class); Employee employee = mapper.getEmpById(1); System.out.println(mapper.getClass()); System.out.println(employee); session.commit(); } finally { session.close(); } }
- 【MyBatis学习笔记(一)初识MyBatis_接口式编程】接口式编程
原生:DAO===》 DaoImpl MyBatis:Mapper ===》 xxMapper.xml
- SqlSession 代表和数据库的一次会话:用完必须关闭
- SqlSession 和 Connection 一样,都是非线程安全的,所以每次使用的时候,都应该去获取一个新的对象,不能把SqlSession放到成员变量里
- mapper接口没有实现类,但是MyBatis会为接口生成一个代理对象。
- 前提是 将接口和xml进行绑定
- 两个重要的配置文件:
- mybatis 的全局配置文件:包含数据库连接池信息,事务管理器等。。。系统运行环境信息
- sql映射文件:保存了每一条sql语句的映射信息
推荐阅读
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- mybatisplus如何在xml的连表查询中使用queryWrapper
- mybatisplus|mybatisplus where QueryWrapper加括号嵌套查询方式
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- Android中的AES加密-下