Hibernate环境搭建(一个基本的Hibernate应用的实现步骤)

视频地址:http://edu.51cto.com/course/course_id-431.html

需要的软件:

HibernateOrm 4.1.9.Final  : http://download.csdn.net/download/mr__fang/5071223

Mysql 数据库驱动包 :   http://download.csdn.net/detail/cyw_123/5164876


简单Hibernate应用的创建过程:


S1 : 创建一个Java工程HibernateDemo1


S2:导入Hibernate基本包。 

1,新建lib文件夹。

2,下载好的orm包中的required中的所有jar文件复制到lib


S3: 导入数据库驱动包。将下载的mysql驱动jar放入lib文件夹


S4 :右键lib,buildPath,将包添加到工程中


S5 :新建持久化类Person.java:

package org.fkjava.pojo;
/**
 * 持久化类
 * 注意:
 * 通常建议有一个持久化标示符(ID)
 * 持久化标示符通常建议使用封装类(基本类型有默认值)
 * 持久化类通常建议手动给定一个无惨构造器(因为一一些操作通过反射进行)
 * 属性通常建议提供getset方法
 * 持久化类不能是final
 * 持久化类中如果使用了集合类型数据,只能使用接口类型进行声明(List/set/map)
 * List list=new ArrayList():
 * @author sc
 */
import java.util.Date;

public class Person {
	private Integer id;
	private String name;
	private int password;
	private Date birthday;
	
	public Person(){}

	public Person(String name, int password, Date birthday) {
		super();
		this.name = name;
		this.password = password;
		this.birthday = birthday;
	}

	@Override
	public String toString() {
		return "Person [id=" + id + ", name=" + name + ", password=" + password
				+ ", birthday=" + birthday + "]";
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getPassword() {
		return password;
	}

	public void setPassword(int password) {
		this.password = password;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	
	
}

S6:     新建持久化类对应的持久化配置文件

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
	<class name="org.fkjava.pojo.Person" table="t_person"> 
		<id name="id">
			<generator class="native"/>
		</id>
		<property name="name" column="t_name"/>
		<property name="password" length="6"/>
		<property name="birthday" type="date"/>
	</class>

</hibernate-mapping>

S7:新建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 name="foo">
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		
		<property name="hibernate.connection.url">jdbc:mysql:///hibernate_db</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password">root</property>
		
		
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		<property name="hibernate.hbm2ddl.auto">update</property>

		<mapping resource="org\fkjava\pojo\Person.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

注意要在mysql数据库中建立对应的数据库hibernate_db

S8: 编写测试类HibernateTest.java

package org.fkjava.pojo;

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


public class HibernateTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//获得hibernate。cfg.xml中的配置
		Configuration config = new Configuration().configure();
		//获得连接工厂
		//通常对应一个数据库,通常一个应用程序只有一个,在启动的时候创建就可以了
		//线程安全
		SessionFactory factory= config.buildSessionFactory();
		//获得session,session是hibernate的核心api,其他的增删改查都是通过session完成的
		//session相当于一次数据库表的操作
		//非线程安全
		Session session = factory.openSession();
		//hibernate中增删改需要事务的支持,查询不用
		Transaction tx = session.beginTransaction();
		Person p = new Person("admin",123456,new java.util.Date());
		
		//将persion对象持久化到数据库
		session.save(p);
		//提交失误
		tx.commit();
		//关闭session,
		session.close();
		//关闭sessionfactory,通常不用手动关闭
		factory.close();
	}

}

S9:  运行,可见将该类持久化到了数据库中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值