`
txidol
  • 浏览: 52424 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Hibernate学习笔记(一)【基础配置篇】

阅读更多

一、首先找hibernate.properties文件

 

hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://192.168.18.184:3306/SAMPLEDB
hibernate.connection.username=root
hibernate.connection.password=
hibernate.show_sql=true

二、其次找类配置文件 例如:Monkey.hbm.xml

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
    <class name="mypack.Monkey" table="MONKEYS">
        <id name="id" column="ID" type="long">
            <generator class="increment"/>
        </id>
        <property name="name" column="NAME" type="string" not-null="true"/>
        <property name="age" column="AGE" type="int"/>
        <property name="gender" column="GENDER" type="character"/>
    </class>
</hibernate-mapping>

 

三、使用Service 备注:经过改造后笔记

 

public static SessionFactory sessionFactory;
       static {
              try {
                     Configurationconfig = new Configuration();
                     config.addClass(Monkey.class);
                     sessionFactory =config.buildSessionFactory();
              } catch (RuntimeException e) {
                     // TODO: handle exception
                     e.printStackTrace();
                     throw e;
              }
       }
             
public void findAllMonkeys() {
     Session session = sessionFactory.openSession();
              Transaction tx = null;
              try {
                     tx =session.beginTransaction();
                     //
            	     Query query = session
                                   .createQuery("from Monkey as morder by m.id asc")
                     @SuppressWarnings("unchecked")
                     List<Monkey> monkeys= query.list();
                     //
                     s.save(m);
                    //
                     Monkey m = (Monkey)session.get(Monkey.class, monkey_id);
                     m.setAge(age);
                     //
                     session.delete(monkey);                     
                     tx.commit();
              } catch (RuntimeException e) {
                     // TODO: handle exception
                     if (tx != null) {
                            tx.rollback();
                     }
                     throw e;
              } finally {
                     session.close();
              }
       }

 

四、升级配置文件 Monkey.hbm.xml

 

1.dynamic-insert="true" dynamic-update="true"  动态版插入更新
2.access="field" 不是要get set直接采用属性
3.formula 无属性也可以直接查数据库组装数据
4.在class中声明mutable=”false” 或 @Immutable
    这意味着对该类的更新将会被忽略,不过不会抛出异常,只允许有增加和删除操作。
     在class中声明mutable=”false”:insert=允许,delete=允许,update=不允许
     在集合中声明mutable=”false” 或 @Immutable
      这意味着在这个集合中插入记录或删除孤行是不允许的,否则会抛出异常。只允许更新操作。
     不过,如果启用级联删除的话,当父类被删除时,其所有子类也将被删除,即使它是mutable的。
     在集合中声明mutable=”false”:insert=不允许,孤行删除=不允许,delete=允许,update=允许

 

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/HibernateMapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="mypack.Monkey" table="MONKEYS" dynamic-insert="true" dynamic-update="true"  > <!-- mutable="ture" -->
    <id name="id">
      <generator class="increment"/>
    </id>
    <property name="name" column="NAME" />
    <property name="gender" column="GENDER" access="field" />
    <property name="age" column="AGE" />
    <property name="avgAge"
      formula="(select avg(m.AGE) from MONKEYS m)" />
   <property name="description"  type="text" column="`MONKEY  DESCRIPTION`"/>
 </class>
</hibernate-mapping>

 

 

五、升级配置hibernate.properties --》hibernate.cfg.xml 不过需显示调用

Service

public static SessionFactory sessionFactory;
       static {
              try {
       Configuration config = newConfiguration();
       config.configure();
           sessionFactory = config.buildSessionFactory();
              } catch (RuntimeException e) {
                     // TODO: handle exception
                     e.printStackTrace();
                     throw e;
              }
       }

 

 

<?xml version="1.0"encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration
 PUBLIC "-//Hibernate/HibernateConfiguration DTD//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory >
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/sampledb</property>
<property name="connection.username">root</property>
<property name="connection.password">1234</property>
<property name="show_sql">true</property>
<mapping resource="mypack/Monkey.hbm.xml" />
</session-factory>
</hibernate-configuration>

 

六、高级综合版 Springdao-config.xml xml引用sqlResource.properties

 

	//配置文件配置
       <bean id="propertyConfigurer"
       class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
              <property name="location">
                     <value>classpath:sqlResource.properties</value>
              </property>
	</bean>
       <bean id="dataSource"
              class="org.apache.commons.dbcp.BasicDataSource"
              destroy-method="close">
              <property name="driverClassName">
                     <value>${database.driverclassname}</value></property>      
              <property name="url"><value>${database.url}</value></property>
              <property name="username"><value>${database.username}</value></property>
              <property name="password"><value>${database.password}</value></property>
              <property name="maxActive"><value>10</value></property>
              <property name="maxWait"><value>3000</value></property>      
              <property name="maxIdle"><value>5</value></property>
       </bean>

 

七、高级综合版 直接配置Springdao-config.xml

 

	//直接配置
       <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
              destroy-method="close">
              <property name="driverClassName" value="com.mysql.jdbc.Driver" />
              <property name="url" value="jdbc:mysql://192.168.18.184:3306/moniter?characterEncoding=UTF-8" />
              <property name="username" value="root" />
              <property name="password" value="" />
       </bean>

 

 

 

分享到:
评论

相关推荐

    马士兵hibernate学习笔记(原版)

    4 hibernate基础配置(重点) 5 ID生成策略(重点 AUTO) 6 Hibernate核心开发接口介绍(重点) ... 风格 1 先脉络,后细节 2 先操作,后原理 3 重Annotation,轻xml配置文件 ... 性能优化 1 注意...

    Hibernate学习笔记(java的)

    Hibernate学习笔记(java的) 包括基础的使用和配置,有Hibernate的控制事务,映射关系等内容。 可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all

    hibernate 3.3学习笔记

    第10课 模拟Hibernate原理(OR模拟) 第11课 Hibernate基础配置 第16课 关系映射(重点 Annotation注解)

    Hibernate笔记 马士兵

    第11课 Hibernate基础配置 15 一、 提纲 15 二、 介绍MYSQL的图形化客户端 16 三、 Hibernate.cfg.xml:hbm2ddl.auto 16 四、 搭建日志环境并配置显示DDL语句 16 五、 搭建Junit环境 16 六、 ehibernate.cfg.xml : ...

    hibernate笔记

    4 hibernate基础配置(重点) 5 5 ID生成策略(重点 AUTO) 5 6 Hibernate核心开发接口介绍(重点) 5 7 对象的三种状态(了解) 5 8 关系映射(重点) 5 9 Hibernate査询(HQL) 5 10 在Struts基础上继续完善BBS200 5...

    Java/JavaEE 学习笔记

    Hibernate学习笔记..........180 第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射......................185 第四章 操纵持久化对象....................

    J2EE学习笔记(J2ee初学者必备手册)

    Hibernate学习笔记..........180 JavaEE@xuxiang 3 Java/JavaEE学习笔记Jonny xuxiang5612@sina.com 第一章 Hibernate入门.....................180 第二章 对象/关系映射基础.............183 第三章 关联关系映射....

    AppFuse学习笔记(J2EE入门级框架)

    Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry、JSF等基础框架给出了示范。在持久层,AppFuse采用了Hibernate O/R映射...

    appfuse 学习笔记

    Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、Struts、xDcolet、Junit、Taperstry、JSF等基础框架给出了示范。在持久层,AppFuse采用了Hibernate O/R映射...

    Java学习笔记-个人整理的

    {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{subsection.1.3.1} {1.4}数据类型}{23}{section.1.4} {...

    jive.chm

    2 jcs学习笔记 3 关于Hibernate的Cache问题 4 用缓冲技术提高JSP应用的性能和稳定性 5 SwarmCache入门 &lt;br&gt; 源代码研究 1 Jive中的全局配置 2 Jive源代码情景分析-index....

Global site tag (gtag.js) - Google Analytics