<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 
我的开发环境准备

Eclipse3.0

hibernate-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />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