一.开发流程
1.实体类的编写(Domain Object)→ 映射文件的编写(Mapping) → 数据库表结构(DB)
2.从表结构开始,用工具生成映射文件和实体类(用得较多)
3.从映射文件开始
二.Domain Object的限制
Hibernate用到的实体类是有要求的有限制的
1.必须有默认的构造方法
2.有无意义的标示符id(主键)(建议有)
3.非final的,如果限制为final就不能继承了,懒加载的特性就不能使用了
三.hbm.xml映射文件
将类和数据库表映射起来,是非常核心配置文件
<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>
四.hibernate.cfg.xml核心配置文件
<!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>
该配置文件主要是用来配置与数据库相关的参数信息,包括实体映射文件
java代码,配置文件的初始化
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(); } }
configure()方法会从classpath路径下读取hibernate.cfg.xml
如果名字不是hibernate.cfg.xml
configure(“filename”)里需要传入配置文件的名称filename
session内部包装的就是Conection,因此用完后一定要关闭掉
原文:http://www.cnblogs.com/fabaoyi/p/3562205.html