Mybatis相关概念的示例分析

这篇文章给大家分享的是有关Mybatis相关概念的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

创新互联-专业网站定制、快速模板网站建设、高性价比清远网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式清远网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖清远地区。费用合理售后完善,十多年实体公司更值得信赖。

1.1 传统的JDBC实现

public static void main(String[] args) {
  Connection connetion = null;
  PreparedStatement preparedStatement = null;
  ResultSet resultSet = null;
  
  try{
    //加载数据库驱动
    Class.forName("com.MySQL.jdbc.Driver");
    connetion = DriverManager.getConnetion("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","root");
    //定义SQL语句
    String sql = "Select * from user where username = ?";
    //获取预处理statement
    preparedStatement = connection.preparedStatement(sql);
    preparedStatement.setString(1,"zbc");
    resultSet = preparedStatement.executeQuery();
    while (resultSet.next()) {
    int id = resultSet.getInt("id");
    String userName = resultSet.getString("username");
    //封装
    User user = new User();
    user.setId(id);
    user.setUserName(userName)
    }
  }catch (Excetption e) {
    e.printStatckTrace();
  } finally {
    //释放资源
  }
}

1.2 存在的问题与分析

  1. 数据库配置存在硬编码问题

解决方法:通过配置文件解决配置信息硬编码问题

  1. 频繁创建释放数据库连接

解决方法:通过连接池解决频繁创建释放问题

  1. SQl语句、参数、获取结果集参数均存在硬编码问题

解决方法:通过配置文件解决SQL语句和参数问题

  1. 返回结果需要手动封装,较为繁琐

解决方法:通过反射解决集合

1.3 Mybatis简介官网

Mybatis是一款优秀的基于ORM的半自动轻量级持久框架,它支持定制化SQL、存储过程以及高级映射。Mybatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。Mybatis可以使用简单的XML或注解来配置和映射原生类型、接口和Java的POJO(Plain Old Java Objects,普通老式Java对象)为数据库中的记录。

1.4 工作原理

  1. 加载mybatis-config.xml配置文件(数据源,mapper文件以及相关的其他文件),

  2. 通过SqlSessionFactoryBuilder.build()(用建造者模式)来解析mybatis-config.xml文件,解析的数据保存到configuration对象中

  3. SqlSessionFactory通过configuration对象来创建SqlSession,然后通过SqlSession进行CURD和事务提交的操作。(创建sqlSession的过程其实就是根据configuration中的配置来创建对应的类,然后返回创建的sqlSession对象)

1.5 Mybatis优缺点

  1. 优点
    a. 简单易学
       mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。
    b. 灵活
       mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。
    c. 解除sql与程序代码的耦合
       通过提供DAL层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

  2. 缺点
    a. 编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。
    b. SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。
    c. 框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

1.6 Mybatis与Hibernate

Hibernate是基于ORM的全自动框架,对象/关系映射能力强,不需要开发人员自己编写SQL语句(同时也不能对SQL语句进行优化);Mybatis是基于ORM半自动的,可以严格的控制SQL执行性能,灵活度高。

感谢各位的阅读!关于“Mybatis相关概念的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


当前标题:Mybatis相关概念的示例分析
分享路径:http://myzitong.com/article/gsjgoh.html