Hibernate环境搭建
1、引入
下载地址http:www/hiberbate.org
将下载目录/hibernate3.jar和/lib下的hibernate运行时必须的包加入classpath中;
Antlr,jar,cglib.jar,commons-collections.jar,commons-logging.jar,jta.jar,dom4j.jar
配置文件hibernate.cfg.xml和hibernate.propertiese,xml和properties两种,这两个文件的作用一样,提供一个即可,推荐xml格式,下载目录/etc下实例配置文件。
可以在配置文件制定:
数据库的URL、用户名、密码、JDBC驱动类、方言等。启动时Hibernate会在CLASSPATH里找这个配置文件。
映射文件(hbm.xml,对象模型和关系模型的映射)。在/eg目录下有完整的hibernate示例。
Domain Object限制
1、默认的构造(必须的)。
2、有无异议的标示符id(主键)可选
3、非final的,对加载有影响 可选
Domain Java Object(User)
Public class User{
Private int id;
Private String name;
Private Date biethday;
//getter setter…
}
1、hbm.xml
<?xml version=”1.0”?>
<?xml version="1.0"?>
<hibernate-mapping package=“cn.itcast.domain">
<class name="User" table="user">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<property name="birthday”/>
</class>
</hibernate-mapping>
2、测试类
(一)初始化代码(只做一次)
Configuration cfg = new Configuration();
cfg.configure(“config.cfg.xml”);
也可以通过cfg.setProperty设置属性。
SessionFactory sessionFactory = cfg.buildSessionFactory()
(二)
Session session = null;Transaction tx = null;
try{
session = sessionFactory.openSession();
tx = session.beginTransaction();
//…你的代码save,delete,update,get…
tx.commit();
}catch(Exception e){
if(tx !=null)tx.rollback();throw e;
}finally{
if(session != null)session.close();
}
Src根目录下的hibernate映射xml
文件名—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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///demo</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="com/hbsi/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configur
Session的几个注销方法
1、save,persist保存数据,persist在事务外不会产生insert语句。
2、delete,删除对象
3、update,更新对象,如果数据库中没有记录,会出现异常。
4、get,根据ID查,会立刻访问数据库。
5、Load,根据ID查,(返回的是代理,不会立即访问数据库)。
6、saveOrUpdate,merge(根据ID和version的值来确定是save或update),调用merge你的对象还是托管的。
7、lock(把对象变成持久对象,但不会同步对象的状态)。