概述
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等持久层框架?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复