zoukankan      html  css  js  c++  java
  • hibernate HelloWorld

    Hibernate是典型的ORM框架,对JDBC进行轻量级的封装,能够使程序员更加便捷的操作对象

    可以去hibernate官网去下载,版本之间差异不大,我是用的是Hibernate 4.3

    搭建Hibernate环境步骤:

    一、 使用xml文件映射

      1.下载Hibernate包

      2.解压后,找到 lib/required 文件夹下的jar包就是一个hibernate程序所必需的

      3.新建java工程,把jar包添加到工程中去

      4.在src目录下新建*.cfg.xml文件,这是hibernate默认的配置文件,该配置文件中指定数据库驱动、用户名、密码等,还有hibernate的自身配置,是否显示SQL

      

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                             "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
     <session-factory>
      <!-- 配置连接数据库的基本信息 -->
      <property name="connection.username">root</property>
      <property name="connection.password">1234</property>
      <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
      <property name="connection.url">jdbc:mysql://127.0.0.1:3306/hibernate</property>
      <!-- 配置hibernate基本信息 配置hibernate方言 
     当数据库版本为5.0以上时,方言设为MySQLInnoDBDialect便不能自动创建表,需要修改为MySQL5InnoDBDialect -->
      <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
      <!-- 执行操作时,是否在控制台打印信息 -->
      <property name="show_sql">true</property>
      <!-- 格式化sql -->
      <property name="format_sql">true</property>
      <!-- 指定自动生成数据表的策略 -->
      <property name="hbm2ddl.auto">update</property>
      
      <!-- 指定关联的hbm.xml文件 -->
      <mapping class="com.hibernate.test.News" resource="com/hibernate/test/News.hbm.xml"/>
     </session-factory>
    </hibernate-configuration>

      5.新建需要持久化的类,新建这个类所需要的条件

          a.必须提供无参的构造器,方便底层反射调用
          b.提供一个标志属性,通常作为数据表的主键,否则一些功能将不起作用 如:session.save() or update()
          c.每个字段提供getter() setter()
        d.使用非final类,运行时生成代理,是hibernate的一个重要功能,如果持久化类没有实现任何接口,hibernate将使用CGLIB生成代理,如果是final类,则无法生成代理
                e.重写equals()和hashcode()

      6.为持久化类配置*.hbm.xml文件,在去.cfg.xml文件中映射该文件,到此hibernate的环境搭建成功

      7.新建测试方法

      

    public void test1() {
            // 1.创建sessionfactory对象
            SessionFactory sessionfactory = null;
            // 1)创建configration对象:配置hibernate基本配置信息,和对应关系信息
            Configuration con = new Configuration().configure();
            //con.addClass(News.class); 使用5.0以上版本时,这句必须要写
    
            // 2)创建一个ServiceRegisty对象:代表service自己,hibernate的任何配置都需要在该对象中注册,才会有效
            StandardServiceRegistry serviceregisty = new StandardServiceRegistryBuilder()
                    .applySettings(con.getProperties()).build();
    
            // 3)实例化sessionfactory
            sessionfactory = con.buildSessionFactory(serviceregisty);
            // 2.创建session对象
            Session session = sessionfactory.openSession();
            // 3.开启事物
            Transaction transaction = session.beginTransaction();
            // 4.执行保存操作
            News n = new News("江南明月", "闾丘薇露", new Date(new java.util.Date().getTime()));
            session.save(n);
    //        News n=(News) session.get(News.class, 1);
    //        System.out.println(n);
            // 5.提交事务
            transaction.commit();
            // 6.关闭session对象
            session.close();
            // 7.关闭sessionfactory对象
            sessionfactory.close();
        }

    二、过程中的小细节

      1.hibernate 4.3 和 5.0及以上版本创建Serviceregisty方法不一致,5.0以上版本不再使用之前的方式

      2. 5.0版本在映射*.hbm.xml文件之后还是会报Unknown Mapping的错误,必须使用configuration.addClass手动加载

      3.学习过程中多个项目有共同的jar包时,可以新建User liberary,每次使用时添加就可以,就不会有很多份了,新建方法:preferences ->java ->build path ->User Libraries

    ————我愿乘风破浪,踏遍黄沙海洋
  • 相关阅读:
    source命令
    [电脑配置]屏幕扩展过,找不到界面
    [SAS]方便查询Tips
    [Excel]方便查询Tips
    [SAS]运用函数等的一些问题
    [SAS]错误整理
    [SAS]易错例子之数值型转字符型
    [R]Precedence
    [sas]Missing Value
    [SAS]
  • 原文地址:https://www.cnblogs.com/wb1993/p/5644367.html
Copyright © 2011-2022 走看看