【J2EE】Hibernate

  Hibernate是面向Java环境的对象/关系数据库映射工具,管理Java应用和数据库之间的映射关系,提供数据查询和获取数据的方法,可以大幅减少使用JDBC处理数据持久化的时间。

  使用Eclipse自动工具,Hibernate的用户比较简单,步骤如下:

 1、Eclipse创建动态网页项目

在MS SQL Server的pubs数据库中创建数据表t_info,SQL代码如下:

use pubs;
create table t_info
(
     Id integer not null primary key,
     message varchar(50) not null           
)

2、创建对数据库的连接

在使用Hibernate进行开发之前,需要一个能够访问的Database Explorer连接配置。选择菜单window-->Show View-->Data Source Explorer

选择Database Connections,右键new

点击next

初次使用Hibernate连接SQL Server2000,新建驱动定义,提示Unable to locate JAR/zip in file system as specified by the driver definition: msbase.jar.

 这里需要安装SQL Server2000对应的JDBC驱动

首先:查看SQL Server2000的具体版本信息

在SQL 查询分析器中执行SQL脚本:Select @@Version 

查询结果如下:

Microsoft SQL Server 2000 - 8.00.194 (Intel X86) Aug 6 2000 00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Personal Edition on Windows NT 5.1 (Build 2600: Service Pack 3)

然后:下载对应版本的驱动:

下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=21599

解压zip包,由于当前开发环境为jre7,因此选用sqljdbc4.具体如何使用可以查看帮助,里面详细介绍了:C:Program FilesMicrosoft SQL Server JDBC Driver 3.0sqljdbc_3.0chshelpdefault.htm

   导入驱动库文件

  设置数据库连接信息

接下来测试连接是否成功

连接失败,提示java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver

初步分析,原因应该是驱动未正确识别,通过检查驱动定义中Driver Class写错了:

当前Eclipse传教数据连接的Driver Class默认值是:com.microsoft.jdbc.sqlserver.SQLServerDriver

从SQL Server JDBC帮助中可以看到,这里应该是:com.microsoft.sqlserver.jdbc.SQLServerDriver

修改Driver Class后,重新测试连接:提示ping fail,具体信息如下:

java.lang.Exception: Connection failed with unspecified error.
at org.eclipse.datatools.connectivity.DriverConnectionBase.internalCreateConnection(DriverConnectionBase.java:110)
at org.eclipse.datatools.connectivity.DriverConnectionBase.open(DriverConnectionBase.java:54)
at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.open(JDBCConnection.java:96)
at org.eclipse.datatools.enablement.msft.internal.sqlserver.connection.JDBCSQLServerConnectionFactory.createConnection(JDBCSQLServerConnectionFactory.java:27)
at org.eclipse.datatools.connectivity.internal.ConnectionFactoryProvider.createConnection(ConnectionFactoryProvider.java:83)
at org.eclipse.datatools.connectivity.internal.ConnectionProfile.createConnection(ConnectionProfile.java:359)
at org.eclipse.datatools.connectivity.ui.PingJob.createTestConnection(PingJob.java:76)
at org.eclipse.datatools.connectivity.ui.PingJob.run(PingJob.java:59)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

 参考资料:

http://blog.csdn.net/jimmy609/article/details/12560381;http://www.cnblogs.com/qixin622/archive/2009/07/02/1515529.html

原文地址:https://www.cnblogs.com/wintergrass/p/3872357.html