tomcat8设置数据源

tomcat8设置数据源
tomcat8设置数据源

简介

为Tomcat配置数据源是指为Tomcat配置可以访问的数据库。在配置了数据源之后,用户就可以通过web应用(如JSP网页)访问配置好的数据库,进行数据库操作。本文介绍了在Tomcat上配置数据源的方法。

配置数据源的准备工作

在配置数据源之前,我们先来进行基本的准备:

1.下载并安装Tomcat,在apache的网站上下载Tomcat并进行,这里使用的是Tomcat8.0.9。在启动Tomcat8之后,我们可以访问http://localhost:8888/来访问Tomcat服务器。如显示下面的网页,说明Tomcat 服务器工作正常。

2.准备数据库服务器。我们使用的是MySql。版本为mysql-5.1.27。

在数据库服务器中建立一个新的数据库,名为test,然后创建两张表teacher和student。我们在后面配置完数据源后会访问这两张表。

3.将数据库的驱动文件拷贝到Tomcat的lib目录下,如下图所示。

Tomcat8配置数据源

Tomcat8配置数据源的方法有三种:

一,将web应用目录copy到webapp目录下

Tomcat对存放在webapp目录中的web应用会进行自动部署。

我们首先建立一个简单的web应用。这个web应用的目录名为aa,这个应用很简单,它有2个jsp网页,一个简单的显示了“欢迎你”三个字。另一个对配置的数据库进行访问。下图是已经copy到webapp目录下的web应用aa的内容:aa.jsp会显示“欢迎你”,tomcatTest.jsp 访问数据中的数据。后面会详细说明。

Web应用aa的内容如下图所示:

WEB-INF目录中有一个web.xml文件,这个文件是web应用的配置文件,因为我们的例子很简单,因此文件的内容很少,内容如下图所示。

然后,我们将web应用目录aa拷贝到webapp目录下。在添加数据源时,我们需要新创建一个META-INF目录,如下图所示。

在META-INF目录中,创建context.xml。这个文件用来存放关于数据源的配置。如下图所示。在XML内容中,需要有Context标签,然后用Source标签说明数据源的信息。Name 属性指明数据源的JNDI是java:comp/envjdbc/dstest。java:comp/env是Tomcat固定的,Tomcat 提供的JNDI绑定都必须加该前缀。服务器会通过java:comp/env/jdbc/dstest来查找数据源。driverClassName指明使用的是mysql的数据库JDBC驱动。Url指明mysql服务器的url地址为jdbc:mysql://localhost:3306/test。其中test为我们在mysql服务器中建立的数据库。Username和password是访问mysql服务器的用户名和密码,这些是在mysql上设置的。

最后我们就可以再浏览器上输入http://localhost:8888/aa/tomcatTest.jsp来访问服务器了。tomcatTest.jsp连接到mysql服务器,读取test数据库中student和teacher两张表中的内容并进行显示。文件的内容如下:

<%--

网站: 疯狂Java联盟

author yeeku.H.lee kongyeeku@https://www.360docs.net/doc/e417257032.html,

version 1.0

Copyright (C), 2001-2012, yeeku.H.Lee

This program is protected by copyright laws.

Program Name:

Date:

--%>

<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>

<%@ page import="javax.naming.*,java.sql.*,javax.sql.*" %>

"https://www.360docs.net/doc/e417257032.html,/TR/xhtml1/DTD/xhtml1-transitional.dtd">

测试Tomcat数据源

<%

//初始化Context,使用InitialContext初始化Context

Context ctx=new InitialContext();

/*

通过JNDI查找数据源,该JNDI为java:comp/env/jdbc/dstest,分成两个部分

java:comp/env是Tomcat固定的,Tomcat提供的JNDI绑定都必须加该前缀

jdbc/dstest是定义数据源时的数据源名

*/

DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/dstest");

//获取数据库连接

Connection conn=ds.getConnection();

//获取Statement

Statement stmt=conn.createStatement();

//执行查询,返回ResulteSet对象

ResultSet rs=stmt.executeQuery("select a.id,https://www.360docs.net/doc/e417257032.html,,b.id,https://www.360docs.net/doc/e417257032.html, from student a join teacher b"); out.println("student_id name teacher_id teacher_name");

while(rs.next())

{

out.println(rs.getInt(1)+"\t"+rs.getString(2)+"\t"+rs.getInt(3)+"\t"+rs.getString(4));

}

%>

访问数据库的结果如下图所示

二,将web应用放在tomcat服务器文件夹以外的任何位置,然后通过一个配置文件告诉tomcat如何部署这个web应用。

我们还是以web应用aa为例,我们将web应用aa放在下面的位置。

然后,在tomcat的conf目录的catalina\localhost目录中添加dd.xml文件(如果catalina\localhost 不存在,请新建一个)。文件中的Context标签中指出了web应用aa的位置。并通过Resource 标签说明了数据源的信息。详细请见第一种方法中的介绍。

