美文网首页
hibernate初探

hibernate初探

作者: Hoklam | 来源:发表于2018-01-04 16:09 被阅读0次

    说实话hibernate配置与使用随便百度一下都很多,但对于新手来说还是存在很多问题,我就是那个在网上复制代码然后运行,随后各种异常出现,配了很久才搞定,所以记录下

    一、为什么我们要使用hibernate

    hibernate用于访问数据库,我们直接通过Java类来操作数据库,是对JDBC的轻量级的对象封装,它是一个独立的对象持久层框架

    二、hibernate 配置

           1、下载hibernate依赖包  下载地址hibernate

           2、添加hibernate jar包

    hibernate jar

                    解压hibernate压缩包选择required包

            3、在SRC下新建hibernate.cfg.xml文件

    hibernate.cfg.xml

              4、SRC下新建实体映射文件

    三、通过实体类操作数据库

                   实体类属性需对应数据库字段

                   1、新建实体类

    Employee实体类 数据库字段

                    2、获取事物

    Configuration cfg=new Configuration(); cfg.configure("hibernate.cfg.xml");//populates the data of the configuration file //creating seession factory object SessionFactory factory=cfg.buildSessionFactory(); //creating session object Session session=factory.openSession(); //creating transaction object Transaction t=session.beginTransaction();

          3、操作数据库

                     1)、添加数据

                     2)、删除数据

    删除

    注:参数二为int类型,如果表中存在多个相同ID会抛出org.hibernate.jdbc.BatchedTooManyRowsAffectedException

     方式二:Employee e1=new Employee();

                     e1.setId(0); 

                      session.delete(e1);

                     3)、更新数据

    方式一:

    Employee e1=new Employee();

    e1.setId(1);

    e1.setFirstName("121");

    session.update(e1);;

    方式二:

    Employee user = (Employee )session.load(User.class,1);      

    user.setName("周日");

    session.update(user);

                   4)、查询数据

    方式一:全部查询查询

    Query query=session.createQuery("from Employee");

    List user=query.list();

    for(int i=0;i<user.size();i++){

        Employee  emp= (Employee)user.get(i);

        System.out.println("id="+e.getId() + "firstName="+e.getFirstName());

    }

    注:session.createQuery("from Employee"); 参数Employee为所对应的实体类而不是数据库表

    方式二:分页查询

    Query query=session.createQuery("from Employee"); //

    query.setFirstResult(10);//开始行( 0开始)

    query.setMaxResults(14);//结束行

    List user=query.list();

    for(int i=0;i<user.size();i++){

      Employee  emp= (Employee)user.get(i);  

      System.out.println("id="+e.getId() +  "firstName="+e.getFirstName());

    }

    相关文章

      网友评论

          本文标题:hibernate初探

          本文链接:https://www.haomeiwen.com/subject/nsglnxtx.html