Hibernate 学习

Hibernate 学习-----创建第一个简单的hibernate程序


应用数据库:MySQL
工具Myeclipse
1数据库中创建数据库bookstore,建立一个表books


2 建立一个java project
Src里面创建一个包com.dao,创建一个类Book (与数据库中表的字段相匹配的类)
代码:Book.java

package com.dao
import java.sql.Timestamp;
public class Book{
private Integer id;
private String name;
private String author ;
private Timestamp;
//声明私有变量与数据库中字段一致,对于主键变量类型尽量使用包装类。
//使用包装类原因:对于id,假如使用int类型,当输入Id为空时,java默认初始化id值为//0,而integer则默认初始化为null。
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 String getAuthor() {
	return author;
}
public void setAuthor(String author) {
	this.author = author;
}
public Double getPrice() {
	return price;
}
public void setPrice(Double price) {
	this.price = price;
}
public Timestamp getCreat_time() {
	return creat_time;
}
public void setCreat_time(Timestamp creat_time) {
	this.creat_time = creat_time;
//使用工具自动生成各个变量的set和get方法
}
}

 3 com.dao包下创建一个配置文件,告诉hibernate类对应的表即创建类与表之间的映射关系文件
创建Book.hbm.xml      (注hbm  hibernate mapping)
内容:

<?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 >
	
	<class name="com.dao.Book" table="books" lazy="false">
//class name指出类的路径,table数据库表的位置
		<id name="id" type="int" column="id" >
		  <generator class="increment"/>
		</id>
//主关键字字段必须用id表示
//name 类中的变量名称,type 类型,colum 表中字段名
//Generator主关键字产生器 class=”increment” 自增长类型
		<property name="name" not-null="true" column="name"/>
//其他字段用property声明 其他一致
		<property name="author" not-null="true" column="author">
</property>
		<property name="price" not-null="false" column="price">
</property>
		<property name="creat_time" not-null="true" column="creat_time">
</property>
	</class>
</hibernate-mapping>

 4 创建hibernate配置文件
hibernate.cfg.xml
在classpath中,即在src根目录下创建hibernate.cfg.xml
告诉hibernate要连接的数据库具体信息


代码:

<?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>
        <!-- Database connection settings -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
//数据库驱动
        <property name="connection.url">jdbc:mysql://localhost:3306/bookstore</property>
//操作url
        <property name="connection.username">root</property>
//数据库用户名
        <property name="connection.password">158655</property>
//数据库用户密码
        <property name="show_sql">true</property>//是否把执行信息打印在控制台
     <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <mapping resource="com/dao/Book.hbm.xml"/>
//指向路径。有多少类就加多少条,一一指明
          </session-factory>
</hibernate-configuration>

 5.编写访问代码
创建包com.app
app.java
代码:

package com.app;
import java.sql.Timestamp;
import java.util.Calendar;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.dao.Book;
public class app {
	public static Timestamp Creat_time()
	{
		Calendar c=Calendar.getInstance();
		 return new Timestamp(c.getTime().getTime());
		 
	}
//获取时间
	public static void main(String[] args) {
try{
//有可能产生异常,使用try语句
	Configuration cfg=new Configuration().configure();
//应用程序或资源的配置文件。无法继承此类。
	SessionFactory sf= cfg.buildSessionFactory();
//Hibernate的核心接口之一 SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充//当数据存储源的代理,并负责创建Session对象。	
Session  session=sf.openSession();
	 Transaction ts=  session.beginTransaction();
  Book b=new Book();
  b.setName("HelloWord");
b.setPrice(6.0);
b.setAuthor("GG");
b.setCreat_time(Creat_time());

session.save(b);
ts.commit();
session.close();
sf.close();

}
	catch(Exception e)
	{
		e.printStackTrace();
	
	}
}
}

  

相关推荐