使用Hibernate 连接SQL Server 2000

server

以下代码在 JDK 5.0, Hibernate 2.1, SQL Server 2000 SP3 中测试通过。

 

 

       第一次使用Hibernate作持久层,感觉使用起来还是比较复杂的,尤其是调试起来很不方便。Hibernate 基于反射的机制虽然很灵活,但明显给跟踪代码制造了障碍,给出的异常信息量也太少。个人感觉其改进的余地还很大,比如Java新增加了Annotation语法后,是否可使用它来定义ORM,而取代hbm.xml的形式。

       好了,进入正题。

       首先,必须配置数据库,下面以在数据库yufan中的操作为例。

       CREATE TABLE CUSTOMER(CID INTEGER NOT NULL PRIMARY KEY,  USERNAME VARCHAR(12) NOT NULL,  PASSWORD VARCHAR(12));

       然后是一个数据对象,必须为它的每个字段提供读写属性方法,Hibernate 会用反射来检索。

// Customer.java

public class Customer {

    private int id;

    private String username;

    private String password;

    public int getId() {

        return id;

    }

    public String getPassword() {

        return password;

    }

    public String getUsername() {

        return username;

    }

    public void setId(int id) {

        this.id = id;

    }

    public void setPassword(String password) {

        this.password = password;

    }

    public void setUsername(String username) {

        this.username = username;

    }

}

 

 

然后是Hibernate的映射Customer.hbm.xml

 

 

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE hibernate-mapping PUBLIC

"-//Hibernate/Hibernate Mapping DTD//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">

<hibernate-mapping>

<class name="Customer" table="Customer" proxy="Customer">

<id name="id" column="CID">

<generator class="increment"/>

</id>

<property name="username" column="USERNAME" />

<property name="password" column="PASSWORD" />

</class>

</hibernate-mapping>

 

 

类和映射结合在一起,定义了ORM。

 

 

下面是Hibernate的配置文件,包含数据库连接,映射文件引用等。文件名必须是hibernate.cfg.xml

 

 

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE hibernate-configuration

PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">

 

 

<hibernate-configuration>

<session-factory name="java:/hibernate/HibernateFactory">

<property name="show_sql">true</property>

<property name="connection.driver_class">

com.jnetdirect.jsql.JSQLDriver

</property>

<property name="connection.url">

jdbc:JSQLConnect://localhost:1433;database=yufan;

</property>

<property name="connection.username">

sa

</property>

<property name="connection.password">

yufan

</property>

<property name="dialect">

net.sf.hibernate.dialect.SQLServerDialect

</property>

<mapping resource="Customer.hbm.xml"/>

</session-factory>

</hibernate-configuration>

 

 

重要的property包括connection.driver_class,指定JDBC数据库驱动。connection.url 制定数据库的Url。我使用的是JSQLDriver,功能上比MS 的 JDBC 驱动强大。但必须注意的是,在指定数据库的时候,必须使用database= 或 databaseName=的语法,而DatabaseName则会出错。MS的驱动则无此问题。我刚遇到此问题时真是茫然无绪。。。最后发现是如此。。。

 

 

在这个文件中,不能使用XML注释,感觉是Hibernate的缺陷。

     最后是Test.java

import net.sf.hibernate.*;

import net.sf.hibernate.cfg.*;

 

 

public class Test {

 

 

    public static void main(String[] args) {

        try {

            SessionFactory sf = new Configuration().configure().buildSessionFactory();

            Session session = sf.openSession();

            Transaction tx = session.beginTransaction();

            for (int i = 0; i < 20; i++) {

                Customer customer = new Customer();

                customer.setUsername("customer" + i);

                customer.setPassword("customer");

                session.save(customer);

            }

 

 

            tx.commit();

            session.close();

        }

        catch (HibernateException e) {

            e.printStackTrace();

        }

    }

}

 

 

好了,在项目中添加对Hibernate库文件的引用,编译执行,你会在数据库中找到新添加的记录。

 

 

代码部分取自史上最简单的Hibernate入门简介by watano_cc,根据SQL Server改动。

时间: 2024-12-29 04:05:33

使用Hibernate 连接SQL Server 2000的相关文章

远程连接sql server 2000服务器的解决方案

