欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

hibernate:简单了解hibernate

程序员文章站 2022-05-24 12:29:13
...

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语言为面向对象的语言。