Hibernate3 - HelloWorld(hibernate-mapping和Annotation) 【从零开始学习Hibernate_01】

开发环境:

Eclipse IDE for Java EE Developers(下载地址

Hibernate3.6.10Final(下载地址

MySQL(下载地址

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

 

1.安装Hibernate Tools工具

Working with Hibernate is very easy and developers enjoy using the APIs and the query language. Even creating mapping metadata is not an overly complex task once you've mastered the basics. Hibernate Tools makes working with Hibernate or JPA even more pleasant.

Hibernate Tools is a toolset for Hibernate3 implemented as an integrated suite of Eclipse plugins, together with a unified Ant task for integration into the build cycle. Hibernate Tools is a core component of JBoss Tools and hence also part of JBoss Developer Studio.

Hibernate Tools是Eclipse的一个插件,帮助你开发Hibernate3的程序。

Hibernate Tools的下载需要对应相关的Eclipse,我的版本是:eclipse-jee-indigo-SR2-win32,(下载地址),由于单个的Hibernate的插件安装,在我这边有点问题,所以我将整个JBOSS的都下载下来,选择安装,也不大,150M

安装办法,Eclipse-Help-Install New Software-Add-Achieve,不解压安装,只选择Hibernate的那个插件。

2.创建MySQL的数据库

理论上是应该先建立对象,再创建数据库,但在实际工作中,应该先建数据库,在建对象。

3.创建一个Java工程(普通的)

添加如下的Hibernate包。

slf4j-nop-161.jar是在slf4j中的。下载时注意版本。(下载地址

mysql-connector-java是mysqL的驱动包

4.在src包下建立hibernate.cfg.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
                                         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<session-factory name="">
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.password">zhubenwei</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/pim</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
		<property name="current_session_context_class">thread</property> 
		<!-- Disable the second-level cache -->
		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
		<mapping resource="com/zeph/hibernate/bean/User.hbm.xml" />
	</session-factory>
</hibernate-configuration>


5.建立User的JOPO的

package com.zeph.hibernate.bean;

public class User {
	private Long id;
	private String username;
	private String password;
	private String email;
	private String realname;
	private String msn;
	private String qq;

	public User() {

	}

	public Long getId() {
		return id;
	}

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

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

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

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getRealname() {
		return realname;
	}

	public void setRealname(String realname) {
		this.realname = realname;
	}

	public String getMsn() {
		return msn;
	}

	public void setMsn(String msn) {
		this.msn = msn;
	}

	public String getQq() {
		return qq;
	}

	public void setQq(String qq) {
		this.qq = qq;
	}

}


annotation版本

package com.zeph.hibernate.bean;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class User {
	private Long user_id;
	private String username;
	private String password;
	private String email;
	private String realname;
	private String msn;
	private String qq;

	public User() {

	}

	@Id
	@GeneratedValue
	public Long getUser_id() {
		return user_id;
	}


	public void setUser_id(Long user_id) {
		this.user_id = user_id;
	}


	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

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

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getRealname() {
		return realname;
	}

	public void setRealname(String realname) {
		this.realname = realname;
	}

	public String getMsn() {
		return msn;
	}

	public void setMsn(String msn) {
		this.msn = msn;
	}

	public String getQq() {
		return qq;
	}

	public void setQq(String qq) {
		this.qq = qq;
	}

}


6.User.hbm.xml(annotation版本不需要建立)

 

 

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2012-4-2 14:15:08 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
	<class name="com.zeph.hibernate.bean.User" table="USER">
		<id name="id" type="java.lang.Long">
			<column name="USER_ID" />
			<generator class="native" />
		</id>
		<property name="username" type="java.lang.String">
			<column name="USERNAME" />
		</property>
		<property name="password" type="java.lang.String">
			<column name="PASSWORD" />
		</property>
		<property name="email" type="java.lang.String">
			<column name="EMAIL" />
		</property>
		<property name="realname" type="java.lang.String">
			<column name="REALNAME" />
		</property>
		<property name="msn" type="java.lang.String">
			<column name="MSN" />
		</property>
		<property name="qq" type="java.lang.String">
			<column name="QQ" />
		</property>
	</class>
</hibernate-mapping>


7.HibernateUtil.java

package com.zeph.hibernate.util;

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

public class HibernateUtil {

	private static final SessionFactory sessionFactory = buildSessionFactory();

	private static SessionFactory buildSessionFactory() {
		try {
			// Create the SessionFactory from hibernate.cfg.xml
			return new Configuration().configure().buildSessionFactory();
		} catch (Throwable ex) {
			// Make sure you log the exception, as it might be swallowed
			System.err.println("Initial SessionFactory creation failed." + ex);
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}

}


8.UserManage.java 实现数据的插入

package com.zeph.hibernate.manage;

import org.hibernate.Session;

import com.zeph.hibernate.bean.User;
import com.zeph.hibernate.util.HibernateUtil;

public class UserManage {
	public static void main(String[] args) {
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		User user = new User();
		user.setUsername("BenZeph");
		user.setPassword("123456");
		user.setEmail("benw1988@xxxx.com");
		user.setRealname("风清扬");
		user.setMsn("benw1988@live.com");
		user.setQq("10000");
		session.save(user);
		session.getTransaction().commit();
		HibernateUtil.getSessionFactory().close();
	}
}


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值