我是靠谱客的博主 单身唇膏,最近开发中收集的这篇文章主要介绍拥有了JDBC,为什么还要有Hibernate和Mybatis等持久层框架?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

JDBC,我想对于学Java的人简直太熟悉了,如果谁说不知道,那么狠遗憾的告诉你,你不是Java人!

这篇文章的主要目的还是想把大家引入后面我们重点要说的内容,那就是Mybatis和Hibernate两个持久层框架。既然要研究这两个框架,那么就该知道为什么会出现这两个框架。


我记得,我刚步入Java的时候,那时候操作数据库是按照找个步骤写的:

(1)注册驱动;

(2)获取数据库连接;

(3)拼接sql语句,设置sql参数;

(4)执行sql语句;

(5)处理sql返回结果;

(6)关闭执行语句和数据库连接;


就像下面的一个简单示例一样:

private static Connection getConn() {
    String driver = "com.mysql.jdbc.Driver";
    String url = "jdbc:mysql://localhost:3306/samp_db";
    String username = "root";
    String password = "";
    Connection conn = null;
    try {
        Class.forName(driver); //classLoader,加载对应驱动
        conn = (Connection) DriverManager.getConnection(url, username, password);
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return conn;
}

然后获取到连接后再进行相应的sql操作,这里简单了拿插入语句来说吧:

private static int insert(Student student) {
    Connection conn = getConn();
    int i = 0;
    String sql = "insert into students (Name,Sex,Age) values(?,?,?)";
    PreparedStatement pstmt;
    try {
        pstmt = (PreparedStatement) conn.prepareStatement(sql);
        pstmt.setString(1, student.getName());
        pstmt.setString(2, student.getSex());
        pstmt.setString(3, student.getAge());
        i = pstmt.executeUpdate();
        pstmt.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return i;
}

从上面的语句可以看出来,我们每次都要做大量的相同的操作,并且还要对执行sql语句过程中所出现的各种异常和资源释放进行处理,而真正涉及到业务功能的代码其实很少,这明显影响了效率。

每当这时候都会有牛人出来,帮助大伙解决问题。这时候Hibernate和Mybatis(前身ibatis)变横空出世了。它们帮我们把哪些复杂的重复性的工作进行了抽象,从业务处理逻辑中剥离了,使得我们不需要再写这些我们不想写还非要写的代码。


下面简单说说这两个框架。

Mybatis的前身其实是apache下面的一个开源项目ibatis,后来迁移到了Google Code,并且改名为了Mybatis。再之后,又被迁移到了GitHub。

Hibernate是澳大利亚墨尔本的一个年轻程序员开始的,正是和我们一样他也厌倦了这样写数据库操作,所以写了Hibernate的第一个版本,而后其他成员加入进来共同完善了Hibernate,Hibernate也变得原来越流行,我们常说的SSH中的H指的就是它了。


在接下来的日子里,我将分别开设两个专栏分别讲述Mybatis和Hibernate,从简单的使用用例着手,结合源码来分析其内部实现原理,敬请关注。

最后

以上就是单身唇膏为你收集整理的拥有了JDBC,为什么还要有Hibernate和Mybatis等持久层框架?的全部内容,希望文章能够帮你解决拥有了JDBC,为什么还要有Hibernate和Mybatis等持久层框架?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部