hibernate的CRUD

一.CRUD操作简述

既然hibernate这个框架是对数据库的访问,也就应该有对数据库的CRUD操作,即对数据的增加,删除,修改,查找。

二.回想下java的jdbc操作流程

我们以前用过jdbc来访问数据库,简单回想下以前的过程。
1. 加载驱动

2.建立连接

3.定义sql,发生sql语句

4.执行sql语句获得执行结果

5.处理返回结果

6.关闭资源

简单来说,也差不多是这几步骤,那hibernate框架是哪些流程呢?

三.hibernate的操作流程

  1. 首先需要建立数据库,这里我们要先建立数据库,在配置hibernate.cfg.xml需要在里面指出用哪个数据库。
 create table hibernate(
             //省略具体代码 
          );

2.建立数据源连接,我们需要hibernate.cfg.xml把使用哪个数据库,mysql还是oracle,还有用户名和密码等信息写在这里面。

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>

3.建立一个实体类Teacher,写一些数据,相当于你要创建个表就参考这里面的属性。

4.再创建一个获取SessionFactory的单例类,也就是把数据存储到数据库里去。

5.再有一个类来实现hibernate的CURD操作。

四.hibernate的CRUD操作

一.插入操作

public void test(){  
    Session sess = HibernateUtils.getSession(); //打开一个新的session  
    sess.beginTransaction();        
    User u = new User();   
    u.setName("张三");  
    sess.save(u);  
   session.getTransaction().commit(); 
}  

二.删除操作

下面是通过删除该id来删除数据

session = HibernateUtil.getSessionFactory().getCurrentSession();
  session.beginTransaction();
  user u = new user();
  u.setId(1); 
  session.delete(u);
  session.getTransaction().commit();

三.更新操作

session = HibernateUtil.getSessionFactory().getCurrentSession();
  session.beginTransaction();
  user u = (user)session.get(user.class,1);//获得id=1的数据
  if(u != null){
   u.setName("李四");
   u.setAge(18);
   session.update(u);
   session.getTransaction().commit();

四.查询操作
hibernate查询方式有6种:HQL查询,对象化查询Criteria方法,动态查询DetachedCriteria,例子查询,sql查询,命名查询。
下面我就举HQL查询例子:
HQL是hibernate自己的一套查询语言,具有跨数据库的优点。

session = HibernateUtil.getSessionFactory().getCurrentSession();
  session.beginTransaction();
  Query query = session.createQuery("from user where age=23"); //此处user是类名,而不是数据库的表名,select * 不写
  List<user> users = query.list();
  for (user user : users) {
   System.out.println(user.getId()+" "+user.getName()+" "+user.getAge());
}

猜你喜欢

转载自blog.csdn.net/qq_38682952/article/details/78608515