Hibernate3 和 oracle9.2.0.4 出現了一個warn

本文讨论了如何解决log4j在控制台输出WARN错误的问题,包括异常描述、解决方案(更换数据库驱动)、及问题解决后的验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

log4j在控制台上輸出了這樣一個WARN:

14:34:32,171  WARN SettingsFactory:126 - Could not obtain connection metadata
java.sql.SQLException: 不支持的特性
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.dbaccess.DBError.throwUnsupportedFeatureSqlException(DBError.java:689)
at oracle.jdbc.OracleDatabaseMetaData.supportsGetGeneratedKeys(OracleDatabaseMetaData.java:4180)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:123)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
at TeacherTest.main(TeacherTest.java:21)
14:34:32,562  INFO SchemaUpdate:155 - Running hbm2ddl schema update
14:34:32,562  INFO SchemaUpdate:167 - fetching database metadata
14:34:32,906  INFO SchemaUpdate:179 - updating schema
14:34:33,015  INFO TableMetadata:65 - table found: SCOTT.STUDENT
14:34:33,015  INFO TableMetadata:66 - columns: [stu_name, sex, stu_id, age]
14:34:33,015  INFO TableMetadata:68 - foreign keys: []
14:34:33,015  INFO TableMetadata:69 - indexes: [sys_c007660]
14:34:33,046  INFO TableMetadata:65 - table found: SCOTT.T_TEACHER
14:34:33,046  INFO TableMetadata:66 - columns: [titleenum, c_age, c_title, c_id, c_sex, c_name]
14:34:33,046  INFO TableMetadata:68 - foreign keys: []
14:34:33,046  INFO TableMetadata:69 - indexes: [sys_c007663]
14:34:33,046  INFO SchemaUpdate:217 - schema update complete
Hibernate: insert into t_teacher (c_age, c_name, c_sex, c_title, titleEnum, c_id) values (?, ?, ?, ?, ?, ?)


這個warn不影響最後的結果,數據庫裏面也插進去數據了,但是,出現這個異常,看著心裡不爽,想解決這個問題!

用google搜索了下,很多開發者都遇到了這個問題,有解決的,說是數據庫驅動出了問題,我就想換個驅動試試。

在oracle官網上,oracle9i 9.2.0.4 jdbc的驅動,下載下來,將原來的替換掉,這個warn就消失了!哈哈


在Python的logging模块中,`logger.warning``logger.warn`都是用于记录警告级别的日志信息,但它们之间存在一些细微的区别。以下是对这两者的详细比较: 1. **历史背景** - **logger.warning**:这是Python logging模块中一直存在的用于记录警告级别日志的方法。 - **logger.warn**:在早期的Python版本中(如Python 2.6之前),logging模块提供了warn方法用于记录警告级别的日志信息。然而,从Python 2.6开始,该方法被废弃,并推荐使用warning方法代替。 2. **使用方法** - **logger.warning**:这是推荐使用的记录警告级别日志的方法。它接受一个字符串参数作为日志消息,并输出到控制台或指定的日志文件。 - **logger.warn**:虽然在早期版本中可用,但在现代Python编程中已不推荐使用。如果尝试使用该方法,可能会收到弃用警告。 3. **示例代码** - **logger.warning**: ```python import logging logging.basicConfig(level=logging.WARNING) logger = logging.getLogger(__name__) logger.warning("This is a warning message.") ``` - **logger.warn**(不推荐): ```python import logging logging.basicConfig(level=logging.WARNING) logger = logging.getLogger(__name__) logger.warn("This is a warning message.") # 不推荐使用 ``` 综上所述,`logger.warning`是记录警告级别日志的推荐方法,而`logger.warn`已被废弃并不推荐使用。为了保持代码的规范性可读性,建议在新的开发中始终使用`logger.warning`来记录警告级别的日志信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值