初探Hibernate

来源:互联网 发布:软件项目进度管理工具 编辑:程序博客网 时间:2024/06/05 12:43

 刚接触hibernate,以一个小例子,来看看如何搭建hibernate开发环境,如何以面向对象的开发方式来达到与数据库交互的效果。

先看看例子最终的目录结构:

下面是具体步骤:

1、创建一个普通的java项目。

2、创建用户库,并添加hibernatejar文件,jar文件包括目录hibernate-3.2\lib下的所有jar文件和hibernate-3.2目录下的hibernate3.jar文件。

由于我们的项目要使用mySql数据库,所以这里加入mysql的jar文件。

3、将用户库引入项目。第二步我们创建了用户库,但是我们的项目还不知道,所以我们必须将用户库引入项目。


4、将hibernate-3.2\etc目录下的hibernate.cfg.xml、log4j.properties文件拷到项目的src目录下。


到此为止,hibernate开发环境就基本上搭好了。接下来就看实例了。


新建java类User,代码如下:

package hibernate;import java.util.Date;public class User {private String id;private String userName;private String password;private Date createTime;private Date expireTime;public String getId() {return id;}public void setId(String 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 Date getCreateTime() {return createTime;}public void setCreateTime(Date createTime) {this.createTime = createTime;}public Date getExpireTime() {return expireTime;}public void setExpireTime(Date expireTime) {this.expireTime = expireTime;}}

将hibernate-3.2\eg\org\hibernate\auction目录下的User.hbm.xml文件拷到User所在目录,并修改该文件。

<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="org.hibernate.auction"><class name="hibernate.User" ><id name = "id"><generator class="uuid"></generator></id><property name="userName"></property><property name="password"></property><property name="createTime"></property><property name="expireTime"></property></class></hibernate-mapping>

接下来配置hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://hibernate.sourceforge.net/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://localhost:3306/hibernate</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">123</property><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><property name="hibernate.show_sql">true</property><mapping resource="hibernate/User.hbm.xml"/></session-factory></hibernate-configuration>

新建ExportDB.java文件,用于在mysql里创建User表。

package hibernate;import org.hibernate.cfg.Configuration;import org.hibernate.tool.hbm2ddl.SchemaExport;public class ExportDB {public static void main(String [] args){Configuration cfg = new Configuration().configure();SchemaExport export = new SchemaExport(cfg);export.create(true, true);}}

注意:执行ExportDB时,你使用的数据库必须已经存在,我的是hibernate库。

执行完后,hibernate库中就会出现我们的user表。


现在看我们具体的操作

新建Client.java类

package hibernate;import java.util.Date;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.classic.Session;public class Client {public static void main(String [] args){//读取XML文件Configuration cfg = new Configuration().configure();//创建sessionFactorySessionFactory factory = cfg.buildSessionFactory();Session session = null;try{session = factory.openSession();//开启事务session.beginTransaction();User user = new User();user.setUserName("王五");user.setPassword("123");user.setCreateTime(new Date());user.setExpireTime(new Date());//保存user对象session.save(user);//提交事务session.getTransaction().commit();}catch (Exception e) {e.printStackTrace();//事务回滚session.getTransaction().rollback();}finally{if(session != null){if(session.isOpen()){session.close();}}}}}
执行后,数据库中就会出现我们添加的数据。


到此为止,搭建hibernate环境和实例就演示完毕了。可以看出,使用了hibernate后,我们书写的代码少了许多,操作数据库比原来更加方便,hibernate封装的确实很强悍。

原创粉丝点击