跟大家分享一个开心的事,跟朋友搞的新公司成立啦,但技术分享不能停止!      

学习了hibernate这个持久层框架之后,在来学习Mybatis简直是无压力,因为Mybatis入门门栏很低,如果学习过了hibernate的话,对于Mybatis的学习很简单了,如果没学习过hibernate直接学习Mybatis也没关系,也很好理解。

      写Mybatis这一章节博客,大致分为这样一种思路 

        mybatis入门  -->  全局配置文件和映射文件详解  --> 高级映射(一对一,一对多,多对多) -->延迟加载机制  -->一级缓存,二级缓存(整合ehcache) --> spring整合mybatis --> 逆向工程

 

      如果你想直接查看mybatis的标准helloworld,那么跳过这章,看第二章。

一、Mybatis的简介

      mybatis封装了jdbc的持久层框架,前身为ibatis,在配置文件中编写sql,是不完全orm映射框架。

      查看百度百科的介绍

            Mybatis(一) mybatis入门

       1、支持普通sql查询

       2、高级映射

       3、存储过程

         4、消除了几乎所有jdbc代码和参数的手工设置以及结果集的检索,等等特点,都会讲解到,今天先认识一下为什么说mybatis消除了所有jdbc代码和参数的设置,通过普通的jdbc有哪些不足,从而认识到mybatis的好处。

 

 

二、分析jdbc的问题

              Mybatis(一) mybatis入门

Mybatis(一) mybatis入门
 1         //1、注册驱动,什么是驱动?能够让java连接数据库,也就是实现jdbc接口规范就是驱动
 2         Class.forName("com.mysql.jdbc.Driver");//硬编码
 3         /*
 4          * 2、通过驱动管理者获取数据库连接
 5          *         DriverManager是驱动实现类的管理者。
 6          *         url:连接数据库的位置,端口号,数据库名
 7          *             jdbc:mysql://localhost:3306/test_01
 8          */
 9         Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_1", "root", "root");//(硬编码)
10         /*
11          * 3、获得sql语句执行者
12          *         statement:执行sql语句对象
13          *             sql语句必须是完整的。
14          *         preparedStatement:预处理(常用)
15          *             sql语句可以不是完整的,可以将参数用?替代,然后在预编译后加入未知参数
16          * 
17          */
18         //定义sql语句,?表示占位符
19         String sql = "select * from user where id = ?";    //硬编码
20         PreparedStatement ps = conn.prepareStatement(sql);
21         ps.setInt(1, 1);                //硬编码
22         //4、获取sql语句执行结果,resultset
23         /*
24          * executeQuery():查询操作
25          * executeUpdate():增删改操作
26          */
27         ResultSet rs= ps.executeQuery();
28         //5、处理结果
29         while(rs.next()){
30             System.out.println(rs.getInt(1));;//index代表第几列,从1开始
31         }
32         
33         //6、关闭连接
34         rs.close();
35         ps.close();
36         conn.close();
View Code

相关文章: