MyBatis框架
第1章 MyBatis简介
1.1 MyBatis历史
1)MyBatis是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation 迁移到了Google Code,随着开发团队转投Google Code旗下, iBatis3.x 正式更名为MyBatis ,代码于2013年11月迁移到Github。
2)MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发 者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection创 建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
3) Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、 CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终 执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。
4)iBatis一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。 iBatis 提供的持久层框架包括SQL Maps和Data Access Objects(DAO)。
1.2 MyBatis简介
1) MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。
2) MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
3) MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
4) 半自动ORM(Object Relation Mapping对象关系映射)框架。
1.3 为什么要使用MyBatis – 现有持久化技术的对比
1)JDBC开发步骤
①加载数据库驱动
②创建并获取数据库链接
③创建jdbc statement对象
④设置sql语句
⑤设置sql语句中的参数(使用preparedStatement)
⑥通过statement执行sql并获取结果
⑦对sql执行结果进行解析处理
⑧释放资源(resultSet、preparedstatement、connection)
示例:
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 = ?";// 获取预处理statementpreparedStatement = 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 blocke.printStackTrace();}}if (preparedStatement !&