Hibernate配置

            首先 :添加Hibernate工具

          一、 help—>Install NewSoftWare_->粘贴【http://download.jboss.org/jbosstools/neon/stable/updates/】->点击add然后等...->选择Jboss Web and Java EE Development目录下的HibernateTools。

         2创建一个java项目 为其添加jar包。

          对项目进行【右击】----->BuildPath---->addLibraries----->User Library-->


   这里需要3类jar包

    1>  导入Mysql的jdcb驱动

    2>  junit4

    3>hibernate

         1.antlr-2.7.7.jar
       2.dom4j-1.6.1.jar
       3.hibernate-commons-annotations-4.0.1.Final.jar
       4.hibernate-core-4.1.10.Final.jar
       5.hibernate-jpa-2.0-api-1.0.1.Final.jar
       6.javassist-3.15.0-GA.jar
       7.jboss-logging-3.1.0.GA.jar
       8.jboss-transaction-api_1.1_spec-1.0.0.Final.jar
    二、建立hibernate配置文件hibernate.cfg.xml  项目【右击】->new->other->hibernate->


        

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
		"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
		"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
    // 数据库的连接
    <property name="connection.username">root</property>
    <property name="connection.password">root</property>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql:///hibernate?useUnicode=true&characterEncoding=UTF-8</property>
  //使用的方言
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
   //是否将SQL语句显示到后台
    <property name="show_sql">true</property>
     <property name="format_sql">true</property>
     
    <property name="hbm2ddl.auto">update</property>
   <property name="current_session_context_class">thread</property>
    其映射资源为:包名/Student.hbm.xml
       <mapping resource="Student.hbm.xml"/>


    </session-factory>
</hibernate-configuration>
  

   hibernate.cfg.xml详情请看http://www.cnblogs.com/pepcod/archive/2013/02/19/2917376.html


     三、创建持久化类

          需满足

               1.公有类

               2.提供共有的不带参数的默认的构造方法

               3.属性私有

               4.属性setter/getter封装

     四  创建对象-关系映射文件       步骤: src->

             

         选择自己需要的对象。



<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-6-6 9:24:22 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="hibernate.Student" table="STUDENT">
        <id name="sid" type="int">
            <column name="SID" />
            <generator class="assigned" />
        </id>
        <property name="sname" type="java.lang.String">
            <column name="SNAME" />
        </property>
        <property name="gender" type="java.lang.String">
            <column name="GENDER" />
        </property>
        <property name="brithday" type="java.util.Date">
            <column name="BRITHDAY" />
        </property>
        <!--  
        <property name="address" type="java.lang.String">
            <column name="ADDRESS" />
        </property>
        -->
        <property name="picture" type="java.sql.Blob" access="field">
            <column name="PICTURE" />
        </property>
        <component name="address" class="hibernate.Address">
           <property name="postcode" column="POSTCODE"/>
           <property name="phone" column="PHONE"/>
           <property name="address" column="ADDRESS"/>
        </component>
    </class>
</hibernate-mapping>

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-6-6 9:24:22 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping 
   schema="数据库schema的名字" catalog="数据库catalog的名字"
   default-cascade="none" 其默认值为none  默认的级联风格
   default-access="property"  其为默认值,Hibernate用来访问所有属性的策略。
                            可以通过实现PropertyAccessor接口自定义
  default-lazy="true" 其为默认值 指定未明确注明lazy属性的Java属性和集合类,
                       Hibernate会采取什么样的默认加载风格
   auto-import="true" 其为默认值:指定是否在查询语言中使用非全限定的类名(仅限于本映射文件中的类)
   package=""指定一个包前缀,如果在映射文档中没有指定全限定类名,就使用这个作为包名
     >
   <!-- name 定义的持久化类或者接口的java全限定名   table 对应数据库表名   -->
    <class name="hibernate.Student" table="STUDENT">
     <!-- id必须定义   对应数据库表主键字段,一般为每一个实例包含唯一的标识 -->
      <!-- name 标识属性的名字  type 标识Hibernate类型的名字(如果没配置,hibernate将会转化为相应的数据库类型) -->
       <!-- column 主键字段的名字 -->
        <id name="sid" type="int">
            <column name="SID" />
            <!-- 用来为该持久化类的实例生成唯一的标识 -->
            <generator class="assigned" />
        </id>
        
        <!-- 为类定义了一个持久化的,JavaBean风格的属性  type 为java类型 -->
        <property name="sname" type="java.lang.String">
            <column name="SNAME" />
        </property>
        <property name="gender" type="java.lang.String">
            <column name="GENDER" />
        </property>
        <property name="brithday" type="java.util.Date">
            <column name="BRITHDAY" />
        </property>
        <!--  
        <property name="address" type="java.lang.String">
            <column name="ADDRESS" />
        </property>
        -->
        <property name="picture" type="java.sql.Blob" access="field">
            <column name="PICTURE" />
        </property>
        
        
        <!--组件属性      ----- 实体类Student的属性address 是用户自定义的Address类的对象 -->
        <component name="address" class="hibernate.Address">
           <property name="postcode" column="POSTCODE"/>
           <property name="phone" column="PHONE"/>
           <property name="address" column="ADDRESS"/>
        </component>
    </class>
</hibernate-mapping>
详情请看http://blog.csdn.net/csh624366188/article/details/7578939
之后将这个配置文件在hibernate.cfg.xml中进行配置
    <mapping resource="Student.hbm.xml"/>
   五使用junit4进行测试
      使用hibernate API编写访问数据库代码
    
public class testSaveStudent {
	private SessionFactory sessionFactory;
	private Session session;
	private Transaction transaction;
 @Before
 public void init()
 {
	 //创建配置对象 读取.cfg.xml文件
	 Configuration config=new Configuration().configure();
	 //创建服务注册对象
	 ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
	 //创建会话工厂对象 读取
	 sessionFactory=config.buildSessionFactory(serviceRegistry);
	 //会话对象
	 session=sessionFactory.openSession();
	 //开启事务
	 transaction=session.beginTransaction();
	 
 }
 @After
 public void destroy()
 {
//默认是非自动提交的方式,所以session在保存对象时,不开启事务,并且手工提交事务,对象并不会真正保存在数据库中
//hibernnate像jdbc自动提交事务,必须调用session对象doWork()方法,获取jdbc的connection后,设置其为自动提交事务模式
//(注意:通常并不推荐这样做)
	 transaction.commit();//提交事务
	 session.close();
	 sessionFactory.close();
 }
@Test
public void testAddress()
{
	 Address address=new Address("1233","4321","123");
	 Student s=new Student(3,"张三丰","男",new Date(),address);
	  session.save(s);

}




       















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值