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 开发步骤:
- 导入数据脚本,在课前资料中有
- 创建工程,导入mysql jar包
- 编码
2.2 Jdbc访问数据库的过程:
- //加载数据库驱动
- //创建数据库连接
- //创建statement
- //设置sql语句
- //设置查询参数
- //执行查询,得到ResultSet
- //解析结果集ResultSet
- //释放资源
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存在的问题:
- 频繁创建和打开、关闭数据连接,太消耗资源 -- 连接池
- Sql 语句存在硬编码,不利于维护
- Sql 参数设置硬编码,不利于维护
- 结果集获取与遍历复杂,存在硬编码,不利于维护,期望能够查询后返回一个java对象
三、Mybatis介绍
MyBatis 本是 apache 的一个开源项目 iBatis, 2010年这个项目由 apache software foundation 迁移到了 google code,并且改名为 Mybatis 。2013年11月迁移到 Github。
Mybatis 是面向 sql 的持久层框架,他封装了 jdbc 访问数据库的过程,我们开发,只需专注于 sql 语句本身的拼装,其它复杂的过程全部可以交给mybatis 去完成。
四、Mybaits入门
4.1 需求列表
- 根据用户ID查询用户信息
- 根据用户名查找用户列表
- 添加用户
- 修改用户
- 删除用户
4.2 工程搭建
- 导入依赖jar包,在课前资源中有
-
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
版权声明:本文为博主原创文章,转载请附上博文链接!
-
- 配置SqlMapConfig.xml,可参考课前资料
- 配置log4j.properties,可参考课前资料
- 在课前资料复制pojo到工程目录下
- 配置sql查询的映射文件,可参考课前资料
- 加载映射文件