标签:hibernate
(hibernate学习笔记系列来自于 “疯狂Java” 视频学习)
免费开源Java包,可以使程序和数据库的交互变得容易,并更加符合面向对象的设计。
持久化:将数据保存到数据库中
编写持久化类
要求:
编写映射文件
编写一个与持久化类名相同的映射文件,可以使用hibernate包中的project文件夹下面搜索*.hbm.xml文件,随便选择一个,复制,作为一个模板。
与持久化类类名相同是为了之后的维护,放到持久化类所在的包里。
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!--映射配置文件-->
<!--持久化类与表的对应关系-->
<hibernate-mapping package="类所在的包">
<!--面向对象的思想-->
<class name="持久化类" table="表名">
<!--属性和列名-->
<id name="持久化类中的id属性">
<!--id生成策略(参考cfg.xml文件中方言设置)-->
<generator class="native" />
</id>
<!--如果配置了column,则创建设置的对应列名,否则使用name创建列名-->
<property name="属性" column="对应列名"/>
<property name="属性1" />
....
</class>
</hibernate-mapping>
配置连接数据库配置文件
文件模板可以从hibernate包的project/etc/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>
<!--显示执行的SQL语句,开发阶段-->
<property name="show_sql">true</property>
<!--project/etc/hibernate.properties里可以找到数据库驱动的配置,然后参考着写-->
<!--数据库驱动-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<!--数据库url,三个斜线(/)表示连接本机-->
<property name="hibernate.connection.url">jdbc:mysql:///test</property>
<!--用户名-->
<property name="hibernate.connection.username">gavin</property>
<!--密码-->
<property name="hibernate.connection.password">root</property>
<!--
自动建立映射文件对应的数据库表
create-drop 在程序启动的时候创建对应的数据库表结构,当SessionFactory关闭的时候会将创建的表结构删除,测试使用
create 在每次程序启动的时候先删除上次创建的表结构,然后再创建对应的数据库表结构;测试使用
update 在每次启动的时候会追加和修改表结构,但是不会影响原来的数据(通常使用的最多的是这个)
validate 每次启动的时候会验证并修改表结构
这些配置的删除操作并不一定会正确删除
-->
<property name="hibernate.hbm2ddl.auto">update</property>
<!--方言,这个方言支持事务
如果使用的Mysql数据库版本在5.5之后的话,建议使用org.hibernate.dialect.MySQL5InnoDBDialect
MySQLDialect 不支持事务
MySQLInnoDBDialect 支持事务
-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<!--对象/关系映射文件所在的路径-->
<mapping resource="path/XXX.hbm.xml"/>
</session-factory>
</hibernate-configuration>
持久化到数据库
//创建一个类,类中的main方法内容如下
//读取配置文件,创建Configuration实例
/*
public Configuration configure() throws HibernateException{
configure("/hibernate.cfg.xml");
return this;
}
*/
Configuration config = new Configuration().configure();
//此方法是hibernate4之前的获取方法
//根据配置文件获取factory
//SessionFactory是与应用程序生命周期一致的,是在多个线程之间共享的
SessionFactory factory = config.buildSessionFactory();
//与数据库的一次交互
Session session = factory.openSession();
//在使用hibernate进行增加,删除,修改的时候需要事务
//查询不需要事务
Transaction tx = session.beginTransaction();
//创建需要持久化类Person对象
Person person = new Person();
person.setName("Li");
person.setPassword("123456");
person.setBirthday(new java.util.Date());
//保存对象到数据库中
session.save(person);
//提交事务
tx.commit();
//关闭session,结束本次连接
session.close();
标签:hibernate
原文地址:http://blog.csdn.net/havedream_one/article/details/46443215