server|服务器|解决 远程连接sql server 2000服务器的解决方案 一 看ping 服务器IP能否ping通. 这个实际上是看和远程sql server 2000服务器的物理连接是否存在.如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确. 二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通. 如telnet 202.114.100.100 1433 通常端口值是1433,因为1433是sql server 2000

1、有关用java连接sql server 2000的一些心得

 最近两天一个同学说连接sql server 2000总是不成功,不懂为什么,上网查了很久也没找到实质性的答案.于是我就接手,想挑战一下这"巨大的挑战".可很不幸,我搞了一天晚上都没成功.刚开始的时候是没有到类,后来发现是没导入包.但问题还是没有解决,出现的.[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket 错误,上网找了很久也没找到答案,后来才发现是没有打补丁.以下就连接sql总结如下几点注意的地

Java连接SQL Server 2000

server   数据库操作现在是项目开发的根本,学习Java首先应该学会怎么样连接数据库,用Java连接数据库可不像用Delphi这类工具那样设几个属性就OK,说简单也简单,说复杂,其实也挺复杂的,而且很麻烦,如果是初学,根本不能保证第一次就连接成功,下面以SQL Server 2000为例,说说Java连接数据库的基本方法,也记录一下心得. 1.下载SQL Server 2000 driver for JDBC       SQL Server 2000 Driver For JDBC Do

.net中webform和winform连接sql server 2000数据库的c#操作类

server|web|数据|数据库 一.这个为c#连接winform注意点:(1)调用时必须引用此类的命名空间(2)类中引用的命名空间using System;using System.Data;using System.Data.SqlClient;(3)调用示例: DataSet ds =new DataSet(); string sql="select * from [user]"; ds=DoDataBase.GetDataSet(sql); dataGrid1.DataSou

远程连接SQL Server 2000服务器的方法

需求如下:需要远程连接外地的SQL Server 2000服务器. 测试条件:一个公网IP,两个静态IP. 具体步骤: 一.ping服务器IP能否ping通 观察远程SQL Server 2000服务器的物理连接是否存在.如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确. 二.在Dos或命令行下输入telnet 服务器IP 端口,看能否连通 如telnet 202.114.100.100 1433 通常端口值是1433,因为1433是SQL Ser

JSP连接SQL Server 2000系统配置_JSP编程

第一步:----安装J2SDK: 到SUN官方站点(http://java.sun.com)下载J2SDK的安装文件:j2sdk-1_4_2_04-windows-i586-p.exe,下载之后安装好J2SDK:安装完之后,设置环境变量:我的电脑---属性---高级---环境变量: 选择---系统变量(S): 设置JAVA_HOME环境变量: 单击---新建,在变量名中输入:JAVA_HOME 在变量值中输入:D:\Java (假设J2SDK安装在目录D:\Java下,反正就是J2SDK的安装目

JSP连接SQL Server 2000系统配置

第一步:----安装J2SDK: 到SUN官方站点(http://java.sun.com)下载J2SDK的安装文件:j2sdk-1_4_2_04-windows-i586-p.exe,下载之后安装好J2SDK:安装完之后,设置环境变量:我的电脑---属性---高级---环境变量: 选择---系统变量(S): 设置JAVA_HOME环境变量: 单击---新建,在变量名中输入:JAVA_HOME 在变量值中输入:D:\Java (假设J2SDK安装在目录D:\Java下,反正就是J2SDK的安装目

Java 实现连接sql server 2000(JDBC数据库访问例子)

server|访问|数据|数据库 刘金龙 04041222 ljlsunny@vip.sina.com   第一种:通过ODBC连接数据库 JAVA语言的跨平台的工作能力(Write Once ,Run Anywhere).优秀的图像处理能力(我相信现在没有那种语言可以超过JAVA在网络上的图形处理能力).网络通信功能.通过JDBC数据库访问技术等等,让我们谁都不可否认JAVA语言是SUN公司对于计算机界的一个巨大的贡献.笔者可以描述这样一个场景:有一天你上网完全可以不用IE 或者NETSCAP

连接SQL Server 2000 慢(用了30秒)

问题描述 连接SQLServer2000慢(用了30秒)代码如下:运行Connect.Open()时用了30秒PublicConnectAsNewSqlClient.SqlConnection'定义通用连接Connect.ConnectionString="server="&Server&";Database="&Database&";uid="&Uid&";Password="