本人第一个能成功运行的hibernate程序

 
我的开发环境准备
Eclipse3.0
hibernate- 3.2.0 .ga.zip
MicroSoft SQL SERVER2000, 用户名:sa,密码:123
数据库驱动:jtds-1.2.jar
解压hibernate- 3.2.0 .ga.zip
我的解压到了C:\TDdownload\hibernate- 3.2.0 .ga\hibernate-3.2,解压位置可以任意,这里列出来只是为了方便叙述在后文中我把C:\TDdownload\hibernate-3.2.0.ga\hibernate-3.2称之为:$Hibernate_Home
SQL Server 2000 JDBC
驱动
 
我的驱动程序在位置是:C:\TDdownload\jtds-1.2-dist(1)\ jtds-1.2.jar
1. SQL SERVER2000中建立数据库hibernate,在建立表t1:字段有id(int 主键) name(varchar) address(varchar)
2. Eclipse新建一个工程:hibernate, 右键点击hibernate,在菜单中选“Properties”->“Java Build Path”->“Add External JARs”
需要加入JAR文件如下:jtds-1.2.jar hibernate3.jar,路径上文已提!
还有把 $Hibernate_Home\lib下的文件全部也加入到工程,(不是所有的文件都是必需的)
 3.import 文件hibernate.propertieslog4j.properties到工程下,这两个文件在C:\TDdownload\hibernate- 3.2.0 .ga\hibernate-3.2\etc下可以找到(方法:点击file―>import à
文件结构如图:
  4. 配置hibernate.properties
  hibernate.properties中默认的数据库是HypersonicSQL,把那几行全部注释掉
  找到
  ## MS SQL Server
  #hibernate.dialect net.sf.hibernate.dialect.SQLServerDialect
  #hibernate.connection.username sa
  #hibernate.connection.password sa
  ## JSQL Driver
  #hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver
  #hibernate.connection.url jdbc:JSQLConnect://1E1/test
  修改为
  ## MS SQL Server
  hibernate.dialect org.hibernate.dialect.SQLServerDialect
  hibernate.connection.username sa
  hibernate.connection.password 123
  ## JSQL Driver
  hibernate.connection.driver_class net.sourceforge.jtds.jdbc.Driver
  hibernate.connection.url jdbc:jtds:sqlserver://localhost:1433/hibernate 
5. 建立一个pojo  Hello_Bean.java
import java.io.Serializable;
public class Hello_Bean implements Serializable {
private String name;// 这里nameaddressid的名字可以自己定,不会有什么影响.getset方法不可以。因为那得跟数据库与配置文件对应。
private String address;
private int id;
public Hello_Bean() {
}
public Hello_Bean(String name, String address) {
this.name = name;
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getId() {
return id;
}
public void setId(int id)
{
this.id = id;
}
}
6. Hello_Bean .hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 2.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
    <class name="Hello_Bean" table="t1" >
    <id name="id" column="id">
    <generator class="identity"/>
    </id>
    <property name="name" type="string" update="true" insert="true" column="name" />
    <property name="address" type="string" update="true" insert="true" column="address" />
  </class>
</hibernate-mapping>
 7. 测试文件Hello.java
import org.hibernate.cfg.Configuration;
import org.hibernate.*;
import org.hibernate.tool.hbm2ddl.*;
import org.hibernate.Session;
import org.hibernate.Query;
import org.hibernate.Hibernate;
import org.hibernate.type.*;
import org.hibernate.Transaction;
import org.hibernate.ScrollableResults;
import java.util.*;
public class Hello {
public Hello() {
}
public static void main(String[] args) throws Exception {
Configuration cfg = new Configuration().addClass(Hello_Bean.class);
SessionFactory sessions = cfg.buildSessionFactory();
Session session = sessions.openSession();
Transaction tran=null;
 tran=session.beginTransaction();
 Hello_Bean my_hibernate = new Hello_Bean();
 my_hibernate.setName("11");
 my_hibernate.setAddress("22");
 session.save(my_hibernate);
 session.flush();
 tran.commit();
//    Query 方法查询数据
Hello_Bean my_hibernate1= null;
Query q = session.createQuery("from Hello_Bean");
session.flush();
List l=q.list();
for(int i=0;i<l.size();i++){
my_hibernate1= (Hello_Bean) l.get(i);
System.out.println(my_hibernate1.getName());   }
//    修改数据
 tran=session.beginTransaction();
Query qq=session.createQuery("from Hello_Bean");
Hello_Bean my_hibernate3=(Hello_Bean)session.load(Hello_Bean.class,new Integer(1));
//    这里的new Integer(1)意思是修改表中id1的那一行数据,必须是一个包装类的对象,如果使用int的话会出错。这里你要确保表t1里有id1的记录,不然你可以把修改数据这一段注释掉。
my_hibernate3.setName("zhangls");// id1的那一行数据的name字段值改为" zhangls "
session.flush();
tran.commit();
}
}
8.
操作结果
  
你将发现表t1中会多出一条记录:name:11,address:22
  [url]http://blog.sina.com.cn/u/1232107653[/url]

你可能感兴趣的:(Hibernate,职场,程序,休闲,Eclipse3.0)