hibernate:简单了解hibernate

hibernate属于持久化技术(jdbc、io),用来操纵数据库的,原意为让java对象在数据库中冬眠,即以Java对象的形式将数据存储到磁盘。

让我们来看看jdbc的操作数据方式:

添加,loan(id,.......)140个字段
--------------------------------------
Class.forName("注册驱动");//驱动
Connection conn=DriverManager.getConnection(url,username,password);
String sql="insert into loan(creatTime,......140)values(?,?,?.......140);"
PreparedStatement ppst=conn.prepareStatement(sql);
//绑参
ppst.setString(1,new Date());
.......
//140次手动绑参
ppst.executeUpdate();
conn.commit();//提交
//释放资源
ppst.close();
conn.close();

删除,loan(id,.......)140个字段
--------------------------------------
Class.forName("注册驱动");//驱动
Connection conn=DriverManager.getConnection(url,username,password);
String sql="delete from loan where id=?"
PreparedStatement ppst=conn.prepareStatement(sql);
//绑参
ppst.setInt(1,1);
ppst.executeUpdate();
conn.commit();//提交
//释放资源
ppst.close();
conn.close();

修改,loan(id,.......)140个字段
--------------------------------------
Class.forName("注册驱动");//驱动
Connection conn=DriverManager.getConnection(url,username,password);
String sql="update loan set creatTime=?,......140  where id=?"
PreparedStatement ppst=conn.prepareStatement(sql);
//绑参
ppst.setString(1,new Date());
.....
//140次手动绑参
ppst.executeUpdate();
conn.commit();//提交
//释放资源
ppst.close();
conn.close();

查询,loan(id,.......)140个字段
--------------------------------------
List<Loan> listLoan=new ArrayList<Loan>();
Customer c=null;
Class.forName("注册驱动");//驱动
Connection conn=DriverManager.getConnection(url,username,password);
String sql="select * from loan ";
PreparedStatement ppst=conn.prepareStatement(sql);
//绑参
ResultSet rs=ppst.executeQuery();
while(rs.next()){
c=new Loan();
c.setId(rs.getgetInt("id"));
//......140个参数都要这么赋值
list.add(c);
}

conn.commit();//提交
//释放资源
ppst.close();
conn.close();
return list;

综上可知,确切说,使用jdbc除了删除不用绑定很多参数,增,改,查,都要绑定很多参数,是面向字符串编程,会出现三种因为人为操作的弊端/错误:
1 占位符不匹配
2 字段找不到
3 数据类型不匹配

但是 hibernate 和jdbc不同的是,不用我们自己关注访问细节(eg:建立结果集,封装集合,绑定大量参数,提交,释放资源,关闭连接。) ,hibernate是面试对象编程的(oop:oriented object program),通过hql语言来描述操作数据意向,hql语言为面向对象的语言。

猜你喜欢

转载自blog.csdn.net/qq_17033579/article/details/81734749