报表设计器FineReport Weblogic配置JNDI连接
类excel报表开发工具FineReport教程之Weblogic服务器部署

类excel报表开发工具FineReport教程之Weblogic服务器Weblogic服务器部署1.描述1.1FR支持的Weblogic版本及对应JDK版本Weblogic版本对应JDk版本Weblogic8.0JDK1.4Weblogic9.0/9.1/9.2/10JDK1.5Weblogic10gR3/11g JDK6.01.2操作系统Windows、Linux、Unix操作系统。
Linux、Unix下的Weblogic管理控制台和Windows下的界面是一样的,即实现步骤是一样的,所以下面我们以Windows系统下的实现做介绍。
2.实现步骤以下示例环境为Windows7+Weblogic10+jdk1.7,其他版本步骤基本相同,可能每个版本功能位置不同,希望大家能够谅解,仔细找找所在的位置。
2.1复制目录拷贝FineReport安装目录下的WebReport文件夹至服务器(Weblogic所在的服务器)任意目录,如服务器的C:\WebReport。
2.2Weblogic部署FineReport应用启动服务器,打开Weblogic管理控制台,默认地址为http://localhost:7001/console,选择左边的部署菜单,点击右侧的安装按钮进行部署,如下图:调整至FineReport部署位置,即C:\WebReport,选定WebReport,点击“下一步”:选择默认的定位方式不变(将此部署安装为应用程序),“下一步”:使用默认设置直接点击“完成”(也可根据需求点击“下一步”逐步进行设置):注:在部署weblogic过程中,无需更改编码方式,FineReport在定义数据连接时已经对编码进行了处理。
点击左侧的“激活更改”按钮进行提交:看到“激活所有更改。
不需要重新启动”信息时,表示我们已经部署完毕了。
选择刚部署的应用>启动:2.3检测是否部署成功打开浏览器,在地址栏输入http://localhost:7001/WebReport/ReportServer,能成功看到部署成功页面,则表明FineReport应用部署Weblogic成功:weblogic部署问题1.weblogic12.1.1部署问题按照weblogic服务器部署的步骤对weblogic12.1.1进行部署,会出现部署不成功的现象。
FineReport报表明细配置说明复习进程

在FineReport中绘制报表时根据报表不同,用到的功能模块也不尽相同,本文档中以绘制变压器填报报表为例:变压器报表首先分析报表,根据上图中的报表我们分析可以得到:1、将公司合计、其中800千伏、500千伏、220千伏这部分分为一片区域。
2、将广州局和下属变电站、电流站等分为一片区域,该区域内容为自动扩展。
划分区域的规则以相同区域的格式相同、通过sql可以实现为原则。
具体绘制报表模板如下:1、打开FineReport报表设计器,定义数据库连接。
如图1:图1在弹出窗口中,新建数据库连接,如图2:图2数据库连接的类型有2种:JDBC和JNDI。
具体根据项目实际需要配置。
现在我们选择通过JDBC方式,设置好之后,点击【测试连接】,通过即可。
2、新建报表,新建报表有2种方式:a、自己手动绘制报表。
b、通过Excel导入。
通过Excel导入方式步骤如下:如下图:点击【Excel输入】,在弹出的窗口中选择Excel文件文件后,点击【转换】,转换成功后,打开转换后的报表即可。
如下图:自己手动绘制报表步骤如下:点击【文件】-【新建工作簿】,如下图:可以在报表底部新加多张sheet页,其中右边的虚线标示报表打印纸张的右边界,如果超出则会在打印的时候会打到下页纸张上(必须注意)。
当然我们可以通过设置纸张的大小,如下图:其中是标准的纸张大小,也就是说FineReport中的所有报表在页面上展示是什么样,它会按照页面设置中的纸张大小进行打印,也可以称作“所见即所得”。
3、根据变压器报表绘制表头,设置页面大小,如下图:4、同类型的报表单位、时间不同,访问的数据就不同,因此我们需要设置报表参数,如下图:在绘制报表的时候可以直接用引用该报表参数。
5、设置数据集。
如下图:在图中编辑区域直接输入查询数据的sql语句即可,该sql中可以直接通过${报表参数名}来引用报表参数,同时可以设置报表参数的默认值及数据优化。
6、将数据绑定到数据列中。
weblogic配置数据库连接

