Hibernate数据库配置文件中数据库名称错误问题

  之前碰见一个项目部署在武汉,又部署在南京。由于是配合别人做的,数据库的搭建由别人完成,我们只是负责数据库中的几个表的数据处理。以前的数据库名称是projectwh,部署南京时,开始也是使用的projectwh的名称,后来对方重新创建了一个数据库projectnj(projectwh没有删除),我们对应的将Hibernate配置文件中的url中的数据库名称修改了成projectnj,但是发现存取操作的目标仍然会是projectwh中的表格。

  一般想来Hibernate配置文件中应该只有url跟数据库名称相关啊?怎么会出现这种问题。最后全局搜索projectnj才发现,原来对应表格的Hibernate映射文件中也有指明该表格属于哪一个数据库,也就是说Hibernate并没有根据url中的数据库名称来来确定具体使用哪一个数据库,当两个数据库非常类似(用户名和密码一样)时,如果映射文件中的数据库名称写错误了,就会出现程序将按照映射文件中的对应的数据库表格中写入数据。由于映射文件一般都是自动生成的,所以很少注意这个问题。

  总结,当发现程序操作的表格跟预期的数据库中的表格不一致时,不仅要检查url配置,还要检查对应表格的映射文件。

时间: 2024-10-08 19:53:52

Hibernate数据库配置文件中数据库名称错误问题的相关文章

读取配置文件中数据库设置信息来创建connection对象

package com.atguigu.jdbc; import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.Driver;import java.sql.SQLException;import java.util.Properties; import org.junit.Test; public class JDBCTest { /** * 编写一个通用的方法

[原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

(转)Hibernate框架基础——Hibernate API及Hibernate主配置文件

Hibernate的学习路线图 Hibernate API简介 Configuration Configuration类负责管理Hibernate的配置信息,包括如下内容: Hibernate运行的底层信息:数据库的URL.用户名.密码.JDBC驱动类,数据库Dialect,数据库连接池等(对应hibernate.cfg.xml文件). 持久化类与数据表的映射关系(*.hbm.xml文件). 创建Configuration的两种方式: 属性文件(hibernate.properties) Con

No Dialect mapping for JDBC type–4 hibernate查询MySQL中longBlob数据

MySQL数据库中的类型为longBlob 实体类定义为:byte[] 类型 映射文件配置为:type="org.springframework.orm.hibernate3.support.BlobByteArrayType 异常信息: 1 org.hibernate.MappingException: No Dialect mapping for JDBC type: -4 2 at org.hibernate.dialect.TypeNames.get(TypeNames.java:56)

Hibernate之深入Hibernate的配置文件

1.创建Configuration类的对象 Configuration类的对象代表了应用程序到SQL数据库的映射配置.Configuration类的实例对象,提供一个buildSessionFactory()方法,该方法可以产生一个唯一的 SessionFactory类的对象. 根据使用的配置文件不同,得到这个代表了应用程序到SQL数据库的映射配置的Configuration类的对象方法也不同: (1)使用hibernate.cfg.xml配置文件 Configuration  cfg   = 

MongoDB 的配置项在配置文件中进行配置和数据库的备份与恢复

一.mongoDB命令行启动选项配置 mongodb的命令行启动时我们可以选择一些选项来改变配置,具体的选项如下: 1.--dbpath: 每一个mongodb进行就需要一个独立的数据存放目录,如果你在不同的端口启动了多个mongodb进行但是数据存放目录相同就会报错: 2.--port :就是程序的不同监听口,默认是27017 --port=27017 修改不同的端口来启动多个mongdb进程 3.--fork: 创建守护mongodb进程 4.--logpath: 指定日志写出的路劲 --l

SQLServer 报错:用户、组或角色'XXX' 在当前数据库中已存在. 错误:15023解决方法

背景: 最近在迁移SQLServer数据库2008时,新建用户后,做用户映射时. SQLServer 报错:用户.组或角色'XXX' 在当前数据库中已存在. 错误:15023. 下面讲一下解决的方法. 分析:    将数据库恢复到其他服务器时,数据库中包含一组用户和权限,但可能没有相应的登录或者登录所关联的用户可能不是相同的用户.    这种情况被称为存在"孤立用户".此时是不能通过新建登录或者是对同名登录授予对应数据库的"用户"权限来解决登录问题,    因为SQ

SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确 ||尝试在数据库 5 中提取逻辑页 (1:1640) 失败

use test go ALTER DATABASE test SET SINGLE_USER DBCC CHECKDB (test, repair_allow_data_loss) with NO_INFOMSGS go ALTER DATABASE test SET MULTI_USER go 对于单个数据库报错了,运行这个修复不行.后来我在tempdb运行才可以. dbcc checkdb('tempdb') 其实开始的时候还有另一个错误: 尝试在数据库 5 中提取逻辑页 (1:1640)

NHibernate支持的数据库 NHibernate连接配置 hibernate.cfg.xml中的配置

使用下列数据库时hibernate.cfg.xml中的配置 Microsoft SQL Server 2005/2000 配置如下: <?xml version="1.0" ?>  <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >      <session-factory>          <property name="co