首先,介绍一下haibernate。hibernate本来的意思是Let Java objects hibernate in the relational database(让java对象在关系书库中冬眠),也就是实现java对在关系数据库中的持久化管理。
Hibernate 是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据库之间的映射的ORM中间件。Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java开发人员可以随心所欲的使用对象编程思维来操纵数据库。简单的说就是:
1.封装了通过JDBC访问数据库操作。
2.向上层应用提供访问面向对象数据访问的API。
下面介绍一下hibernate类的常用操作。
- /*
- *具体操作hibernate的类
- *增加,删除,修改,按ID查询,模糊查询,查询全部
- **/
- public class PersonOperate {
- //在hibernate中所有操作都是由Session完成
- public Session session = null;
- //在构造方法中实例化Session对象
- public PersonOperate(){
- //找出hibernate的配置
- Configuration config = new Configuration().configure();
- //从配置中取出SessionFactory
- SessionFactory sf = config.buildSessionFactory();
- //从SessionFactory中取出Session
- this.session = sf.openSession();
- }
- //操作Hibernate类的所有操作都是通过Session完成的
- //增加数据库中数据
- public void insert(Person person){
- //开始事务
- Transaction tran = session.beginTransaction();
- //执行语句
- session.save(person);
- //提交事务
- tran.commit();
- session.close();
- }
- //操作Hibernate类更改数据库中的数据
- public void update(Person person){
- //开始事务
- Transaction tran = session.beginTransaction();
- //执行语句
- session.update(person);
- //提交事务
- tran.commit();
- }
- /*操作Hibernate类:按ID查询
- *我们插入,修改都是对对象进行操作
- *那么我们查询的时候也应该是返回一个对象
- **/
- public Person queryById(String id){
- System.out.println(id);
- Person person = null;
- //hibernate查询语句
- String hql = "FROM Person as p WHERE p.id = ?";
- Query q = session.createQuery(hql);
- q.setString(0, id);
- List list = q.list();
- Iterator iteator = list.iterator();
- if(iteator.hasNext()){
- person = (Person)iteator.next();
- }
- return person;
- }
- /*操作Hibernate类:删除数据库中数据
- *hiberante2,hibernate3中通用的删除方法
- *缺点:删除数据之前要先查询一次数据,找出删除的数据对象
- *性能低下
- **/
- public void delete(Person person){
- //开始事务
- Transaction tran = session.beginTransaction();
- //执行语句
- session.delete(person);
- //提交事务
- tran.commit();
- }
- //hibernate3的用法
- public void delete(String id){
- //开始事务
- Transaction tran = session.beginTransaction();
- String hql = "DELETE Person WHERE id = ?";
- Query q = session.createQuery(hql);
- q.setString(0, id);
- //执行更新语句
- q.executeUpdate();
- //提交事务
- tran.commit();
- }
- //操作Hibernate类:查询全部数据
- public List queryAll(){
- List list = null;
- String hql = "FROM Person as p ";
- Query q = session.createQuery(hql);
- list = q.list();
- return list;
- }
- //操作Hibernate类:模糊查询
- public List queryByLike(String colnum,String value){
- List list = null;
- String hql = "FROM Person as p WHERE p."+ colnum +" like ?";
- Query q = session.createQuery(hql);
- q.setString(0, "%"+ value +"%");
- list = q.list();
- return list;
- }
- }