mybatis简介--入门--原生Dao--动态Dao开发---.sqlconfig.xml配置介绍

学习过的持久层框架:DBUtils , Hibernate 

Mybatis 就是类似于 Hibernate 的 orm 持久层框架。

 

为什么学Mybatis?

1、目前最主流的持久层框架为 Hibernate 与 mybatis,而且国内目前情况使用 Mybatis 的公司比 Hibernate 要多。

2、Hibernate 学习门槛不低,要精通门槛更高。门槛高在怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好 Hibernate 缓存与数据加载策略方面需要你的经验和能力都很强才行。国内目前前的情况精通 Hibernate 技术大牛非常少。

3、sql优化方面,Hibernate 的查询会将表中的所有字段查询出来,这一点会有性能消耗。当然了,Hibernate 也可以自己写SQL来指定需要查询的字段,但这样就破坏了Hibernate开发的简洁性。说得更深入一些,如果有个查询要关联多张表,比如5张表,10张表时,而且,我们要取的字段只是其中几张表的部分字段。这时用 Hibernate 时就会显得非常力不从心。就算用 hibernate 的 sqlquery,后续的维护工作也会让人发狂。

二、JDBC编程回顾与存在的问题分析

2.1 开发步骤:

  1. 导入数据脚本,在课前资料中有
  2. 创建工程,导入mysql jar包
  3. 编码

2.2 Jdbc访问数据库的过程:

  1. //加载数据库驱动
  2. //创建数据库连接
  3. //创建statement
  4. //设置sql语句
  5. //设置查询参数
  6. //执行查询,得到ResultSet
  7. //解析结果集ResultSet
  8. //释放资源

JDBC 程序

public static void main(String[] args) {
    Connection connection = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;

    try {
        // 加载数据库驱动
        Class.forName("com.mysql.jdbc.Driver");

        // 通过驱动管理类获取数据库链接
        connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "root");
        // 定义sql语句 ?表示占位符
        String sql = "select * from user where username = ?";
        // 获取预处理statement
        preparedStatement = connection.prepareStatement(sql);
        // 设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值
        preparedStatement.setString(1, "王五");
        // 向数据库发出sql执行查询,查询出结果集
        resultSet = preparedStatement.executeQuery();
        // 遍历查询结果集
        while (resultSet.next()) {
            System.out.println(resultSet.getString("id") + "  " + resultSet.getString("username"));
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        // 释放资源
        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();
            }
        }
    }
}

2.3 Jdbc存在的问题:

  1. 频繁创建和打开、关闭数据连接,太消耗资源    --    连接池
  2. Sql 语句存在硬编码,不利于维护
  3. Sql 参数设置硬编码,不利于维护
  4. 结果集获取与遍历复杂,存在硬编码,不利于维护,期望能够查询后返回一个java对象 

三、Mybatis介绍

  MyBatis 本是 apache 的一个开源项目 iBatis, 2010年这个项目由 apache software foundation 迁移到了 google code,并且改名为 Mybatis 。2013年11月迁移到 Github。

  Mybatis 是面向 sql 的持久层框架,他封装了 jdbc 访问数据库的过程,我们开发,只需专注于 sql 语句本身的拼装,其它复杂的过程全部可以交给mybatis 去完成。 

四、Mybaits入门

 4.1    需求列表

  1. 根据用户ID查询用户信息
  2. 根据用户名查找用户列表
  3. 添加用户
  4. 修改用户
  5. 删除用户

4.2    工程搭建

  1. 导入依赖jar包,在课前资源中有
    1. mybatis的jar包下载地址:https://github.com/mybatis/mybatis-3/releases

      mybatis和Spring整合jar包下载地址:https://github.com/mybatis/spring/releases

      不过今天不知道出了什么问题在上面的网址中下载不了jar包,但是我之前有在上面的网址下载过mybatis的jar包

      或者本人有上传资源mybatis和Spring整合jar包到CSDN,下载地址:https://download.csdn.net/download/brave_monkey/10295594
      ---------------------
      作者:brave_monkey
      来源:CSDN
      原文:https://blog.csdn.net/brave_monkey/article/details/79612174
      版权声明:本文为博主原创文章,转载请附上博文链接!

  2. 配置SqlMapConfig.xml,可参考课前资料
  3. 配置log4j.properties,可参考课前资料
  4. 在课前资料复制pojo到工程目录下
  5. 配置sql查询的映射文件,可参考课前资料
  6. 加载映射文件

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

posted @ 2019-02-02 11:14  昱晟  阅读(268)  评论(0编辑  收藏  举报