Tomcat根据dd.xml的内容,部署新的web应用dd,dd的位置是dd.xml文件中Context标签中指出的d:\work\workspace\aa。

然后我们可以通过浏览器上输入http://localhost:8888/aa/tomcatTest.jsp来访问服务器了。tomcatTest.jsp连接到mysql服务器,读取test数据库中student和teacher两张表中的内容并进行显示。文件的内容见第一种方法中的说明。访问数据库的结果和第一种方法相同。

三,修改tomcat的全局配置文件

这种配置方法加入的数据源,在所有的web应用中都可以使用。但这种方法如果使用不当使所有的应用都受到影响,因此并不推荐这种方法

具体步骤如下:

1.配置tomcat下的conf下的context.xml文件,在之间添加连接池配置:

auth="Container"

type="javax.sql.DataSource"

driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@localhost:1521:mydb"

username="bmgis"

password="bmgis"

maxActive="100"

maxIdle="30"

maxWait="10000" />

2.配置你的应用下的web.xml中的之间加入:

DB Connection

jdbc/mydb

javax.sql.DataSource

Container

在以往的tomcat当中还需要在web.xml指定相应的resource,在tomcat 5.5以后的版本不写也可以,但建议还是配置。

Tomcat配置连接池常见错误及解决 - 天涯浪子 - CSDNBlog

Tomcat配置连接池常见错误及解决- 天涯浪子- CSDNBlog Tomcat配置连接池常见错误及解决收藏 1 、Cannot create JDBC driver of class '' for connect URL '' 问题:找不到jdbc 驱动,但是提示信息里的class 值为null ,所以,可以断定Tomcat 没有找到Server.xml 里的Resource 配置信息。可能的原因包括: (1 )没有配置Resource ; (2 )Resource 配置信息放置的位置错误。 (3 )一个不容易发现的错误,driverClassName 和url 拼写错误。 解决办法:确认Resource 配置正确,并且必须放在DefaultContext 或者Context 配置节内。 2 、Cannot create JDBC driver of class 'xxx' for connect URL '' 解决办法:配置的数据库驱动类名xxx 是错误的,检查并修改即可;如果确认正确,那就是找不到驱动库,拷贝一个jar 到Tomcat/common/lib 中即可。 3 、Cannot create JDBC driver of class '' for connect URL 'xxx'

解决办法:配置的url 字符串语法是错误的,检查后修改即可。 4 、Cannot create PoolableConnectionFactory, cause: Io 异常: Connection refused 问题:无法创建连接池工厂对象,原因是连接被拒绝。 解决办法:检查url 字符串,可能服务器地址、端口、数据库名或者数据库实例名等信息错误。修改。 5 、No suitable driver 没有匹配的驱动 分析:驱动程序配置错误,请确认Tomcat 的common/lib 子目录中是否有数据库驱动jar 。 6 、Cannot create resource instance 无法创建数据源实例 问题:找不到commons-dbcp-1.1.jar (版本可能不同) 解决办法:复制commons-dbcp-1.1.jar 库文件到 Tomcat/Common/lib 子目录中。 7 、root cause : https://www.360docs.net/doc/e417257032.html,ng.NoClassDefFoundError: org/apache/commons/collections/CursorableLinkedList 问题:找不到commons-collections.jar 。

【汇总】常见的13种数据源及其与报表系统的连接方式

【汇总】常见的13种数据源及其与报表系统的连接方式本节介绍各类数据源的定义方法。 2.1 SQL Server数据源 定义SQL Server数据源的步骤如下: (1)在报表资源管理器中,在“数据源”节点上单击鼠标右键,选择“添加数据源”菜单项。 (2)在弹出的“报表数据源”对话框的“类型”处,选择“Microsoft Sql Client Provider”。输入SQL Server数据库服务器的名称或IP地址、连接数据库的用户名和密码,勾选“保存我的密码”,输入或者选择数据库名。如下图: (3)点击“确定”按钮,完成数据源创建操作,此时,在报表资源管理器窗口中的“数据源”节点下新增了一个名为“DataSource1”的子节点。

2.2 Oracle数据源 如果数据源是Oracle数据库,数据源的定义方法如下: (1)在报表设计器中,右键单击报表资源管理窗格中的【数据源】节点,再单击【添加数据源】,如下图: (2)在数据源【类型】处选择“Oracle Client Provider”。 (3)输入服务器名称:请输入Oracle数据库服务器的IP地址,以及数据库实例名,中间用斜杠分隔,例如:127.0.0.1/orcl (4)输入Oracle用户名、Oracle用户密码,勾选【保存我的密码】,如下图: (5)点击【连接字符串】切换选项卡,点击对勾状图标,验证连接字串的正确性,如下图:

(6)点击【确定】按钮,保存数据源设置。 如果在【连接字符串】选项卡中测试连接失败,可考虑用以下方法排除错误: (1)确保完整安装Oracle客户端软件,安装过程中选择【管理员】模式,以便包含所有必需的组件。并且,在64位操作系统中,必须既安装32位的Oracle客户端,又安装64位的Oracle客户端。 (2)如果访问Linux上的Oracle数据库时出现TNS 12514错误,一个可能的原因是服务器上的服务名并非ServiceName而是SID。要解决此问题,可以在Net Manager中设置服务命名时,选中【使用Oracle8发行版8.0兼容标识】,然后在SID框中输入服务名。如下图: 这个服务命名的配置信息保存在tnsnames.ora文件中,该文件保存在 C:\app\\product\11.2.0\client_1\network\admin目录下,如下图:

怎么在报表系统中添加数据源和数据集

怎么在报表系统中添加数据源和数据集 1. 数据源和数据集 添加数据源的目的是指定报表数据的来源。葡萄城报表支持多种数据源,包括关系型数据库和其他非关系型数据源。对于关系型数据库来说,数据源的核心就是数据库连接字串。 数据集就是真正需要展现在报表中的数据。对于关系型数据库,数据集定义的核心内容就是查询数据所用的SQL语句。 1.1 添加数据源 添加数据源是报表数据绑定操作的第一步,在设置数据源之后,才可以创建数据集。添加数据源的步骤如下: (1)在报表设计器中,右键单击报表资源管理窗格中的【数据源】节点,再单击【添加数据源】,如下图: (2)在报表数据源对话框中需要指定所使用的数据类型,连接字符串,以及与数据源相关的其它选项。如下图:

葡萄城报表支持多种数据源类型,包括关系型数据库、JSON数据源等。 一个报表模板中,可以添加多个数据源,并且可以是不同类型的数据源。 1.2 添加数据集 数据源创建成功之后,会显示在报表资源管理器的数据源节点中,您可以在该数据源中创建任意多个数据集,供报表使用。 添加数据集的方法如下: (1)右键单击已创建的数据源,再单击【添加数据集】,如下图: (2)在数据集对话框中,定义数据集名称、查询数据的SQL语句,以及数据集相关的其

它选项。如下图: 为了降低编写SQL语句的难度,对话框提供了可视化查询设计器(铅笔形图标),可帮助您选择需要查询的数据库表和字段。通过点击对勾形图标可检查SQL语句的正确性,验证之后,【字段】部分会自动列出数据集的字段列表。您还可以添加额外的数据集字段,比如在原有【数量】和【单价】字段的基础上,添加【金额】字段,数值是数量和单价的乘积。 您还可以设置查询超时时间、查询参数以及过滤条件等。 (3)点击【确定】,保存数据集的设置,返回到报表资源管理窗口。 数据集添加成功之后,会显示在报表资源管理器的数据源节点中。同一个数据源节点下可以创建多个数据集。 (4)点击数据集(如“DataSet1”)节点,可以看到SQL查询语句返回查询结果的数据字段列表,如下图:

多数据源报表—简单多源报表

多数据源报表—简单多源报表 1.描述 多数据源,就是在同一张报表当中,显示的数据来自于多个不同的表或不同的库。 如下图一张简单的多数据源报表,左侧蓝色部分来自于销量表,右侧黄色部分来自销售总额表,即数据来自于两张不同的数据库表: 2.示例 2.1打开单个数据源报表 打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\CrossReport\Cr oss.cpt。 2.2新增数据源

再新增一个数据集ds2,其SQL语句为SELECT*FROM[销售总额]。ds2数据集与ds1数据集都有一个销售员字段。 2.3绑定数据列 如下图,将ds2中销售总额数据列拖拽到单元格中,并设置父格为销售员所在单元格,使销售总额跟随销售员而扩展: 2.4设置过滤 此时设计器预览,效果如下: 可以看到,扩展出来的每一个销售员下,都重复显示销售总额字段的所有数据。 虽然销售总额的父格为销售员数据列,由于他们来自于不同的数据集,因此销售总额不会将父格销售员作为条件进行筛选,即不存在附属关系。

我们需要销售总额与销售员一一对应,就需要设置过滤条件,将这两个数据集的数据通过销售员关联起来。 选中销售总额所在单元格,设置过滤,添加过滤条件:销售员等于'C4',取出与C4单元格中销售员匹配的数据,如下图: 2.5保存并预览 保存模板,预览报表,即可看到如上的效果。模板效果在线查看请点击Multi_1.cpt 已完成的模板,可参见%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Multidatasou rce\Multi_1.cpt 3.多数据源报表优势

快逸报表连接数据源

快逸报表连接数据源 用快逸报表设计器连接自己的数据库很简单,基本全部的操作都在设计器中完成。下面就以使用快逸报表设计器连接MYSQL数据库为例,演示如何连接自己的数据库。 第一步:把数据库的驱动拷贝到,快逸报表的安装目录下的JDBC文件夹下这个文件夹是快逸报表数据库驱动存放的地方。公司已经预存了常用数据库的驱动,要是运行时候报数据库驱动的错误,可以手动的把数据库的驱动拷贝过来,然后确认数据库已经打开即可(一般是到服务里把相应的数据库打开)

第二步:打开设计器,依次打开配置—数据源—新建—关系型数据库就会看见数据库连接配置的界面。

第三步:进行数据源的详细配置,数据源的名字:就是起个自己配置这个数据库的名字,这个名字是以后要是数据库连接池中使用的要和那的名字一致就行了(runqian)数据库类型:

就是你选择连接的数据库,我们提供的产用的数据库要是没有您的数据库您可以自定义。(mysql) ?客户端字符集:默认GBK,(GBK) ?数据库字符集:默认GBK,(GBK) ?驱动程序:如果您上面选择了数据库类型的话,这里就会有默认的驱动程序出来,选择默认的(com.mysql.jdbc.Driver) ?数据源URL:跟上面的一样要是选择数据库的话也是有默认的。注意的就是要替换括号里的内容这里填写的一般就是数据库的IP 端口相关信息 (jdbc:mysql://localhost:3306/mysql1) ?用户名和口令:就是您自己数据库的用户名和密码(root root) 第四步:连接数据库,配置好了以后进到数据源那个页面进行连接,要是还不成功检查上面的操作进行验证。

tomcat配置文件server文件详解

配置文件一般都在conf文件夹里,主要有server.xml,context.xml,tomcat_user.xml,web.xml四个常用配置文件,server主要是服务器设置的,例如端口设置,路径设置。context 里设置tomcat数据源,用来连接数据库。tomcat_user主要是用户名和密码的设置。web 是默认首页等等之类的设置。 元素名属性解释 server port 指定一个端口,这个端口负责监听关闭 tomcat 的请求 shutdown指定向端口发送的命令字符串 service name指定service 的名字 Connector(表示客户端和service之间的连接)port 指定服务器端要创建的端口号,并在这个断口 监听来自客户端的请求 minProcessors服务器启动时创建的处理请求的线程数maxProcessors最大可以创建的处理请求的线程数 enableLookups 如果为true ,则可以通过调用 request.getRemoteHost() 进行DNS 查询来 得到远程客户端的实际主机名,若为false 则 不进行DNS 查询,而是返回其ip 地址redirectPort 指定服务器正在处理http 请求时收到了一个 SSL 传输请求后重定向的端口号acceptCount 指定当所有可以使用的处理请求的线程数都被 使用时,可以放到处理队列中的请求数,超过 这个数的请求将不予处理 connectionTimeo ut 指定超时的时间数( 以毫秒为单位) Engine(表示指定service 中 的请求处理机,接收和处理来自Connector的请求)defaultHost 指定缺省的处理请求的主机名,它至少与其中 的一个host 元素的name 属性值是一样的 Context(表示一个 web 应用程序,通常为WAR 文件,关于WAR 的具体信息见servlet 规范)docBase应用程序的路径或者是WAR 文件存放的路径path 表示此web 应用程序的url 的前缀,这样请 求的url为http://localhost:8080/path/ **** reloadable 这个属性非常重要,如果为true ,则 tomcat 会自动检测应用程序的 /WEB-INF/lib 和/WEB-INF/classes 目录的 变化,自动装载新的应用程序,我们可以在不 重起tomcat 的情况下改变应用程序 host(表示name指定主机名

报表工具FineReport多数据源报表

报表工具FineReport多数据源报表 简单多源报表 1. 描述 多数据源,就是在同一张报表当中,显示的数据来自于多个不同的表或不同的库。 如下图一张简单的多数据源报表,左侧蓝色部分来自于销量表,右侧黄色部分来自销售总额表,即数据来自于两张不同的数据库表: 2. 示例 2.1 打开单个数据源报表 打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\CrossReport\Cross.cpt。2.2 新增数据源 再新增一个数据集ds2,其SQL语句为SELECT * FROM [销售总额]。ds2数据集与ds1数据集都有一个销售员字段。 2.3 绑定数据列 如下图,将ds2中销售总额数据列拖拽到单元格中,并设置父格为销售员所在单元格,使销售总额跟随销售员而扩展: 2.4 设置过滤 此时设计器预览,效果如下:

可以看到,扩展出来的每一个销售员下,都重复显示销售总额字段的所有数据。 虽然销售总额的父格为销售员数据列,由于他们来自于不同的数据集,因此销售总额不会将父格销售员作为条件进行筛选,即不存在附属关系。 我们需要销售总额与销售员一一对应,就需要设置过滤条件,将这两个数据集的数据通过销售员关联起来。 选中销售总额所在单元格,设置过滤,添加过滤条件:销售员等于 'C4',取出与C4单元格中销售员匹配的数据,如下图: 2.5 保存并预览 保存模板,预览报表,即可看到如上的效果。模板效果在线查看请点击Multi_1.cpt

已完成的模板,可参见%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Multidatasource\Multi_1. cpt 3. 多数据源报表优势 多数据源报表传统的做法,是通过拼SQL将多源整合为单源。如上例中将销量表与销售总额表整合起来:SELECT * FROM 销量,销售总额 WHERE 销量.销售员 = 销售总额.销售员。若数据库表比较复杂,且使用的表个数不止2张而是更多时,可以想象,最终的SQL查询语句将会非常复杂。 FineReport天然支持多数据源的报表,一张报表中可以添加任意多个数据集,每个数据集使用最简单的SQL语句查询出需要的表数据,在报表中只需要使用过滤就可以将来自不同表的数据相互关联起来。使得多数据源报表制作更加简单。 多源报表在线视频请查看【多源报表】 复杂多源报表 1. 描述 上一节中,我们介绍了简单的多数据源报表,而实际应用时,交叉表当中的行列与汇总计算数据,均来自不同数据库也是很常见的。如下报表: 在这张报表中,项目总数,需财政安排数,单位自筹,它资金都是来自于不同的数据集。 2. 示例 2.1 准备数据集 数据库的数据表是项目ID与项目名称有一张单独的表来保存,另有项目数量,财政补贴资金,单位自筹资金,其它资金等四张列表。每张表均通过ID字段与项目名称表建立关系,以下是五张内置的数据集:

Web管理应用配置数据源连接池

1、使用 Tomcat 的 Web 管理应用配置数据源 启动 Tomcat 服务器,打开浏览器,输入 http://localhost:8080/admin/(其中 localhost 是名 称服务器或称为主机,没安装 admin 的参考后面的安装步骤),进入管理界面的登陆页面, 这时候请输入原来安装时要求输入的用户名和密码,登陆到管理界面,
选择 Resources-Data sources 进入配置数据源界面,选择 Data Source Actions ->选择 Create New Data Source,进入配置详细信息界面,内容如下: JNDI Name: jdbc/BookDB Data Source URL: jdbc:mysql://localhost:3306/BookDB JDBC Driver Class: com.mysql.jdbc.Driver User Name: dbusr Password: 1234 Max. Active Connections: 4 Max. Idle Connections: 2 Max. Wait for Connection: 5000 Validation Query: 按要求输入的 JNDI Name 等信息,其中除了 JDBC DriverClass 之外,其他的可以根据需要 填写。最后点击 Save->Commit Change. 注:这里的 BookDB 是我使用的数据库的名称 2、修改 web.xml 打开%TOMCAT_HOME%\conf\web.xml,在的前面添加以下内容: DB Connection jdbc/BookDB javax.sql.DataSource Container 3、修改%TOMCAT_HOME%\conf\Catalina\localhost 下对应你的引用的配置文件 在%tomcat_home%\conf\Catalina\localhost\下建立 bookstore.xml,如下

报表设计器安装和数据源配置

报表设计器安装和数据源配置 在安装盘中找到“润乾报表设计器v4.5.1.exe”文件,用鼠标双击文件,开始报表设计器设计器安装,如图: 在安装页面中选择中文选项,之后点击“OK”按钮进入下一步安装,如图: 在安装向导页面中点击“下一步”按钮,进入许可协议页面,如图:

许可协议阅读没有问题后,点击“我同意”按钮,进入下一步安装,如图: 在页面中选择需要安装的内容,其中“润乾报表设计器”是必须安装的,选择好后点击“下一步”按钮,如图:

在页面选择或输入报表设计器需要安装的目录。 在JA V A 运行环境变量的选择java 版本选项中有五中类型选项。这其中只有前两个常用,就是“default(1.5.10)”和 “JA V A_HOME”两项,在这两个项中有各自的使用方式,判断再机器中是否已经安装了JDK 运行环境,要是安装了就选择“JA V A HOME”选项,要是机器没有安装就选择默认的“default(1.5.10)”项。如在机器中已经安装了就选择“JA V A HOME”选项,系统会自动寻找Java 安装目录填写在输入框中,这时点击“安装”按钮进入安装页面,如图:

在安装完成页面中点击“完成”按钮,关闭安装页面。 这时为了能连接各种类型的数据库,需要安装盘下的LIB 目录下的数据库驱动文件覆盖到设计器安装目录下的JDBC 目录下。

在系统安装程序中打开报表设计器,现在开始添加数据源,在配置选项卡中选择“数据源”项,如图: 在打开的页面中可以新建数据源也就可以编辑已经存在的数据源,数据源可以建立与SQL SERVER(SQL 2000,SQL2005,SQL 2008),MYSql ,Oracle 等常用数据库连接的数据源。如图:

Tomcat配置数据源连接MySql数据库

1. 修改Tomcat安装目录下的conf文件夹里的context.xml文件. 在context.xml文件中添加以下内容:(注意是在之间添加) 其中:name必须为"jdbc/..."的形式."..."是指你想给datasource命名的名字. username是连接数据库的用户名. password是连接数据库的密码. url是jdbc:mysql://主机名:端口号/数据库名称 2. 在Tomcat安装目录下的webapps里创建工程MyTest工程. 3. 将ROOT下的WEB-INF文件夹整个拷贝至MyTest中. 4. 修改修改MyTest\WEB-INF中web.xml,在中添加如下 DB Connection jdbc/mytest javax.sql.DataSource Container 此处的名字应与context.xml中Resource name一致。 5. 在Tomcat服务器下的lib文件夹下添加连接MySQL数据库的驱动包。 6. MyTest下编写jsp测试连接池是否成功,在MyTest文件夹下创建myTest.jsp文件.输入内容如下:(注意修改数据库名字.) <%@ page import=”java.sql.*, javax.sql.*, javax.naming.*”contentType="text/html;charset=gb2312"%> 连接池测试页面 <%out.println("

Hello,test DBCP !

");%> <%

开源报表软件FineReport多数据源报表

开源报表软件FineReport多数据源报表 简单多源报表 1. 描述 多数据源,就是在同一张报表当中,显示的数据来自于多个不同的表或不同的库。 如下图一张简单的多数据源报表,左侧蓝色部分来自于销量表,右侧黄色部分来自销售总额表,即数据来自于两张不同的数据库表: 2. 示例 2.1 打开单个数据源报表 打开报表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\CrossReport\Cross.cpt。2.2 新增数据源 再新增一个数据集ds2,其SQL语句为SELECT * FROM [销售总额]。ds2数据集与ds1数据集都有一个销售员字段。 2.3 绑定数据列 如下图,将ds2中销售总额数据列拖拽到单元格中,并设置父格为销售员所在单元格,使销售总额跟随销售员而扩展: 2.4 设置过滤 此时设计器预览,效果如下:

可以看到,扩展出来的每一个销售员下,都重复显示销售总额字段的所有数据。 虽然销售总额的父格为销售员数据列,由于他们来自于不同的数据集,因此销售总额不会将父格销售员作为条件进行筛选,即不存在附属关系。 我们需要销售总额与销售员一一对应,就需要设置过滤条件,将这两个数据集的数据通过销售员关联起来。 选中销售总额所在单元格,设置过滤,添加过滤条件:销售员等于 'C4',取出与C4单元格中销售员匹配的数据,如下图: 2.5 保存并预览 保存模板,预览报表,即可看到如上的效果。模板效果在线查看请点击Multi_1.cpt

已完成的模板,可参见%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\Multidatasource\Multi_1. cpt 3. 多数据源报表优势 多数据源报表传统的做法,是通过拼SQL将多源整合为单源。如上例中将销量表与销售总额表整合起来:SELECT * FROM 销量,销售总额 WHERE 销量.销售员 = 销售总额.销售员。若数据库表比较复杂,且使用的表个数不止2张而是更多时,可以想象,最终的SQL查询语句将会非常复杂。 FineReport天然支持多数据源的报表,一张报表中可以添加任意多个数据集,每个数据集使用最简单的SQL语句查询出需要的表数据,在报表中只需要使用过滤就可以将来自不同表的数据相互关联起来。使得多数据源报表制作更加简单。 多源报表在线视频请查看【多源报表】 复杂多源报表 1. 描述 上一节中,我们介绍了简单的多数据源报表,而实际应用时,交叉表当中的行列与汇总计算数据,均来自不同数据库也是很常见的。如下报表: 在这张报表中,项目总数,需财政安排数,单位自筹,它资金都是来自于不同的数据集。 2. 示例 2.1 准备数据集 数据库的数据表是项目ID与项目名称有一张单独的表来保存,另有项目数量,财政补贴资金,单位自筹资金,其它资金等四张列表。每张表均通过ID字段与项目名称表建立关系,以下是五张内置的数据集:

Spring配置数据源的四种方式

Spring配置数据源的四种方式Spring框架支持四种数据源的配置: 1.自带数据源(DriverManagerDataSource) 2.DBCP数据源 3.C3P0数据源 4.JNDI数据源 准备: 2.Spring-config.xml中引入配置文件(注册JDBC属性配置文件) 方式二:(需要添加context约束)

第二种方式:DBCP数据源 便Spring容器关闭时,数据源能够正常关闭。除以上必须的数据源属性外,还有一些常用的属性:defaultAutoCommit:设置从数据源中返回的连接是否采用自动提交机制,默认值为true; defaultReadOnly:设置数据源是否仅能执行只读操作,默认值为false; maxActive:最大连接数据库连接数,设置为0时,表示没有限制; maxIdle:最大等待连接中的数量,设置为0时,表示没有限制; maxWait:最大等待秒数,单位为毫秒,超过时间会报出错误信息; validationQuery:用于验证连接是否成功的查询SQL语句,SQL语句必须至少要返回一行数据,如你可以简单地设置为:“select count(*) from user”; removeAbandoned:是否自我中断,默认是false ; removeAbandonedTimeout:几秒后数据连接会自动断开,在removeAbandoned为true,提供该值; logAbandoned:是否记录中断事件,默认为false; 第三种方式:C3P0数据源 们就可以保证Spring容器关闭时数据源能够成功释放。 acquireIncrement:当连接池中的连接用完时,C3P0一次性创建新连接的数目; acquireRetryAttempts:定义在从数据库获取新连接失败后重复尝试获取的次数,默认为30; acquireRetryDelay:两次连接中间隔时间,单位毫秒,默认为1000; autoCommitOnClose:连接关闭时默认将所有未提交的操作回滚。默认为false; automaticTestTable:C3P0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数,那么属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将中为C3P0测试所用,默认为null; breakAfterAcquireFailure:获取连接失败将会引起所有等待获取连接的线程抛出异常。但是数据源仍有效保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭。默认为false; checkoutTimeout:当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后

多数据源报表全面解析

多数据源报表全面解析 多数据源报表即一张报表中可以定义多个数据集,分别取出需要的数据库表,所取的数据库表甚至可以来自于不同的数据库。本文通过几个例子说明多个数据集数据如何相互关联来实现多源报表。 简单多源报表 1.描述 多数据源,就是在同一张报表当中,显示的数据来自于多个不同的表或不同的库。 如下图一张简单的多数据源报表,左侧蓝色部分来自于销量表,右侧黄色部分来自销售总额表,即数据来自于两张不同的数据库表: 2.示例 2.1打开单个数据源报表 打开报 表%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\CrossReport\Cr oss.cpt。

2.2新增数据源 再新增一个数据集ds2,其SQL语句为SELECT*FROM[销售总额]。ds2数据集与ds1数据集都有一个销售员字段。 2.3绑定数据列 如下图,将ds2中销售总额数据列拖拽到单元格中,并设置父格为销售员所在单元格,使销售总额跟随销售员而扩展: 2.4设置过滤 此时设计器预览,效果如下: 可以看到,扩展出来的每一个销售员下,都重复显示销售总额字段的所有数据。

虽然销售总额的父格为销售员数据列,由于他们来自于不同的数据集,因此销售总额不会将父格销售员作为条件进行筛选,即不存在附属关系。 我们需要销售总额与销售员一一对应,就需要设置过滤条件,将这两个数据集的数据通过销售员关联起来。 选中销售总额所在单元格,设置过滤,添加过滤条件:销售员等于'C4',取出与C4单元格中销售员匹配的数据,如下图: 2.5保存并预览 保存模板,预览报表,即可看到如上的效果。 3.多数据源报表优势 多数据源报表传统的做法,是通过拼SQL将多源整合为单源。如上例中将销量表与销售总额表整合起来:SELECT*FROM销量,销售总额WHERE销量.销售员=销售总额.销售员。若数据库表比较复杂,且使用的表个数不止2张而是更多时,可以想象,最终的SQL 查询语句将会非常复杂。

动态数据源与报表系统绑定的4个步骤

动态数据源/集与报表系统绑定的4个步骤 实际项目中,存在一种设计报表时无法明确知道从哪个数据库中取数的情况。例如,根据查看报表的用户身份不同,所要取数的数据库也不同。在这种场景中,就需要用到动态数据源。 所谓动态数据源,就是连接字串为表达式形式的数据源。通过在表达式中使用报表参数,实现不同用户访问不同数据库的效果。 所谓动态数据集,就是SQL语句为表达式形式的数据集。通过在表达式中使用报表参数,实现不同用户访问不同数据库表或视图的效果。 创建一个动态数据源的思路如下: (1)先设计好静态的数据源连接字串和数据集。这是为了获得数据集的字段列表,以便设置表格、图表等报表元素的数据字段绑定。 (2)添加报表参数。 (3)修改数据源,将连接字串设置为表达式,表达式中引用报表参数,从而实现具体数据源随参数不同而变化的“动态”效果。 下面举例说明具体的设计方法。 4.1 设计静态的数据源 启动报表设计器,新建一个RDL类型的报表。 添加一个SQL Server数据源,连接字串如下: data source=(local);password=123;initial catalog=ArsDemo;user id=user1; 如下图:

添加一个数据集,SQL语句如下: select * from 产品 字段列表如下: 拖放一个表格到设计区,绑定数据集的字段,如下图: 预览效果如下图:

到目前为止,一个静态数据源的报表就设计完成了。 4.2 添加报表参数 添加报表参数是为实现动态数据源做准备。添加报表参数的步骤如下: (1)右键单击报表资源管理器的【参数】节点,再点击【添加参数】,如下图: (2)设置参数名称等信息,如下图: (3)点击【确定】按钮。 此时会看到报表资源管理器的【参数】节点下面多了一个DbName参数,如下图:

数据库连接池配置的几种方法

今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,希望对大家有所帮助:(以Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下面建文件夹META-INF,里面建一个文件context.xml,内容如下: 方式二:在tomcat6.0的目录conf下面的context.xml中,修改原来的context标签,改成内容如下: WEB-INF/web.xml 方式三:在配置虚拟目录时,也就是在配置conf下面的server.xml时,在context标签内改成如下形式:

was配置数据源自己写的

1、安装was 2、启动一个服务 3、第一步先建立一个企业应用吧,这个比较的简单: 4、建立数据资源: (1)创建:jdbc提供程序 A:新建:如下截图: 作用域:作用域是登录时选择的,一般是后缀是cell的 名称:jdbc提供程序的一个名字,下面配置数据源时要用到的 类路径:是Oracle驱动的路径,一般都是默认的找本机的Oracle数据库的驱动,这里我自己放置里的一个驱动,把路径放对就行了。 本机库路径:同类路径 B:保存,这步挺重要的,否则新建立的不起作用, (2)建立数据源: A:新建:

数据源名:任意为数据源起个名 JNDI名称:是配置的一个连接池的名称,通过Context initCtx = new InitialContext(); if (initCtx == null) throw new Exception("Context!"); //System.out.println("准备加载lookup方法!"); Context ctx = (Context) initCtx.lookup("java:comp/env");//这里没有实现 ======================= //System.out.println("准备获取连接池!"); //获取连接池对象 Object obj = (Object) ctx.lookup("jdbc/myoracle"); //System.out.println("获取连接池成功!"); //类型转换 javax.sql.DataSource ds = (javax.sql.DataSource) obj; con = ds.getConnection(); 实现的,其中的jdbc/myoracle就是要填的内容。 B:比较关键的额一步了:就是建立认证名了,这个任意,但是必须有的,这个认证实际上就是数据库的登录信息,对于Oracle:就是一个用户名和密码。 以上好了就ok了,可以测试一下连接。 可以输入以下的链接查看部署的应用: http://localhost:9080/safeweb/sfItemAction.action 项目默认的路径: D:\IBM\WebSphere\AppServer1\profiles\AppSrv01\installedApps\licanNode01Cell\safeweb_war. ear\safeweb.war 查看日志文件: D:\IBM\WebSphere\AppServer1\profiles\AppSrv01\logs\server1 主要是:SystemErr.log 和SystemOut.log 说白了就是:一个应用向让它跑起来就要有个环境。这个应用是war包或者是ear包 它的服务器不是Tomcat了而是一个was而已。那么与开发时的思路类似了,was读取war 包,使应用能够被解析。应用想跑起来就需要有个数据源了,在Myeclipse等开发工具下也有类似的配置的如:hibernate的数据库的配置。只不过这里都是图形化界面实现的。理解了这些was的作用应该理解了。就是:应用在有数据源的情况下运行起来。

tomcat的url配置

第一种方法:在tomcat 中的conf 目录中,在server.xml 中的,节点中添加: 至于Context 节点属性,可详细见相关文档。 第二种方法:将web 项目文件件拷贝到webapps 目录中。 第三种方法:很灵活,在conf 目录中,新建 Catalina (注意大小写)\localhost 目录,在该目录中新建一个xml 文件,名字可以随意取,只要和当前文件中的文件名不重复就行了,该xml 文件的内容为: 第3个方法有个优点,可以定义别名。服务器端运行的项目名称为path ,外部访问的URL 则使用XML 的文件名。这个方法很方便的隐藏了项目的名称,对一些项目名称被固定不能更换,但外部访问时又想换个路径,非常有效。 第2、3还有优点,可以定义一些个性配置,如数据源的配置等。 还有一篇 详细的 1、直接放到Webapps 目录下 Tomcat 的Webapps 目录是Tomcat 默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。也可以将JSP 程序打包成一个war 包放在目录下,服务器会自动解开这个war 包,并在这个目录下生成一个同名的文件夹。一个war 包就是有特性格式的jar 包,它是将一个Web 程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE 环境,如Eclipse 、NetBeans 、ant 、JBuilder 等。也可以用cmd 命令:jar -cvf applicationname.war package.*; 甚至可以在程序执行中打包: 双击代码全选 1 2 3 4 5 6 try{ string strjavahome = system.getproperty("java.home"); strjavahome = strjavahome.substring(0,https://www.360docs.net/doc/e417257032.html,stindexof())+"bin"; runtime.getruntime().exec("cmd /c start "+strjavahome+"jar cvf hello.war c:tomcat5.0webappsroot*"); } catch(exception e){system.out.println(e);} webapps 这个默认的应用目录也是可以改变。打开Tomcat 的conf 目录下的server.xml 文件,找到下面内容: 2、在server.xml 中指定 在Tomcat 的配置文件中,一个Web 应用就是一个特定的Context ,可以通过在server.xml 中新建Context 里部署一个JSP 应用程序。打开server.xml 文件,在Host 标签内建一个Context ,内容如下。 其中path 是虚拟路径,docBase 是JSP 应用程序的物理路径,workDir 是这个应用的工作目录,存放运行是生成的于这个应用相关的文件。 3、创建一个Context 文件 以上两种方法,Web 应用被服务器加载后都会在Tomcat 的confcatalinalocalhost 目录下生成一个

相关文档
最新文档