一、weblogic数据源配置进入到weblogic控制台,找到服务→jdbc→数据源,锁定并编辑后,新增数据源. 进入到新建页面,如下图:修改配置如下:注意,上面的jndi名称,需要在torConfig.xml配置文件中用到点击下一步(此步不需修改配置),再点击下一步,进入到如下页面:修改配置:数据库名称,即oracle的实例名(SID),主机名:可以输入oracle数据库所在机器的IP,端口号,根据实际情况输入,用户名和密码都根据实际生产环境的配置输入.以上配置,可以根据目前的torConfig.xml文件中的数据库连接方式把相应的配置录入到页面即可.如下图为我本机的配置:再点击下一步,出现如下图的页面:根据前一步数据库配置不同,有些数据与下图会不一样,点击测试配置,如果显示连接测试成功即表示配置成功:测试成功后,点击下一步,选择对应的运用服务,点击完成即可.(备注:每次修改保存后、都需要激活更改)激活以后,再次选择jdbc数据源,并点击“锁定并编辑”,选择对应的数据源,点击进入,会到以下页面:选择连接缓冲池,进入以下页面:调整初始容量为:30,最大容量为250(目前客户生产环境,设置的oracle最大连接数为300),容量增长为:15;语句缓存大小为:30;根据上面的配置调整后,激活更改,weblogic的数据源配置即可完成二、tor数据库连接配置把TORConfig.xml文件中目前的配置,如下代码,注释掉:<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close"><property name="driver"><value>oracle.jdbc.driver.OracleDriver</value></property><property name="driverUrl"><value>jdbc:oracle:thin:gzldoa/*************.1.201:1521:ldoadev</value></property><property name="user"><value>gzldoa</value></property><property name="password"><value>toone</value></property><property name="alias"><value>gzwork</value></property><property name="houseKeepingSleepTime"><value>90000</value></property><property name="prototypeCount"><value>5</value></property><property name="maximumConnectionCount"><value>100</value></property><property name="minimumConnectionCount"><value>10</value></property><property name="trace"><value>true</value></property><property name="verbose"><value>true</value></property></bean>新增jndi连接方式配置:<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName"><value>ldjoa</value></property></bean>后保存即可,注意需要把上面的ldjoa改成刚在weblogic控制台配置的jndi名称。
Weblogic监控jndi泄露连接的方法

Weblogic监控jndi泄露连接的方法1说明如果后台出现“No resources currently available in pool iscjndi to allocate to applications”类似这个错误,说明weblogic 的数据库连接池满了:可以考虑通过此方法排查一下具体是程序中的什么方法导致。
查看数据源监控页面,如果“当前活动连接数”超过系统配置的最大数字(系统默认是15,优化之后为150),就会出现以上错误:最大连接数配置:2配置一:设置“非活动连接超时”参数设置后连接在指定时间内(单位:秒)没有活动的话,WebLogic会将之释放并回收到连接池。
设置步骤:“数据源-(数据源名称)-连接池-非活动连接超时”1、点击“数据源-(数据源名称)”2、选择“连接池”3、展开高级内容4、找到高级中“非活动连接超时”参数,设置为1004、保存配置3配置二:开启weblogic数据库连接泄漏日志设置步骤:“数据源-(数据源名称)-诊断-概要文件连接使用情况”1、点击“数据源-(数据源名称)”2、点击“诊断”3、选中“概要文件连接情况”、“概要文件连接泄露”:4、保存配置4查看日志在系统中操作,重现一下相关问题,同时监控weblogic日志,日志中会出现类似以下格式的异常信息,提供研发找到具体class进一步排查泄露原因。
注意:操作之后等待一段时间,weblogic自动回收连接时才产生日志,不是操作的时候立即产生。
日志文件位置:/app/weblogic/user_projects/domains/【domain名称】/servers/【server名称】/logs/【server名称】.log比如总部测试环境的日志文件位置:/app/weblogic/user_projects/domains/mpsm_domain/servers/mpsmServer/logs/mpsmServer.log####<2016-11-28 上午11时20分02秒CST> <Info> <Common> <mpsm> <mpsmServer> <[ACTIVE] ExecuteThread: '1' for queue:'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1480303202391> <BEA-000628> <Created "1" resources for pool "iscjndi", out ofwhich "1" are available and "0" are unavailable.>####<2016-11-28 上午11时20分12秒CST> <Warning> <JDBC> <mpsm> <mpsmServer> <[ACTIVE] ExecuteThread: '3' for queue:'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1480303212879> <BEA-001153> <Forcibly releasing inactive/harvested connection"weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@1048" back into the data source connection pool "iscjndi", currently reservedby: ng.Exceptionat mon.internal.ConnectionEnv.setup(ConnectionEnv.java:366)at mon.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:373)at mon.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:339)at mon.internal.ConnectionPool.reserve(ConnectionPool.java:469)at mon.internal.ConnectionPool.reserve(ConnectionPool.java:363)at mon.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:125)at mon.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:158)at weblogic.jdbc.pool.Driver.connect(Driver.java:132)at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:658)at weblogic.jdbc.jts.Driver.connect(Driver.java:127)at mon.internal.RmiDataSource.getConnectionInternal(RmiDataSource.java:548)at mon.internal.RmiDataSource.getConnection(RmiDataSource.java:513)at mon.internal.RmiDataSource.getConnection(RmiDataSource.java:506)at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81) at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:116)at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUpdate(NativeSQLQueryPlan.java:202)at org.hibernate.impl.SessionImpl.executeNativeUpdate(SessionImpl.java:1310)at org.hibernate.impl.SQLQueryImpl.executeUpdate(SQLQueryImpl.java:396)at erPostReleDao.updateUserBizRoleNum(UserPostReleDao.java:360)at erPostReleService.saveUserPost(UserPostReleService.java:77)at com.sgcc.isc.authorize.businessduty.action.BusinessDutyController.saveUserPost(BusinessDutyController.java:314)at com.sgcc.isc.authorize.businessduty.action.BusinessDutyController$$FastClassByCGLIB$$f3bff139.invoke(<generated>)at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)at org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:42)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)at com.sgcc.isc.authorize.sync.aop.ServerAop.aroundMethod(ServerAop.java:138)at sun.reflect.GeneratedMethodAccessor639.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at ng.reflect.Method.invoke(Method.java:597)at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)at com.sgcc.isc.authorize.businessduty.action.BusinessDutyController$$EnhancerByCGLIB$$94f3347a.saveUserPost(<generated>)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at ng.reflect.Method.invoke(Method.java:597)at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)atorg.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) atorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) atorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)at mon.filter.AuthorFilter.doFilter(AuthorFilter.java:57)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)at mon.filter.CurrentThreadContextInitFilter.doFilter(CurrentThreadContextInitFilter.java:43)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748)at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714)at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283)at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182)at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1491)at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)。
weblogic配置JNDI数据源

weblogic配置JNDI数据源一、在WebLogic新建针对Oracle数据库的JNDI数据源进入weblogic管理控制台,此处是远程访问:http://192.168.1.144:7001/console点击左侧【域结构】→【base domain】→【服务】→【数据源】然后点击右侧【新建】→【般数据源】,如下图所示:填写JDBC数据源的【名称】、【jndi名称】,选择数据库类型,如选择【oracle】,下一步选择Oracle数据库的驱动程序,如下图所示:这里选择【Oracle' s Driver (Thin)for Instance connections;Version:Any】,点击【下一步】按钮,进入下一个配置步骤:这里使用默认配置即可,点击【下一步】按钮,进入下一个配置步骤:如下图所示:填写数据库的连接信息:要连接的数据库,数据库的IP地址,连接数据库时使用的端口号,登录数据库时使用的用户名和密码点击【下一步】按钮,进入下一个配置步骤:如下图所示:连接测试结果如下:点击【下一步】按钮,进入下一个配置步骤:如下图所示:点击【完成】,这样WebLogic就会创建一个新的JDBC数据源,如下图所示:到此,在WebLogic新建针对Oracle数据库的JNDI数据源就算是全部完成了。
数据源创建之后,我们就可以在应用程序中使用数据源了。
二、在WebLogic新建针对MySQL数据库的JNDI数据源上面我们已经配置好了一个针对Oracle数据库的JNDI数据源,这里我们在新建一个针对MySQL数据库的数据源,配置步骤和上述针对Oracle数据库创建的JDBC数据源大部分是一样的,针对不一样的地方给出如下的截图说明:到此,在WebLogic新建针对MySQL数据库的JNDI数据源就算是全部完成了。
查看jndi树,可以看到JNDI树上面挂载了两个数据源,如下图所示:三、在应用程序中使用WebLogic配置JNDI数据源3.1、创建测试项目新建一个测试项目,如下图所示:3.2、编写测试代码编写一个WebLogicJndiUtil工具类,用于从WebLogic的JNDI容器中取出数据源。
FineReport中如何进行Informix数据库连接

