您的位置:首页 > 数据库

Hibernate之*hbm.xml文件和实体类操作数据库实现插入和查询

2016-08-26 22:30 1226 查看
一、实体类(Entity)

package com.javademo;

import java.util.Date;

public class Event {
private Long id;

private String title;
private Date date;

public Event() {
// Hibernate自动调用无参构造方法
}
public Event(String title, Date date) {
// for application use, to create new events
this.title = title;
this.date = date;
}

public Long getId() {
return id;
}

private void setId(Long id) {
this.id = id;
}

public Date getDate() {
return date;
}

public void setDate(Date date) {
this.date = date;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}
}


二、在和Event类同一个包下添加Event.hbm.xm文件

<?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="com.javademo">
<!--
class 指定实体类的类名
table 指定实体类对应的表名(默认和类名相同)
-->
<class name="Event" table="EVENTS">
<!--
id 指定实体类对应的数据表的主键
column 指定主键名称
-->
<id name="id" column="EVENT_ID">
<!--
generator 主键生成器
-->
<generator class="increment"/>
</id>
<!--
property 指定一般属性(不是主键)字段对应的数据表的列名
name 实体类的属性名
type 数据类型
column 对应的列名
-->
<property name="date" type="timestamp" column="EVENT_DATE"/>
<property name="title"/>
</class>

</hibernate-mapping>


三、在classpath路径配置hibernate.cfg.xml文件

<?xml version='1.0' encoding='utf-8'?>
<!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="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>

<!-- 数据库连接池 -->
<!--   <property name="connection.pool_size">1</property> -->
<!-- SQL方言 指明使用什么SQL数据库 -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- 不使用第二级缓存 -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

<property name="show_sql">true</property>

<property name="hbm2ddl.auto">update</property>

<!-- 配置映射信息 注意是resource -->
<mapping resource="com/javademo/Event.hbm.xml"/>

</session-factory>

</hibernate-configuration>


四、测试

SessionFactory sessionFactory;

@Test
public void test1() {
/**
* 取得hibernate.cfg.xml配置文件
*/
StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
.configure() // configures settings from hibernate.cfg.xml
.build();
sessionFactory = new MetadataSources(registry).buildMetadata()
.buildSessionFactory();
/**
* 添加数据
*/
Session session = sessionFactory.openSession();
session.beginTransaction();
session.save(new Event("Our very first event!", new Date()));
session.save(new Event("A follow up event", new Date()));
session.getTransaction().commit();
session.close();
/**
* 查询数据
*/
session = sessionFactory.openSession();
session.beginTransaction();
List result = session.createQuery( "from Event" ).list();
for ( Event event : (List<Event>) result ) {
System.out.println( "Event (" + event.getDate() + ") : " + event.getTitle() );
}
session.getTransaction().commit();
session.close();

}


上述例子基于5.2.2版本的Hibernate
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hibernate 数据库
相关文章推荐