• 创建最简单的hibernate项目


    1. 建立JavaWeb项目,导入hibernate相关支持包。

         hibernate核心包:

                 hibernate3.jar

          required文件夹下的包:

          antlr-2.7.6.jar                                             HQL转sql支持包

          commons-collections-3.1.jar                      java collecttion的扩展

          dom4j-1.6.1.jar                                              解析xml的支持包

          javassist-3.12.0.GA.jar                                    字节码处理支持包

          jta-1.1.jar                                                      事物支持相关包

          slf4j-api-1.6.1.jar                                            日志支持相关包

          jpa文件夹下的包:

          hibernate-jpa-2.0-api-1.0.0.Final.jar                   映射支持相关包

          数据库连接驱动包:             

                    mysql-connector-java-5.1.12-bin.jar

    2.编写实体类

              比如说创建一个简单的User实体类,类中有id,name,pwd属性                 

    3.创建 实体类对应的数据库表

    4.编写映射文件:实体类名.hbm.xml(文件名必须符合这个规范)

            在hibernate开发包下拷贝*.hbm.xml文件,进行修改。

     1 <?xml version="1.0"?>
     2 <!-- hibernate 映射文件的约束 -->
     3 <!DOCTYPE hibernate-mapping PUBLIC 
     4     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     5     "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
     6 
     7 <hibernate-mapping 
     8     package="com.ly.entity">
     9     <!-- 实体类与数据库表进行映射 -->
    10     <class name="User"  table="t_user">
    11         <!--
    12              id标签 作用: 主键映射
    13                 将实体类属性id与数据库表字段id进行映射
    14                 name属性:实体类属性名
    15                 column属性:数据库表字段类型名
    16          -->
    17         <id name="id" column="id">
    18             <!-- 指定主键的生成策略:native,可以让主键以自增长的方式生成值 -->
    19             <generator class="native"/>
    20         </id>
    21         
    22         <!-- property标签的作用:非主键映射
    23                 将实体类属性与数据库表字段进行映射
    24                 
    25                 name属性:实体类属性名
    26                 column属性:数据库表字段类型名
    27          -->
    28         <property name="name" column="name"></property>
    29         <property name="pwd" column="pwd"></property>
    30         
    31     </class>
    32 
    33 
    34 </hibernate-mapping>

     5. 编写主配置文件 hibernate.cfg.xml(放在src目录下)

      在hibernate开发包下拷贝hibernate.cfg.xml文件,进行修改

     1 <?xml version="1.0"?>
     2 <!-- hibernate主配置文件的约束 -->
     3 <!DOCTYPE hibernate-configuration PUBLIC
     4         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     5         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
     6 
     7 <hibernate-configuration>
     8     <session-factory>
     9         <!-- 定义数据库的方言,作用:让hibernate生成符合当前数据库语法规定的sql语句 -->
    10         <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
    11         <!-- 配置数据库的连接信息 -->
    12         <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    13         <property name="hibernate.connection.username">root</property>
    14         <property name="hibernate.connection.password">1</property>
    15         <property name="hibernate.connection.url">jdbc:mysql:///hello</property>
    16         <property name="javax.persistence.validation.mode">none</property>  
    17         <!-- 加载映射文件 -->
    18         <mapping resource="com/ly/entity/User.hbm.xml"/>        
    19     </session-factory>
    20 </hibernate-configuration>

    6.编写测试代码,

    步骤:

          1). 读取配置文件

          2). 创建sessionFactory

          3). 获得session

          4). 开启事务

          5). crud

          6). 提交事务(针对异常出现,可以事务回滚)

          7). 关闭资源

     1 @Test
     2     public void test(){
     3         //1.读取配置文件信息,并创建管理配置文件信息的对象 cfg。
     4         Configuration cfg = new Configuration();
     5         cfg.configure();//默认加载src目录下的主配置文件hibernate.cfg.xml。
     6         
     7         //2.利用管理配置文件信息的对象 cfg来创建SessionFactory对象即会话工厂对象。
     8         SessionFactory sf = cfg.buildSessionFactory();
     9         
    10         //3.根据会话工厂对象来创建会话对象session
    11         Session session = sf.openSession();
    12         
    13         //4.开启事物,并得到事物管理对象tx
    14         Transaction tx = session.beginTransaction();
    15         //5. 对数据的crud操作
    16         
    17         User user = new User();
    18         user.setName("张三");
    19         user.setPwd("123");
    20         
    21         session.save(user);
    22         //6.提交事物
    23         tx.commit();
    24         
    25         //7.关闭资源
    26         session.close();
    27         sf.close();
    28         
    29     }
  • 相关阅读:
    appdata文件夹有什么用途?C盘appdata可以删除吗?
    白话讲MyIsam和InnoDB的区别
    MVC&&MVP
    计算机程序的思维逻辑- 函数调用的基本原理
    猫狗收养所
    博客学习分类
    Android之操作SQLite
    总结---20160508
    对栈元素排序
    集合栈
  • 原文地址:https://www.cnblogs.com/CircleLiu/p/5980795.html
Copyright © 2020-2023  润新知