首页 > 其他 > 详细

Hibernate开发细节

时间:2014-02-24 13:06:37      阅读:372      评论:0      收藏:0      [点我收藏+]

一.开发流程

1.实体类的编写(Domain Object)→ 映射文件的编写(Mapping) → 数据库表结构(DB)

2.从表结构开始,用工具生成映射文件和实体类(用得较多)

3.从映射文件开始

 

二.Domain Object的限制

Hibernate用到的实体类是有要求的有限制的

1.必须有默认的构造方法

2.有无意义的标示符id(主键)(建议有)

3.非final的,如果限制为final就不能继承了,懒加载的特性就不能使用了

 

三.hbm.xml映射文件

将类和数据库表映射起来,是非常核心配置文件

bubuko.com,布布扣
<hibernate-mapping package="com.xunpoit.entity">
    <!-- 实体类名 和 表名 -->
    <class name="User" table="t_user">
        <!--类中的字段名 和表中的字段名 -->
        <id name="id" column=”id”>
            <!--主键如何产生,native是主键产生器的一种,自增长 -->
            <generator class="native" />
        </id>
        <property name="name" type="string" length="255" column="name"
            not-null="true" />
        <property name="password" type="string" length="20" column="password"
            not-null="true" />
    </class>
</hibernate-mapping>
bubuko.com,布布扣

四.hibernate.cfg.xml核心配置文件

bubuko.com,布布扣
<!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="show_sql">true</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/testhibernate</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">962297fabaoyi</property>
        <mapping resource="com/xunpoit/entity/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>
bubuko.com,布布扣

该配置文件主要是用来配置与数据库相关的参数信息,包括实体映射文件

 

 

java代码,配置文件的初始化

bubuko.com,布布扣
package com.xunpoit.manager;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import com.xunpoit.entity.User;

public class UserManager {
    public static void main(String[] args) {
        
        //配置文件hibernate.cfg.xml如果改成了hibernate.xml那么configure()方法里需要传入文件名
        Configuration config = new Configuration().configure("hibernate.xml");
        
        SessionFactory factory = config.buildSessionFactory();
        Session session = factory.openSession();
        
        User user = new User();
        user.setName("张三");
        user.setPassword("123456");
        
        Transaction tran = session.beginTransaction();
        session.save(user);
        tran.commit();
        session.close();
    }
}
bubuko.com,布布扣

configure()方法会从classpath路径下读取hibernate.cfg.xml

如果名字不是hibernate.cfg.xml

configure(“filename”)里需要传入配置文件的名称filename

 

session内部包装的就是Conection,因此用完后一定要关闭掉

Hibernate开发细节

原文:http://www.cnblogs.com/fabaoyi/p/3562205.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!