mybatis--介绍
2017-02-07 13:49
141 查看
mybatis
1、mybatis是什么
MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,
实质上Mybatis对ibatis进行一些改进。
MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL
本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,
并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
mybatis就是一个封装来jdbc的持久层框架,它和hibernate都属于ORM框架,但是具体的说,hibernate是一个完全的orm框架,而mybatis是一个不完全的orm框架。
Mybatis让程序员只关注sql本身,而不需要去关注如连接的创建、statement的创建等操作。
Mybatis会将输入参数、输出结果进行映射。
2、原生态jdbc程序中存在的问题
(1)原生态jdbc程序代码public static void main(String[] args) { Connection connection = null; PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { //1、加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); //2、通过驱动管理类获取数据库链接 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "root"); //3、定义sql语句 ?表示占位符 String sql = "select * from user where username = ?"; //4、获取预处理statement preparedStatement = connection.prepareStatement(sql); //5、设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值 preparedStatement.setString(1, "王五"); //6、向数据库发出sql执行查询,查询出结果集 resultSet = preparedStatement.executeQuery(); //7、遍历查询结果集 while(resultSet.next()){ System.out.println(resultSet.getString("id")+" "+resultSet.getString("username")); } } catch (Exception e) { e.printStackTrace(); }finally{ //8、释放资源 if(resultSet!=null){ try { resultSet.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(preparedStatement!=null){ try { preparedStatement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(connection!=null){ try { connection.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
Jdbc问题总结
1、 在创建连接时,存在硬编码配置文件(全局配置文件)
2、 在执行statement时存在硬编码
配置文件(映射文件)
3、 频繁的开启和关闭数据库连接,会造成数据库性能下降。
数据库连接池(全局配置文件)
3、mybatis框架原理
分析结论
1、 mybatis配置文件,包括Mybatis全局配置文件和Mybatis映射文件,其中全局配置文件配置了数据源、事务等信息;映射文件配置了SQL执行相关的信息。2、 mybatis通过读取配置文件信息(全局配置文件和映射文件),构造出SqlSessionFactory,即会话工厂。
3、 通过SqlSessionFactory,可以创建SqlSession即会话。Mybatis是通过SqlSession来操作数据库的。
4、 SqlSession本身不能直接操作数据库,它是通过底层的Executor执行器接口来操作数据库的。
Executor接口有两个实现类,一个是普通执行器,一个是缓存执行器(默认)。
5、 Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中。该对象包括:SQL语句、输入参数映射信息、输出结果集映射信息。
其中输入参数和输出结果的映射类型包括java的简单类型、HashMap集合对象、POJO对象类型。
相关文章推荐
- MyBatis框架的学习(一)——MyBatis介绍
- MyBatis的介绍
- 10001---MyBatis介绍
- MyBatis 源码分析——介绍
- MyBatis查询结果resultType返回值类型详细介绍
- mybatis介绍
- MyBatis注解Annotation介绍及Demo
- 【MyBatis学习16】自定义类型处理器typeHandlers介绍
- Mybatis三剑客(mybatis-generator、mybatis-plugin、mybatis-pagehelper)介绍、配置及破解
- Mybatis插件介绍
- mybatis-generator介绍
- 详细介绍MyBatis 3.4.0版本的功能
- Mybatis入门介绍
- Mybatis的介绍
- Mybatis三剑客(mybatis-generator、mybatis-plugin、mybatis-pagehelper)介绍、配置及破解
- Mybatis一级缓存和二级缓存介绍
- Mybatis 调用oracle存储过程的方法介绍
- 基于Mybatis3.0.6的基本操作介绍
- MyBatis 源码分析——介绍
- j2ee分布式架构 dubbo + springmvc + mybatis + ehcache + redis 技术介绍