账号建了那么久,第一次发博客,只是因为遇到了一个意外的错误,结果搜查了,发现既然还是一个BUG,我不知道我为什么和BUG那么有缘,虽然不算多,学Java一年多快2年了,遇到了好多次BUG。决定这次就给它写下来。
实体对象:
package org.anno.bean;
import javax.persistence.Entity;
import javax.persistence.Id;
/**部门实体 @Table(name = "DEPT")可省略*/
@Entity
public class Dept {
/**部门编号*/
private int deptNo;
/**部门名称*/
private String dName;
/**部门地址*/
private String loc;
@Id
public int getDeptNo() {
return deptNo;
}
public void setDeptNo(int deptNo) {
this.deptNo = deptNo;
}
public String getdName() {
return dName;
}
public void setdName(String dName) {
this.dName = dName;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
}
无需实现注解,只需要指定数据库中的字段与实体中的属性命名一致就可以自动匹配。
BUG的出现位置:
在Hibernate3中使用Hibernate连接数据库,使用的jar包连接数据库SQLSERVER会出现错误,
java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.getJDBCMajorVersion()I
网上查找资料发现原因是microsoft(微软)提供的SqlServer数据库驱动存在bug。(注意:java代码调原驱动连接数据库是没有问题的,搭配hibernate会有此问题。) 需要换一种驱动连接,使用jtds这种驱动,就可以了。
解决方法:
在浏览器中输入下载地址:http://sourceforge.net/projects/jtds/files/,下载jtds解压得到jtds-1.2.5.jar,引用到eclipse中项目目录下(去除原驱动引用),更改 hibernate配置文件:
原驱动连接配置:
<property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
<property name="connection.url">jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=hibernate</property>
更改jtds连接:
<property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="connection.url">jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=hibernate</property>
(上文查找了一些其他的资料)
源代码放在压缩包里 可以供大家参考
分享到:
相关推荐
通过Hibernate,开发者无需直接编写SQL语句,而是使用Java对象来操作数据,从而降低了数据库操作的复杂性。 2. **版本4.2.4.Final**:这是Hibernate的一个稳定版本,它包含了自4.2系列以来的一系列改进和修复,确保...
在SSH(Spring、Struts、Hibernate)框架中,Hibernate作为持久层的解决方案,极大地简化了数据库操作的复杂性。SSH框架的组合使得企业级应用开发更加高效和便捷。 "hibernate-release-5.2.10" 是Hibernate的一个...
Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库编程。"hibernate-release-5.0.6.Final.zip"是一个包含2015年最新Hibernate版本的压缩包...
Hibernate是一款流行的Java语言编写的开源对象关系映射(ORM)框架,它将Java对象映射到关系数据库中,从而使得开发者能够以面向对象的方式来操作数据库。Hibernate 3.2作为该框架的一个版本,具备了当时最为先进的...
Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库,极大地简化了数据访问层的编码工作。此压缩包“hibernate-4.3.9(最新稳定版)(jar)”提供了Hibernate框架的4.3.9...
4. **配置与环境**:使用Hibernate 3.6.6需要配置Hibernate的属性文件(如`hibernate.cfg.xml`),设置数据库连接信息,以及实体类的映射文件(如`.hbm.xml`或使用注解)。 5. **实体类和映射**:在Hibernate中,...
进一步,Hibernate提供了Session接口,它是操作数据库的主要入口。Session负责管理实体的状态,包括瞬时态、持久态和脱管态。当我们调用`save()`或`persist()`方法时,实体进入持久态;`flush()`方法则将内存中的...
3. **实体管理**:Hibernate通过实体类来映射数据库表,实体类上使用注解如`@Entity`、`@Table`、`@Id`等来定义数据库映射关系。实体之间的关系也可以通过注解如`@OneToOne`、`@OneToMany`、`@ManyToOne`、`@...
4. **HQL与 Criteria 查询**:提供了Hibernate查询语言(HQL)和Criteria API,这两种面向对象的查询方式可以更方便地操作数据库。 5. **事务管理**:集成了JTA和JPA的事务策略,提供了强大的事务处理能力。 6. **...
对象关系映射(ORM)是将关系数据库的数据模型映射到面向对象模型的技术,使得开发人员可以使用面向对象的编程语言来操作数据库,而无需深入了解SQL语法。这大大提高了开发效率,并减少了由于SQL错误可能导致的问题...
Hibernate是Java平台上的一款开源对象关系映射(ORM)框架,它允许开发者将数据库操作与业务逻辑解耦,通过面向对象的方式进行数据操作。这个“hibernate4.2.2最终版jar包”包含了所有用于开发基于Hibernate 4.2.2...
Hibernate是Java领域中一款广泛应用的关系对象映射框架,它允许开发者使用面向对象的方式来操作数据库,大大简化了数据访问层的代码。在这个`hibernate-release-5.4.15.Final.zip`压缩包中,包含的是Hibernate ...
为了使用Hibernate与数据库交互,首先需要配置数据库连接。这通常在`hibernate.cfg.xml`文件中完成,需要指定以下参数: - **driver_class**: 指定数据库驱动类名。 - **url**: 数据库URL。 - **username**: 数据库...
Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来操作数据库,将数据库的操作转化为对Java对象的操作,极大地简化了数据访问层的代码编写。 2. **版本4.3.10的特点**: Hibernate ...
通过ORM,Hibernate将数据库中的表映射成Java对象,使得开发者可以使用面向对象的方式来操作数据库,而无需编写大量的SQL语句。 **主要功能** 1. **对象关系映射(ORM)**:Hibernate自动将Java对象和数据库表之间...
使用Hibernate,开发者可以避免编写大量的SQL语句,而是通过Java对象直接操作数据库,提高了开发效率和代码的可维护性。 SLF4J(Simple Logging Facade for Java)是一个日志门面接口,它为各种日志框架,如Logback...
通过 Hibernate,开发人员可以使用面向对象的方法来处理数据库操作,而无需直接编写 SQL 语句。 #### 二、版本信息 本中文文档对应 Hibernate 版本为 3.1.2。在该版本中,包含了许多新特性、性能优化以及 bug 修复...
六、操作数据库 1. 保存(Save):`session.save(entity)`,为新对象生成唯一标识。 2. 更新(Update):`session.update(entity)`,已存在的对象更新到数据库。 3. 删除(Delete):`session.delete(entity)`,从...
Hibernate是一款开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的编程方式来操作数据库,极大地简化了Java应用程序中的数据访问层。在给定的`hibernate-3.1.3.zip`文件中,包含的是Hibernate 3.1.3版本的...