FineReport中如何进行Informix数据库连接报表开发工具Finereport中,对于Informix数据库,定义数据连接处进行如下配置:数据库:Others驱动器:rmix.jdbc.IfxDriverURL:jdbc:informix-sqli://localhost:port/mydatabase:INFORMIXSERVER=mydatabase 用户名:username密码:password说明:1.在我们的WebReport工程下的WEB-INF\lib下,已有JDBC驱动包:Informix的jar包,其名字为ifxjdbc.jar。
2.选择了数据库类型是Others之后,默认会带出来ODBC的驱动写法。
驱动器一定要改。
rmix在安装时需要定义一个用户名和密码,和Oracle的安装是类似的。
所以定义连接时,用户名密码一定不是空的。
如果有用户反映说没有用户名密码,也必须要创建一个,否则是连接不成功的。
1.jdbc连接Informix中文显示乱码informix不支持gbk,jdbc连接时,中文会显示乱码,报错informix Locale not supported,那么怎么才能使用jdbc连接informix呢?1.1解决思路自己手动定义NEWCODESET设置。
NEWCODESET格式:NEWCODESET=JDK-encoding,Ifx-codeset,Ifx-codeset-numberJDK-encoding对应java中的encoding是gbk;ifx-codeset对应数据库中的编码格式,是ISO885901;ifx-codeset-number对应informix数据库编码id,手册中8859-1对应的是819。
修改JDBC连接的url配置如下:jdbc:informix-sqli:ip:port/test:informixserver=test;NEWCODESET=gbk,885 9-1,819如果informix的语言环境为GB18030,其jdbc的URL链接参数设置如下:jdbc:informix-sqli://ip:8090/sky:INFORMIXSERVER=test;DB_LOCALE=zh_cn. GB18030-2000;CLIENT_LOCALE=zh_cn.GB18030-2000;NEWCODESET=GB1803 0,GB18030-2000,5488;DBDATE=Y4MD。
weblogic spring jndi配置
weblogic spring jndi配置1在spring配置文件applicationContext.xml添加如下代码,注释掉原有JDBC数据源(如果有的话)://连接本地weblogic JNDI数据源Java代码'dataSource'class='org.springframework.jndi.JndiObjectFactoryBean'> 'jndiName'> jdbc/cdcrip'jndiName'> java:comp/env/jdbc/cdcripjdbc/cdcrip java:comp/env/jdbc/cdcrip2在spring配置远程JNDI时需要如下步骤:jar:添加jrmpclient.jar否者会启动时会抛异常(不能找到相应的类)rmi:启动报java.rmi.ConnectException: Connection refused to host:远程IP时需配置服务器端相应操作如下:在linux上运行了hostname -i命令显示:127.0.0.1 (如果没有显示,则事先没有配置本地hostname)于是vi /etc/hosts修改或新增为192.168.40.222另外在weblogic启动脚本上添加:-Djava.rmi.server.hostname=192.168.40.222//连接调用远程weblogic JNDI数据源Java代码'dataSource'class='org.springframework.jndi.JndiObjectFactoryBean'> 'jndiName'> jdbc/cdcrip'jndiEnvironment'>'java.naming.provider.url'>t3://远程IP:7001'java.naming.factory.initial'>weblogic.jndi.WLInitialContext Factory'java.naming.security.principal'>weblogic'java.naming.security.credentials'>weblogicjdbc/cdcrip t3://远程IP:7001weblogic.jndi.WLInitialContextFactory weblogic weblogic。
WEBLOGIC 配置 JDBC 数据源
配置 JDBC 数据源目的本教程将向您介绍为 Oracle WebLogic Server 实例配置数据源的步骤。
在完成本教程的学习后,您应该能够:创建 JDBC 数据源在服务器的 Java 命名和目录接口 (JNDI) 树中找到 JDBC数据源使用简单 Web 应用程序对 JDBC 数据源的使用进行测试所需时间大约 30 分钟主题本 OBE 教程包括下列主题:概述情景在 Oracle 数据库中设置模式启动 Oracle WebLogic Server 实例配置 JDBC 数据源总结相关信息查看屏幕截图将鼠标置于此图标上以加载和查看本教程的所有屏幕截图。
(警告:此操作会同时加载所有屏幕截图,网速较慢时,响应时间可能会比较长。
)注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
通过提供的屏幕截图,您可以了解如何配置并管理 Oracle WebLogic Server 中的特定功能,但这些屏幕截图不能反映用户的具体环境。
概述数据源对象支持 Java Database Connectivity (JDBC) 客户端从 JDBC 池获取DBMS 连接。
JDBC 数据源中的连接池包含一组由应用程序保留、使用并在随后释放入池中的 JDBC 连接。
连接池和其中的连接在连接池注册的时候进行创建。
连接池通常在启动 WebLogic Server 或将数据源部署到新目标时进行注册。
在本 OBE 中,您将创建一个连接到 Oracle 数据库的 dizzyworldDS 数据源。
返回主题列表情景您是 Dizzyworld Corporation 的应用服务器管理员。
您已经为您的企业安装并配置了 Oracle WebLogic Server。
有关如何安装并配置 Oracle WebLogic Server 的信息,请参阅以下 OBE:安装并配置 Oracle WebLogic Server为 Oracle WebLogic Server 配置受管理实例Dizzyworld 的系统架构师决定创建 dizzyworldDS 数据源对象并连接到Oracle 数据库中的 HRDATA。
JNDI方法连接数据库
JNDI方法连接数据库用了JNDI之后的做法:首先,在在J2EE容器中配置JNDI参数,定义一个数据源,也就是JDBC引用参数,给这个数据源设置一个名称;然后,在程序中,通过数据源名称引用数据源从而访问后台数据库1.创建一个web工程,把mysql的驱动包放到lib中,或者在Tomcat6.0的安装目录下的lib文件夹放入mysql的驱动包。
2. 在Tomcat6.0的安装目录下,找到conf/ context.xml,打开context.xml进行修改:在<context> </context>中加入如下内容:<Context><Resource name=" test"//JNDI的名字随便写auth="Container"type="javax.sql.DataSource"driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/info "username="root" //访问数据库的用户名password="dp" //数据库密码maxActive="10" //连接池的最大数据库连接数。
设为0表示无限制。
maxIdle="30" //maxIdle,最大空闲数,数据库连接的最大空闲时间。
超过空闲时间,数据库连接将被标记为不可用,然后被释放。
设为0表示无限制。
maxWait="10000" /> //maxWait最大建立连接等待时间。
如果超过此时间将接到异常。
设为-1表示无限制。
</Context>2 在项目的WEB-INF/web.xml,中修改web.xml:在<web-app></wep-app>中加入<resource-ref><description>DB Connection </description>//描述(可不要)<res-ref-name>test</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref>4.JSP测试代码index.jsp<%@page import="java.sql.*"%><%@page import="javax.sql.*"%><%@page import="javax.naming.*"%><%try {Context ctx = new InitialContext();DataSource ds = (DataSource)ctx.lookup("java:comp/env/message");//获得数据源Connection conn = ds.getConnection();Statement st = conn.createStatement();ResultSet rs = st.executeQuery("select * from tb_message");while(rs.next()){out.println(rs.getString(3) + "<br/>");}out.println("测试成功");} catch (NamingException e) { e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}%>。
finereport控件绑定参数
finereport控件绑定参数Finereport控件绑定参数是指在Finereport报表设计过程中,将数据源与控件进行关联,实现数据的动态显示和交互操作。
在这篇文章中,我将逐步解释Finereport控件绑定参数的过程,并介绍一些常用的绑定方式和技巧。
第一步:准备数据源在开始设计报表之前,我们需要准备数据源。
数据源可以是数据库、Excel文件或者其他数据文件。
Finereport支持多种数据源类型,我们可以根据具体的需求选择合适的数据源。
第二步:创建控件在Finereport的设计器中,我们可以通过拖拽操作创建各种控件,如文本框、表格、下拉框等。
在创建控件的同时,我们可以设置控件的样式和布局。
第三步:绑定数据源在控件创建完成后,我们需要将控件与数据源进行绑定。
这样,控件才能够获取数据并显示在报表中。
常用的绑定方式有以下几种:1. 直接绑定:可以直接将数据源字段拖拽到控件中,Finereport 会自动根据控件类型进行数据绑定。
这种方式适用于简单的控件和数据。
2. 表达式绑定:如果需要对数据源进行一些计算或者逻辑操作,我们可以使用表达式绑定。
在表达式中,我们可以使用各种函数和运算符对数据进行处理,然后将结果显示在控件中。
3. 参数绑定:参数绑定是指将控件与报表的参数进行关联。
参数是在报表设计时定义的变量,我们可以在运行时通过修改参数值来动态改变控件的显示。
接下来,我们将详细介绍参数绑定的使用方法和一些常见的应用场景。
第四步:定义报表参数在报表设计器中,我们可以通过点击参数管理器来定义报表参数。
参数可以是字符串、数字、日期等类型。
我们可以为参数设置默认值、范围和校验规则等属性。
第五步:绑定参数到控件在控件的属性面板中,我们可以找到参数绑定的选项。
通过选择对应的参数,我们可以将参数与控件关联起来。
此时,控件会自动根据参数的值进行数据更新和显示。
第六步:参数交互参数交互是指通过修改参数的值来实现控件的动态变化和交互操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
报表设计器FineReport Weblogic配置JNDI连接
1. 制作报表的原理
在设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成JNDI连接,然后配置好服务器中的JNDI连接,然后按照接下来所要说的部署weblogic服务器,这样就可以通过WEB浏览器浏览到使用JNDI连接的报表了。
WEBLOGIC的JNDI资源应用与WEBSPHERE的JNDI资源应用很类似,所以这里就简略地进行讲解,具体的步骤可以参照上一章WEBSPHERE的JNDI资源应用。
1.1 制作使用JNDI连接的报表
首先使用jdbc方式连接数据库orcl10g,然后使用orcl10g数据库中的一个表制作一个模板jndi.cpt保存可以预览,如下图:
然后,回到定义数据库连接,新建一个JNDI方式的数据连接orcl10g,将jndi的名字命名为oracle,删掉前面建的连接方式JDBC的orcl10g数据连接,确定保存。
如下图:
保存模板,此时的模板jndi.cpt是无法预览的,因为我们只定义了jndi的名字,没有建立jndi连接。
注:只需要设置JNDI的名字,上下文里面的可以省略。
1.2 WEBLOGIC中的JNDI连接配置
登陆WEBLOGIC的管理平台,在域结构里面选择服务Services,选择Jdbc数据源,新建Connectionpool
设置数据源JNDI名称为oracle(即制作模板时定义的JNDI名字),选择数据库类型及驱动点击“下一步”,如下图:
事务选项根据自己要求定义,在此默认,点击“下一步”配置连接属性:数据库名,URL,用户名及密码,建立weblogic 10 至oracle 10g的物理连接。
测试刚定义的数据源连接:点击下一步,weblogic 服务器会呈现之前我们配置好的数据源,并提供连接测试,点击“测试配置”,弹出消息“连接测试成功”说明配置正确,点击“下一步”,部署新建的JDBC数据源:选中需要部署该数据源的服务器,点击“完成”。
如下图:
服务器端的数据源配置好了,激活配置后部署的应用就能通过“oracle”这个桥梁(JNDI名字)与oracle数据库连接。
1.3 WEBLOGIC中的Web应用部署
接下来我们选择%FineReport%/WebReport/Web-INF文件夹下的web.xml,在其中添加一部分内容。
<resource-ref>
<description>Oracle DB connection</description>
<res-ref-name>oracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
然后将WebReport工程部署到WEBLOGIC服务器上,具体部署过程请参照FineReport帮助文档中WEBLOGIC服务器的部署,部署成功以后我们打开浏览器,填入URL:http://localhost:7001/WebReport/ReportServer?reportlet=jndi.cpt。
如模板运行成功,则说明jndi配置成功了。