版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013086062/article/details/51417499
本篇博客将带着大家以一个简单的实例来学习hibernate项目。
1、创建java项目
* HIBERNATE_HOME/lib/*.jar
* HIBERNATE_HOME/hibernate3.jar
* 加入数据库驱动(mysql驱动)
具体的操作步骤参考我的上一篇博客:【hibernate进阶】如何在myeclipse中添加jar包
3、提供hibernate.cfg.xml文件,完成基本的配置
<strong><span style="font-size:18px;"><!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_first</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">123</property>
<!-- mysql language adatper,if you want to change database ,you juse need to change there -->
<!-- <property name="hibernate.connection.dialect">org.hibernate.dialect.MySQLDialect</property> -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<!-- <property name="hibernate.format_sql">true</property>-->
<mapping resource="com/bjpowernode/hibernate/User.hbm.xml"/>
</session-factory>
</hibernate-configuration></span></strong>
4、建立实体类User.java
<strong><span style="font-size:18px;"><strong><span style="font-size:18px;">package com.bjpowernode.hibernate;
import java.util.Date;
public class User {
private String id;
private String name;
private String password;
private Date createTime ;
private Date expireTime;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
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;
}
}</span></strong>
</span></strong>
5、提供User.hbm.xml文件,完成实体类的映射
<strong><span style="font-size:18px;"><?xml version="1.0"?>
<!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping >
<class name="com.bjpowernode.hibernate.User">
<id name="id">
<generator class="uuid"/>
</id>
<property name="name"/>
<property name="password"/>
<property name="createTime"/>
<property name="expireTime"/>
</class>
</hibernate-mapping></span></strong>
6、将User.hbm.xml文件加入到hibernate.cfg.xml文件中
这个在3步的时候已经加进去了
7、编写工具类ExoprtDB.java,将hbm生成ddl,也就是hbm2ddl
<strong><span style="font-size:18px;">package com.bjpowernode.hibernate;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
/**
* hbm Generation ddl
* @author CXC
*
*/
public class ExoprtDB {
public static void main(String[] args){
//Read by default hibernate.cfg.xml File
Configuration cfg=new Configuration().configure();
SchemaExport export=new SchemaExport(cfg);
export.create(true, true);
}
}</span></strong>
在这一步的时候,就可以生成user表了,run as java application ,查看数据库,就可以生成user表了。
8、建立客户端类Client,添加用户数据到mysql
<strong><span style="font-size:18px;">package com.bjpowernode.hibernate;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class Client {
public static void main(String[] args) {
//read hibernate.cfg.xml file
Configuration cfg=new Configuration().configure();
//sessionfactory thread safe
//build sessionfactory
SessionFactory factory=cfg.buildSessionFactory();
//acquire session
Session session=null;
try{
session=factory.openSession();
//open Transaction
session.beginTransaction();
User user=new User();
user.setName("12");
user.setPassword("123");
/* user.setCreateTime(new Date());
user.setExpireTime(new Date());*/
Date date=new Date();
SimpleDateFormat temp=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String date2=temp.format(date);
Date date3=temp.parse(date2);
user.setCreateTime(date3);
user.setExpireTime(date3);
//save User object
session.save(user);
//commit Transaction
session.getTransaction().commit();
}catch(Exception e){
e.printStackTrace();
//rollback Transaction
session.getTransaction().rollback();
}finally{
if(session !=null){
if(session.isOpen()){
//close session
session.close();
}
}
}
}
}
</span></strong>
在console中,输入的insert into user(.....)信息表示将数据插入到数据库中了。
这样,hibernate的项目就完成了。
遇到的问题:
在插入的时候,遇到了日期插不进去的问题。以为是mysql引用的jar包问题,重新引用了没有解决,想到了在之前也遇到过类似的问题,把转了一下日期的格式就解决了。