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 Files\Microsoft SQL Server JDBC Driver 3.0\sqljdbc_3.0\chs\help\default.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