FineReport更换数据库连接

本文介绍了一个位于WEB-INF/resources/datasource.xml的配置文件,用于设置数据库连接参数,包括URL、驱动、用户名及加密后的密码。文章还展示了如何通过修改该文件来调整数据库连接设置。

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

配置文件保存在WEB-INF下的resources目录下的datasource.xml中,修改数据库连接,可以选择直接修改,但是这个的密码保存的是加密后的

<?xml version="1.0" encoding="UTF-8"?>
<DatasourceManager xmlVersion="20151125" releaseVersion="8.0.0">
<ConnectionMap>
<Connection name="155" class="com.fr.data.impl.JDBCDatabaseConnection">
<DatabaseAttr originalCharsetName="UTF-8" newCharsetName="UTF-8"/>
<JDBCDatabaseAttr url="jdbc:mysql://localhost:3306/test" driver="com.mysql.jdbc.Driver" user="test" password="___007d002b007e0068001100b400590073" encryptPassword="true">
<DBCPAttr/>
</JDBCDatabaseAttr>
</Connection>
</ConnectionMap>
<TableDataMap>
<TableData name="员工信息表" class="com.fr.data.impl.DBTableData">
<Parameters/>
<Attributes maxMemRowCount="-1"/>
<Connection class="com.fr.data.impl.NameDatabaseConnection">
<DatabaseName>
<![CDATA[FRDemo]]></DatabaseName>
</Connection>
<Query>
<![CDATA[SELECT * FROM 员工信息表]]></Query>
</TableData>
<TableData name="用户信息表" class="com.fr.data.impl.DBTableData">
<Parameters/>
<Attributes maxMemRowCount="-1"/>
<Connection class="com.fr.data.impl.NameDatabaseConnection">
<DatabaseName>
<![CDATA[FRDemo]]></DatabaseName>
</Connection>
<Query>
<![CDATA[SELECT * FROM [userinfo]A]]></Query>
</TableData>
<TableData name="staff" class="com.fr.data.impl.EmbeddedTableData">
<Parameters/>
<DSName>
<![CDATA[]]></DSName>
<ColumnNames>
<![CDATA[name,,.,,password,,.,,fullname,,.,,department,,.,,position,,.,,salary,,.,,email]]></ColumnNames>
<ColumnTypes>
<![CDATA[java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String]]></ColumnTypes>
<RowData>
<![CDATA[NKVO]A_E\fhf@,Lh5R"Wk)aeSHEE>f0'?\h3FoeW^e.=J,-RCB%&WCC)TSZ'70Y@fMV/IO+:'
V'@\EVd1pRJGMVTg5/J`PP]A7Oej&dotOn:]AZZh9qJr7l&t?g0^d]A02d3^`,n^NGQ/prU0gpn
mSERt,;O$j;5VHUgXi29e(3.869KoK/Hi&GYd@dT1=L;5n"B@BoN5-coKT[Y(NiEpc3QBFK/
0:hkfe6'nOaW(TK,SCNRN]A_CL[1"bhDt+D=Z0\!(AS`Q((VsHLGllWM\XuCS'f)BguY!g^u'
"d]Au'`:OAukOiij#9&rP6=i/?)lBBm--dUR9!o7nHhnAn5A6f3/1HgeJn,0`<=FBZ1t:X_J:
^=+=!9b=<TF@g5sk)FJCIiA*V]Au$^NL*^LE(%MtJ'>.T0mZ8Gf"(62dSBmH%JR`2f_fA1?KJ
se+S4dHH7Ut:'g+%"XY+h\Cb.lBsk@?69<KZ8W~
]]></RowData>
</TableData>
<TableData name="上报用户" class="com.fr.data.impl.EmbeddedTableData">
<Parameters/>
<DSName>
<![CDATA[]]></DSName>
<ColumnNames>
<![CDATA[一级用户,,.,,二级用户,,.,,三级用户]]></ColumnNames>
<ColumnTypes>
<![CDATA[java.lang.String,java.lang.String,java.lang.String]]></ColumnTypes>
<RowData>
<![CDATA[.k]A)iairdebf`Z?%*?iWWldlV9.pJ^#bc:389nqsVb^nZ6i\W>SsfoI!rr~
]]></RowData>
</TableData>
</TableDataMap>
</DatasourceManager>


所以,最好的办法是直接将这个文件覆盖,重启服务

### FineReport 连接数据库失败的原因分析 当FineReport尝试连接SQL Server时,可能会遇到`com.microsoft.sqlserver.jdbc.SQLServerException:到主机的TCP/IP连接失败`这样的错误信息[^1]。此问题通常源于以下几个方面: - **网络配置不当**:如果防火墙阻止了必要的端口或者服务器未启动相应的服务,则可能导致此类错误发生。 - **驱动程序版本不匹配**:使用的JDBC驱动程序与目标数据库版本之间存在兼容性差异也会引发上述异常情况。 针对这些问题的具体解决方案包括但不限于: #### 配置检查 确认SQL Server实例正在运行,并且允许远程访问;确保客户端机器能够解析并到达指定的目标地址(即可以通过ping命令测试连通性)。另外还需验证SQL Server是否启用了TCP/IP协议以及对应的监听端口号设置正确无误[^2]。 #### JDBC URL调整 对于某些特定场景下可能出现的问题,适当修改JDBC连接字符串中的参数也可能有所帮助。例如增加信任服务器证书选项或更改加密模式等措施均有助于排除潜在的安全认证障碍。 ```sql jdbc:sqlserver://localhost:1433;databaseName=YourDatabase;encrypt=true;trustServerCertificate=true; ``` #### 数据源命名一致性维护 在多租户环境下部署应用时常会碰到因数据源名称不符而引起的连接故障。因此,在设计阶段就要特别注意保持前端界面所设定的数据源标识符同实际物理存储位置的一致性,防止出现类似“监听器不识别java应用程序中定义的数据库名称”的状况[^3]。 #### SQL语句规范遵循 随着现代关系型数据库管理系统对标准的支持日益严格化,以往那些较为宽松甚至带有瑕疵的查询表达方式现在很可能因为不符合最新的语法规定而导致执行失败。特别是像MySQL这类产品引入了更加严格的`sql_mode`控制机制之后,开发人员应当及时更新自己的代码逻辑以适应这些变化[^5]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值