Java数据库连接池

总体(General)

转载过来的,如今在做一个小网站,准备利用这种措施。

着力意况
1.    公司地方、邮政编码、电话、传真,项目联系人等基本资料。
2.    公司经营范围,产品线和主导产品。
3.    公司近几年的产值及销售额。
4.    集团高层领导机构、员工总人数。
5.    协会结构图,列出各紧要部门的人手,职责及部门主管姓名。
6.    概要描述集团的运营情势。
7.   
画出一张地点示意图,标明市场、销售、生产计划、采购、库房、创立、质地、财务等重点部门的职位。

 

商店提升
1.    集团当下主营业务的现状及成长性预测。
2.    公司长时间的发展对象以及深远的发展战略性?
3.    公司计划什么贯彻既定的计划性?

 

音信化建设
1.   
目前铺面测算机软、硬件、网络基本境况。是否业已接纳电脑管理软件(ERP、OA等),使用效益怎么着?可否提供系统相关文档?
2.   
现有的序列设有什么样不足?本次信息化建设需要解决什么问题,其中最迫切的怎样问题?
3.   
公司有没有考虑过音信化建设的总体规划和推行步骤?可否提供相关文档。
4.    公司对音讯化的要紧需要及希望目的?
5.    集团关键的竞争对手,是否精通她们的音讯化程度怎么样?

Java
jdbc数据库连接池总计!

图片 1

  1. 引言

销售管制(Order Management)
    总体意况
1.    企业的销售系统管理的情状咋样。
2.   
销售团队结构如何,近日的销售是以分支机构或厂方销售代表为主依然代理商为主?提供协会结构及流程图。
3.    有无专设的招投标单位,产品成功情状咋样?

  目前,随着Internet/Intranet建网技术的迅速发展和在世界范围内的全速推广,统计机

    分支机构
1.    分支机构(假如有的话)是否独立核算?
2.    对分支机构的治本意况如何,分支机构有没有独立的直属总部的财务人士。

  应用程序已从观念的桌面应用转到Web应用。基于B/S(Browser/Server)架构的3层开发形式日渐取代C/S(Client/Server)架构的付出形式,成为开销企业级应用和电子商务普遍运用的技巧。在Web应用开发的最初,首要采用的技艺是CGIASPPHP等。之后,Sun公司生产了基于Java言语的Servlet+Jsp+JavaBean技术。相比较传统的开发技术,它具有跨平台﹑安全﹑有效﹑可移植等特色,这使其更方便使用和开支。

   销售人士
1.    有否完整的行销人士业绩评估政策,实施情状如何。
2.    销售人士的客户公关记录有否严刻的报备制度。
3.    如何避免销售人士损伤集团利益,有怎样具体措施。

  Java应用程序访问数据库的基本原理

   代理商
1.    代理商的分布情状和保管的景观。
2.    代理商的结算方法和总结周期。
3.    有否对成品举办单件号跟踪,控制代理商窜货。
4.    有否年底返利,返利的结算情势怎么样

  在Java语言中,JDBC(Java DataBase
Connection)是应用程序与数据库沟通的桥梁,

   分销流通管理
1.    现有的水渠管理情形。
2.    渠道要货、补货流程。
3.   
现在的促销形式,一般常用的有咋样?对以后促销管理有怎样要求?渠道间退、补货流程要求。

  即Java语言经过JDBC技术访问数据库。JDBC是一种“开放”的方案,它为数据库应用开发人员﹑数据库前台工具开发人士提供了一种标准的应用程序设计接口,使开发人士可以用纯Java语言编写完整的数据库应用程序。JDBC提供二种API,分别是面向开发人士的API和面向底层的JDBC驱动程序API,底层紧要透过直接的JDBC驱动和JDBC-ODBC桥驱动实现与数据库的接连。

    电子商务
1.    是否参预了电子商务营销?正在开展的是B2B仍然B2C?
2.    假如有,在怎么电子商务平台开设了网店?是否自建了电子商务平台?
3.    自有物流依旧第三方物流?是否有在线支付?是否需要做接口?

  一般的话,Java应用程序访问数据库的经过(如图1所示)是:

    客户保管
1.    客户的大约数量及分布,在保管上是否遵照地域进行分割?
2.    集团有否客户详细资料,这多少个资料是集中管理仍旧分散在处处?
3.    集团怎么落实客户的天赋管理与检讨,是否有兼职的机关或流程?
4.    如何贯彻同客户的对账、催款,具体由哪些部门负责?
5.    产品对不同客户折扣率怎么样保管?
6.    有没有深刻巨大协议客户?
7.    是否存在OEM客户?
8.    与分、子集团是否有中间销售价?

  ①装载数据库驱动程序;

    销售推断
1.    集团进展销售臆想的遵照及办法?

  ②因此JDBC建立数据库连接;

    销售合同
1.    销售合同是怎样形成的,有没有审批过程?目前有什么项目?
2.    销售合同是由哪些机构负责管理,怎么着保管?

  ③拜访数据库,执行SQL语句;

    销售订单
1.    销售人员是怎么着吸收订单的,接受客户订单未来,销售人士怎么处理?
2.    咋样举行订单的特许、调整和收回?
3.    出口订单与境内订单在处理情势上有何关联和不同?
4.    销售合同中对质料条款有何约定?
5.    对客户、销售员有否举行界定销售仍旧信用管理?

  ④断开数据库连接。

    销售发货
1.    销售网络的地段分布情形?
2.    销售支付货单时,具体录入哪些音讯?
3.   
集团由哪个机构承受产品的发货运输,发货计划什么制订,怎么样布置不同的运载模式(自运、托运;路运、海运、空运)?
4.   
是否对要发货的订单作发货启运计划?计划内容是否包括:车辆、运费方法、车辆的体积、重量等?有否现成的装车单格式?
5.    如何开展客户收货确认,客户签收的单子是否作为对账的遵照?
6.    同托运公司拔取什么样的结算格局?
7.    是否有详尽的行销记录,能否举行批号(单件号)销售跟踪,如何管理?

图片 2
图1 Java数据库访问机制

    销售退货
1.   
退货流程怎么着?审批权力如何支配?由哪个机构依照什么样的顺序向质料部门展开退货审批的报名?
2.   
怎么着处理未接受客户款的行销退回业务(集团财务处理委托代销业务的措施,同处理退货情势到一致性)?
3.    怎么着处理收到客户款的行销退回业务,退款、换货依旧其他处理?

  JDBC作为一种数据库访问技术,具有简易易用的亮点。但接纳这种格局开展Web应用

采购(Purchase Order)
    总体情状
1.    采购单位的社团单位、人士岗位意况以及单据的漂流意况。
2.    是否建立了特其它买入中央?运作情势是?
3.    公司当下对原材料的买举行为是不是直接受生产单位物料需求的影响?

  程序开发,存在许多问题:首先,每五次Web请求都要创建五次数据库连接。建立连接是一个困难的位移,每一趟都得花费0.05s~1s的时日,而且系统还要分配内存资源。这多少个刻钟对于一遍或两回数据库操作,或许感到不出系统有多大的开发。可是对于前几天的Web应用,尤其是巨型电子商务网站,同时有几百人居然几千人在线是很正常的事。在这种景观下,频繁的开展数据库连接操作必然占用很多的系统资源,网站的响应速度必定下降,严重的竟是会招致服务器的倒台。不是耸人听闻,这就是制约某些电子商务网站发展的技艺瓶颈问题。其次,对于每两遍数据库连接,使用完后都得断开。否则,假设程序出现分外而未能关闭,将会促成数据库系统中的内存泄漏,最后将不得不重启数据库。还有,这种支付不可以决定被创立的连年对象数,系统资源会被毫无顾及的分红出去,如连续过多,也恐怕引致内存泄漏,服务器崩溃。

   供应商管理
1.    集团最近的供应商管理包含怎样内容,有无完善的供应商音信保管?
2.   
现行的供应商认证与管理工作是哪些运作的?如何对供应商举行质料资质监控?采购部负责什么工作?
3.    供应商有无分类?分类按照?
4.    有无对供应商进行询价、报价管理?
5.    有无对供应商举办考核或评估?除质量目的外,还有怎么着目标?
6.    咋样询问供应商的工作记录并与供应商举行对账?
7.    同供应商之间有无商业惯例中的付款折扣条款。

 

    采购计划
1.    是否采纳非MRP计划的模式生成物品的请购请求?如是,指明是哪类:
    重定货点
    按批量置办
    按单一订单需求采购
    按低于库存量采购
1.   
生产的计划内需求和计划外需即使否分别生成请购计划的?请购计划的审批流程和权力是如何的?
2.   
对于请购计划,是否建立了合理采购批次或采购量的保管办法?原材料库存的决定由什么人承担?
3.    请购计划是不是存在调整的事态?它们的审批程序是什么样的?

  数据库连接池(connection pool)的做事原理

    采购申请
1.    采购申请的交由、变更和许可咋样处理?
2.    是否持有购买都需首先付诸采购申请?

  1、基本概念及原理
由地方的解析可以看出,问题的发源就在于对数据库连日来资源的不行管理。我们精晓,

    采购订单
1.   
采购业务是否全体透过规范订单的花样进行,是否经常开展没有纸面合同的电话机购买?
2.    对稳定(稳定)供应商,是否存在一揽子协议或框架性协议的措施?
3.    除了正式采购订单,还有三种采购订单? 如合同、协议等。
4.    采购订单的审批流程是怎么着的?审批流程中各审批人的权限如何?
    金额限制
    账户限制
    遵照公司惯例举办,没有严刻的羁绊
5.   
采购订单生成后,是否留存调整的情状?倘诺存在,会有什么状态?它们的处理、审批程序是怎么的?
6.    有无对采购合同执行率的考核制度?
7.    采购合同中对质量条款有何约定?

  对于共享资源,有一个很闻名的设计情势:资源池(Resource
Pool)。该形式正是为精通决资源的反复分配﹑释放所导致的题目。为化解上述问题,可以拔取数据库连接池技术。数据库连接池的主旨思维就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数额的连年,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。大家可以通过设定连接池最哈拉雷接数来避免系统无尽的与数据库连接。更为首要的是大家可以透过连接池的管理机制监视数据库的连日的多少﹑使用境况,为系统开发﹑测试及性能调整提供遵照。连接池的主题工作原理见下图2。

   采购接收
1.   
货物运抵仓库后,是否开展数量与质地的验收?由哪个单位承担?有没有先入库再举办入库验收的意况?
2.   
采购接收是否与购买订单核对,由哪些部门担负?是否清楚仓库接收的这批货物对应哪一个选购订单,怎么着得知?
3.    入库验收(包括质检)需要多少长度期?质检入库流程是哪些的?
4.   
假诺运抵的货物多于订购数量的事态?是否依旧入库?处理流程是咋样的?
5.    尽管运抵的货品数量有限或质料低于订购要求,处理流程是咋样的?
6.   
假使接到的物品虽不是订购物料,但接受物料可替代采购物品使用的图景,处理流程是咋样的?
7.   
假设采购物品运抵时间提前或延缓于购买订单的到货时间,处理流程是怎么着的?
8.    对于一个订单,可是供货商分批发货(接收)的情况下是怎么处理的。

图片 3
图2 连接池的主干工作规律

    采购物品退货
1.    在哪些情状下会暴发采购退货?采购退货是否有审批流程?
2.    如何处理已经支付货款的购买退货?
3.    如何处理尚未支付货款的采办退货?

  2、服务器自带的连接池

 

  JDBC的API中从未提供连接池的办法。一些巨型的WEB应用服务器如BEA的WebLogic和IBM的WebSphere等提供了连接池的编制,可是必须有其第三方的专用类格局辅助连接池的用法。

库房部分(Warehouse)

  连接池关键问题分析

    总体情况
1.   
请描述一下库存的物理分布以及逻辑上的分别是什么样的,近年来管理的共同体意况怎么样?
2.    有无进行子库划分?
3.    在同一子库中有无举行库位管理?
4.    是否有相近虚仓的田间管理?(如供应商仓、伙伴仓等)
5.   
库存物资咋样开展归类?是否举办了中间编码(条形码)管理?尤其是原料、半成品、成品、盘具、备品备件、包装等。
6.    集团的出品有微微已经报名了条形码?是否准备展开条形码管理?

库存管理(Inventory Management)

  1、并发问题

    成品及半成品
1.    库存物资如何开展批号控制?在库房中什么标识别不同的到货批次?
2.   
仓库怎样管理半成品,有没有半成品仓库(或者在车间有特其它存储区),半成品库的收货、发货流程怎么着?
3.    销售出库的系列有哪两种?是否存在捐赠、领样、试用等花样?
4.    请描述仓库对销售退回的处理流程?

  为了使连接管理服务具有最大的通用性,必须考虑多线程环境,即出现问题。那么些问题相对相比好解决,因为Java语言本身提供了对出现管理的支撑,使用synchronized关键字即可确保线程是一路的。使用情势为直接在类形式后面加上synchronized关键字,如:

    委外加工物料
1.    是否有委外加工业务
2.    如有委外加工业务请描述外协件的验证、收货、退货流程?

public synchronized Connection getConnection()

   生产物料
1.    生产物料的发给和撤回流程?
2.   
最近的生产物料发放采纳何种情势(配发、利用),是否有原料准备员进行配料、发料。

  2、多数据库服务器和多用户

    杂项发料和杂项接收
1.    对非采购订单接收的物品和非销售发料的物品的主宰?
2.    有否存在倒冲领料?
3.    仓库是否使行手工账登记,账实是否符合?

  对于大型的铺面级应用,日常需要同时连接不同的数据库(如连续OracleSybase)。如何连接不同的数据库呢?大家使用的政策是:设计一个适合单例格局的连接池管理类,在连接池管理类的唯一实例被创制时读取一个资源文件,其中资源文件中存放着三个数据库的url地址(<poolName.url>)﹑用户名(<poolName.user>)﹑密码(<poolName.password>)等音讯。如tx.url=192.168.1.123:5000/tx_it,tx.user=cyl,tx.password=123456。依照资源文件提供的音信,创造三个连续池类的实例,每一个实例都是一个特定数据库的连接池。连接池管理类实例为各种连接池实例取一个名字,通过不同的名字来治本不同的连接池。

    库存物料的划拨
1.    什么意况下会对库存中的物料举行调拨,在公司内部是否正如多?
2.   
材料在库存之间的划拨流程是何许的,尤其是对办事处等等的异地调拨是什么处理的?

  对于同一个数据库有四个用户采用不同的称呼和密码访问的情景,也得以通过资源文件处理,即在资源文件中设置五个有着相同url地址,但具备不同用户名和密码的数据库连接信息。

    库存物料的调整
1.    在咋样状态下会对库房中的物料举行调整(指库内仓位间的调动)?
2.    对库房中幸存库存举行调整的基于是何等?

  3、事务处理

   库存盘点
1.    物资盘点处理的章程和流程?(全面盘点或抽查盘点)盘点周期为多少长度?
2.   
是否对高价值物品与低价值物品的盘点频率是均等的?一般会在哪一天进行存货盘点?
3.    与财务对账周期为多少长度?
4.    仓库与生育、财务对账的情节?
5.    仓库与生育对账,数量不平等时怎么处理?
6.    库存盘点结果的财务处理?
7.    是否履行库卡的田间管理,库卡结余数是事实上盘点数,仍旧合算结余数?

  我们知晓,事务有着原子性,此时要求对数据库的操作符合“ALL-ALL-NOTHING”原则,即对于一组SQL语句要么全做,要么全不做。
Java言语中,Connection类本身提供了对业务的扶助,能够透过设置Connection的AutoCommit属性为false,然后显式的调用commit或rollback方法来兑现。但要高效的进展Connection复用,就非得提供对应的事情援助机制。可拔取每一个业务独占一个总是来促成,这种情势可以大大降低事务管理的错综复杂。

财务(Financial)

  4、连接池的分配与释放

总账管理(General Ledger)
    总体意况
1.    财务社团结构怎么样划分?(如会计部、资金部、税务部等)
2.    财务社团涉嫌什么角色?(如总裁、首席执行官、高管、会计、出纳等)
3.   
上级与下属财务社团的关联是什么样定位的?(如公司与成员公司的财务关系)
4.    是否存在海外财务协会?紧要办事内容是何等,是否独立核算?
5.    财务社团的多寡与遍布地方?
6.    财务协会的员工数量与IT系统使用人数量?
7.    出入库单据每月多少张?
8.    每月几号结账,几号报税
9.    近日是否采纳财务信息系列?什么系统?版本号多少?
10.    近日的财务音信体系运用了什么模块?
11.    是否还有此外作业体系,与财务系统是否有接口?
12.    是否有任何的独立开发的系统?都是何许?

  连接池的分配与释放,对系统的性质有很大的震慑。合理的分配与自由,可以加强连接的复用度,从而降低建立新连接的开支,同时还足以加速用户的访问速度。

    业务核算
1.    财务核算的对象与重大、难点是咋样,原因分析,涉及什么协会出席?
2.    接纳什么会计准则?是否有六个会计准则的渴求?
3.    会计科目结构呈现多少个层次?是否操纵分支机构的课程系列?
4.    是否需要统一账务凭证,集中查询或其他目标?
5.    内部往来、内部交易是否频繁,并要求立刻的拍卖?
6.    客户信用与发票、应收款催收是否合并保管?(如公司总部)
7.    具体会计岗位的现实性做事是如何?工作流程是哪些?
8.    出入库单据每月多少张?
9.    每月几号结账,几号报税?
10.    汇率是何等支配的?是集团?仍旧单体协会?
11.    考核财务核算的目标有什么样,咋样权衡财务核算的绩效?
12.   
月末或月中集中处理的办事有什么?(如结账、制作报表、财务分析等)
13.    月平均凭证数量与报表数量有微微?月末插足财务核算的人口有些许?
14.   
集团会计核算中常用到什么样核算维度,如:应收账款遵照客户帮助核算,原材料按照供应商和物品协理核算。
15.   
凭证的现金流量一般是批量指定仍旧逐张指定,对证据的现金流量处理有如何实际困难需要系统贯彻?
16.   
集团当下的结转损益是什么样操作的?是采纳结转损益功效一贯结转科目余额,依旧录入凭证来结转?
17.    集团当下是否留存外币业务,对于外币的末代调汇具体怎么处理?
18.    不同账簿的课程是否留存较大差异?
19.    公司是否留存调整期业务,调整期的数目一般不怎么?

  对于连日来的军事管制可采纳空闲池。即把早已创办但尚未分配出去的接连按创制时间存放到一个空闲池中。每当用户请求一个接连时,系统第一检查空闲池内有没有空暇连接。如若有就把建即刻间最长(通过容器的逐条存放实现)的可怜连接分配给她(实际是先做连接是否有效的判断,假诺可用就分配给用户,如不可用就把那一个连续从空闲池删掉,重新检测空闲池是否还有连接);假如没有则检查当前所开连接池是否达标连接池所允许的最辛辛那提接数(maxConn),假设没有达到,就新建一个总是,假使已经高达,就等候一定的流年(timeout)。假如在等候的小运内有连日被释放出来就足以把那多少个连续分配给等待的用户,假诺等待时间超越预定时间timeout,则赶回空值(null)。系统对已经分配出去正在拔取的连天只做计数,当使用完后再返还给空闲池。对于空闲连接的景象,可开发专门的线程定时检测,这样会花费一定的体系开发,但可以保证较快的响应速度。也可应用不开发专门线程,只是在分配前检测的章程。

    智能记账平台   
1.   
物料在同一个先生中央内活动(如从A仓库移至B仓库)时,是否要求扭转凭证?
2.    是否有成本出售的事情?假诺有,频率怎样?
3.   
会计核算一般涉及什么明细科目,即使得以请列举。对于存货科目是否设置分料、工、费的有心人科目?
4.    不同的责任人的物品调拨是否视同销售处理?
5.   
是否允许一张凭证承载多种账务消息?例如直运业务,凭证同时认可应付和营业成本(借原材料,贷应付账款,借营业成本,贷原材料)能否经受?
6.    是手工录入凭证依旧系统生成?
7.   
生成凭证的操作习惯是限期生成(如每一周、每旬、月尾、月末)依然实际工作发生立即生成凭证?

  5、连接池的配备与维护

应收应付款管理(Account  Payable)
    总体情状:
1.    销售、采购工作都提到什么币种?
2.    假诺存在多币别,汇率多长时间重新确认两次
3.   
是否存在某往来单位即是客户又是供应商的情事?即便有,收付款怎么处理?
4.   
是否存在三方交易,例如用户有对A的应收,有对B的应付,对方要求将A的应收与B的搪塞抵消;或者用户有对B应付,B要求我们付给C等等(不局限此三种情景,请用户尽量多列举应收应付的特种业务)
5.   
用户在哪个环节确认应收应付(例如是透过入库单确认应付依然收下发票时认同应付等等)
6.    确认应收应付时需要如何单据帮助(例如出入库单、收货单、发票等)
7.    收款或者付款的求实流程(例如付款是什么人提出申请,需要怎么着的审批) 
8.   
应收应付与事实上收款付款是否币别一致,例如应收的是韩元,实际收到的是日元等等
9.    是否留存一笔应收应付,两个到期日,多次收付款的事态。
10.   
用户对应收应付的保管细度是什么的?即收款时是不是要针对性某笔应收收款,依旧仅看期末余额正确即可,如故有更细的渴求。
11.    是否有预收预付情状,什么业务会有预收预付,一般比例是不怎么?
12.    期末调汇方法
13.    常常都急需怎么样的应收应付报表?
14.    坏账准备方法
15.    爆发坏账的频率如何,如若有坏账有怎样的保管办法
16.    收回坏账的效能怎样,假如有坏账收回,流程是何许的?
17.    采购过程中都涉及什么费用?财务上怎么处理?
18.    现金折扣的境况多不多,有什么样策略?

  连接池中到底应该放置多少连接,才能使系统的属性最佳?系统可选择设置最小连接数(minConn)和最奥斯汀接数(maxConn)来控制连接池中的连接。最小连接数是系统启动时连接池所成立的连接数。假诺创造过多,则系统启动就慢,但创设后系统的响应速度会赶快;如果创设过少,则系统启动的神速,响应起来却慢。这样,可以在支付时,设置较小的蝇头连接数,开发起来会快,而在系统实际利用时设置较大的,因为这样对走访客户来说速度会快些。最加纳阿克拉接数是连接池中允许连接的最大数据,具体设置有些,要看系统的访问量,可通过反复测试,找到最佳点。

   发票   
1.    是否有红字发票?假若有,是哪些原因发生的红字发票?
2.    红字发票的流水线
3.    用户涉及什么发票
4.    同一物料或者产品,在一张发票上会不会以多行展现?
5.    否使用金税系统,使用流程
6.    都有什么样费用发票

  怎么着保管连接池中的最小连接数呢?有动态和静态三种政策。动态即每隔一定时间就对连接池举行检测,假设发现连续数量稍低于最小连接数,则补充相应数额的新连接,以确保连接池的例行运作。静态是意识没事连接不够时再去检查。
连接池的贯彻

    税务管理   
1.    税务管理的目的是何许,涉及什么协会插手?
2.    公司的税务政策是哪些?
3.    公司的关键国税、地税的关键税种有哪些?
4.    税务管理的最重要与困难有咋样?原因分析
5.    税控机业务是什么处理的?是否需要与现有ERP的合一?
6.    出口退税或任何退税业务的发出频率?
7.    享受的税收促销政策、海内外的逃税政策有什么样?
8.    税务的要害报表与单据有怎样?
9.    怎么样举办税务的分析?汇报的措施有什么样?
10.    考核税务管理的目标有怎么着,怎么样衡量税务管理的绩效?
11.    报表获取、上报的时效性要求是何等?(如实时,按日/周等)

  1、连接池模型

       资金有些
1.    资金管理的对象是怎么样?涉及什么协会到场?
2.   
资金管理机关的行政编制?是财务部下属的职能部门或独立的职能部门(如归属财务部、资金部、结算中央等),依然独立的总负责人单位-财务集团?
3.   
资金管理的内容有什么?资金管理的基本点是何许?具体是何许运行的?有什么样难题?原因分析(如出纳管理、资金预测、资金结算、资金预算/计划、资金划拨、票据管理、投融资管理、或有负债、其他等)
4.   
银行账户的田间管理措施是何等(如收支两条线、集中/分散账户、母子账户类别等)?
5.    是否有中间结算制度,是哪些履行的?
6.    使用(网上)银行或银企互联的哪些服务?
7.    资金管理的首要报表与单据有咋样?
8.    是否涉嫌外汇业务、衍生金融产品业务?如何运行并操纵风险?
9.    咋样进展资产的辨析?汇报的办法有哪些?
10.    考核资金管理的目的有咋样,怎么着衡量资金管理的绩效?
11.    月平均资产结算的单据量有稍许?参预资产结算的人手有微微?
12.    各种基金管理角色的操作习惯是何等?
13.    报表获取、上报的时效性要求是怎么着?(如实时,按日/周等)
14.    结算方法有什么样?
15.   
集团银行账号在多少个商家里面的军事管制措施?是否留存六个商店共用同一个银行账号的情形?
16.   
各种独立法人的公司是各自承担自己的本钱进出业务,依旧公司统一举行财力收支结算?收与支是否两条线分别不同管控情势?
17.    出纳人员的布置情状?各种公司有和好的先生人士?
18.   
集团涉嫌现金以及银行存款的收支或者改变的都有哪些事情?尤其是有些相比不常暴发的业务需要了然。
19.   
集团开户银行有哪些?公司得到银行对账单的不二法门,以及获得到的银行对账单文件的格式以及内容样例?
20.    是否采纳网银?使用网银紧要处理的事情内容,以及业务流程?
21.   
是否由出纳举办限期的现金流预测?现金流预测的周期?现金流预测的重点类型系列,以及各预测项目的取数逻辑?现金流预测与现款实际收支结果监控的有关业务处理流程及重要控制点?

  本文研商的连接池包括一个连连池类(DBConnectionPool)和一个连接池管理类(DBConnetionPoolManager)和一个布局文件操作类(ParseDSConfig)。连接池类是对某一数据库有着连接的“缓冲池”,重要实现以下职能:①从连接池获取或创办可用连接;②使用完毕之后,把连接返还给连接池;③在系统关闭前,断开所有连接并释放连接占用的系统资源;④仍可以处理无效连接(原来登记为可用的总是,由于某种原因不再可用,如超时,通讯问题),并可以范围连接池中的连接总数不小于某个预定值和不超越某个预定值。(5)当多数据库时,且数据库是动态扩展的话,将会加到配置文件中。

       成本管理
1.    集团成本管理的对象与共同体流程是哪些,涉及什么协会参预?
2.   
成本管理的最首假诺怎么着,采取什么资金管理措施?(如正式资金、实际成本、作业成本等)有如何难题?原因分析
3.    成本管理的要紧报表与单据有哪些?
4.    怎样举行基金的解析?汇报的法子有咋样?
5.    考核成本管理的目标有什么样,咋样衡量成本管理的绩效?
6.    成本管理的数据量有多大(如报表数量、单据量或技术角度的)?
7.    报表获取、上报的时效性要求是咋样?(如实时,按日/周等)
8.    存货核算的维度是什么?例如:仓库、批号等
9.    如今利用的物品计价情势都有什么?
10.   
是否有零价格购买、销售的物品,(如赠品)?这有些物料的市值怎么统计?
11.    废品处理流程中,物料价值的处理模式?
12.   
是否留存用一种物料分多币别采购的情景?多币种采购时怎么确定物料入账币别,金额?
13.   
生产产品入库的成本总结过程,生产过程中冒出的垃圾堆咋样统计。生产超额领料的处理,加工过程中发觉废料,怎么着影响生产成本
14.   
委外加工的成本总括过程,超额领料、供应商退料、产品返工对存货计价的震慑

  连接池管理类是连续池类的外覆类(wrapper),符合单例格局,即系统中不得不有一个连接池管理类的实例。其根本用于对三个连接池对象的管制,具有以下职能:①装载并登记特定数据库的JDBC驱动程序;②依照属性文件给定的信息,创设连接池对象;③为方便管理多少个连接池对象,为每一个连接池对象取一个名字,实现连接池名字与其实例之间的照射;④跟踪客户利用连接情形,以便需假诺关门连接释放资源。连接池管理类的引入首如果为了有利于对多个连接池的采纳和保管,如系统需要连接不同的数据库,或连续相同的数据库但出于安全性问题,需要不同的用户采用不同的称号和密码。
        
2、连接池实现(经过自己改版,可以适用多数据库类型的应用以及一种数据库类型多少个数据库且数据 
库的数码得以动态扩充的应用程序)
         1),DBConnectionPool.java   数据库连接池类
         2),DBConnectionManager .java   数据库管理类
         3),DSConfigBean .java                单个数据库连接音讯Bean
         4),ParseDSConfig.java               
操作多(这多少个’多’包括不同的数据库和均等种数据库有三个数据库)
                                                            数据
配置文件xml
         5),ds.config.xml                           数据库配置文件xml
         原代码如下: 
        DBConnectionPool.java   
        ———————————————————-
      /**
 * 数据库连接池类
 */
package com.chunkyo.db;

        固定资产   
1.   
固定资产有咋样项目?核算与治本是不是合并管理(如公司总部),是否涉及其中调拨,怎么着运作?会计与税务的歧异目前是通过咋样方法处理?
2.    固定资产类别有什么?
3.    现在固定资产有稍许张卡片?
4.    是否有旧资产购买?咋样计入原值?假使统计折旧年限?按照是何许?
5.    资产是否开展实物编码?编码规则是哪些?
6.   
是否有特意的血本管理机关?管理范围如何分割的?具体的保管内容是咋样?
7.    卡片填制过程中需要有怎样票据,例如是否有发票
8.    资产购买中的运费是否会计入基金原值
9.    计提折旧用什么措施,是平均年限?
10.    折旧费用依据什么样条件分摊?
11.   
是否留存资金变动的景观?例如变更原值、变更使用机关、变更折旧艺术?
12.    资产购买过程中成本是否有编码?
13.    资产买入是否有申请流程?
14.    是否计提资产减值准备?
15.    固定资产需要怎么着报表

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Timer;

       财务报表
1.    报表或联合报表的全体流程是什么样,涉及什么协会加入?
2.   
报表或联合报表需要满足哪些监管合规要求(如大地上市集团、国资委、税务等)
3.    对外财务报表与对内管理报表有怎样?
4.    报表获取、上报的时效性要求是怎么着?(如实时,按日/周等)
5.   
各单位都会编制哪些财务报表,以及是否会做哪些数据的财务分析?编制的效能(每日/每月/每季度/…)?请列示报表名称?如今是应用什么工具编制?该工具使用功效怎样?
(能否提供报表表样)
6.    在编辑报表中,最艰苦的环节是何许?

/**
 * @author chenyanlin
 *
 */
public class DBConnectionPool implements TimerListener {

 

 private Connection con=null;
 private int inUsed=0;    //使用的连接数
 private ArrayList freeConnections = new ArrayList();//容器,空闲连接
 private int minConn;     //最小连接数
 private int maxConn;     //最辛辛那提接
 private String name;     //连接池名字
 private String password; //密码
 private String url;      //数据库连接地址
 private String driver;   //驱动
 private String user;     //用户名
 public Timer timer;      //定时
 /**
  * 
  */
 public DBConnectionPool() {
  // TODO Auto-generated constructor stub
 }
 /**
  * 制造连接池
  * @param driver
  * @param name
  * @param URL
  * @param user
  * @param password
  * @param maxConn
  */
 public DBConnectionPool(String name, String driver,String URL, String
user, String password, int maxConn)
 {
  this.name=name;
  this.driver=driver;
  this.url=URL;
  this.user=user;
  this.password=password;
  this.maxConn=maxConn;
 }
 /**
  * 用完,释放连接
  * @param con
  */
 public synchronized void freeConnection(Connection con) 
 {
  this.freeConnections.add(con);//添加到空闲连接的末梢
  this.inUsed–;
 }
 /**
  * timeout  按照timeout拿到连续
  * @param timeout
  * @return
  */
 public synchronized Connection getConnection(long timeout)
 {
  Connection con=null;
  if(this.freeConnections.size()>0)
  {
   con=(Connection)this.freeConnections.get(0);
   if(con==null)con=getConnection(timeout); //继续取得连续
  }
  else
  {
   con=newConnection(); //新建连接
  }
  if(this.maxConn==0||this.maxConn<this.inUsed)
  {
   con=null;//达到最达累斯萨兰姆(Lamb)接数,暂时不可以得到连续了。
  }
  if(con!=null)
  {
   this.inUsed++;
  }
  return con;
 }
 /**
  * 
  * 从连接池里得到连续
  * @return
  */
 public synchronized Connection getConnection()
 {
  Connection con=null;
  if(this.freeConnections.size()>0)
  {
   con=(Connection)this.freeConnections.get(0);
   this.freeConnections.remove(0);//固然连续分配出去了,就从闲暇连接里删除
   if(con==null)con=getConnection(); //继续拿到连续
  }
  else
  {
   con=newConnection(); //新建连接
  }
  if(this.maxConn==0||this.maxConn<this.inUsed)
  {
   con=null;//等待 抢先最摩苏尔接时
  }
  if(con!=null)
  {
   this.inUsed++;
   System.out.println(“拿到 ”+this.name+” 的接连,现有”+inUsed+”个连续在接纳!”);
  }
  return con;
 }
 /**
  *释放全部连连
  *
  */
 public synchronized void release()
 {
  Iterator allConns=this.freeConnections.iterator();
  while(allConns.hasNext())
  {
   Connection con=(Connection)allConns.next();
   try
   {
    con.close();
   }
   catch(SQLException e)
   {
    e.printStackTrace();
   }
   
  }
  this.freeConnections.clear();
   
 }
 /**
  * 创制新连接
  * @return
  */
 private Connection newConnection()
 {
  try {
   Class.forName(driver);
   con=DriverManager.getConnection(url, user, password);
  } catch (ClassNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   System.out.println(“sorry can’t find db driver!”);
  } catch (SQLException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
   System.out.println(“sorry can’t create Connection!”);
  }
  return con;
  
 }
 /**
  * 定时处理函数
  */
 public synchronized void TimerEvent() 
 {
     //暂时还尚未落实将来会增长的
 }

盼望对你有参照效用, 您可能感兴趣的稿子:

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub

餐饮行业解决方案之客户分析流程
餐饮行业解决方案之采购战略制定与实践流程
餐饮行业解决方案之业务设计流程
云总计参考架构几例
集团应用之性质实时度量系统演变

 }
 /**
  * @return the driver
  */
 public String getDriver() {
  return driver;
 }
 /**
  * @param driver the driver to set
  */
 public void setDriver(String driver) {
  this.driver = driver;
 }
 /**
  * @return the maxConn
  */
 public int getMaxConn() {
  return maxConn;
 }
 /**
  * @param maxConn the maxConn to set
  */
 public void setMaxConn(int maxConn) {
  this.maxConn = maxConn;
 }
 /**
  * @return the minConn
  */
 public int getMinConn() {
  return minConn;
 }
 /**
  * @param minConn the minConn to set
  */
 public void setMinConn(int minConn) {
  this.minConn = minConn;
 }
 /**
  * @return the name
  */
 public String getName() {
  return name;
 }
 /**
  * @param name the name to set
  */
 public void setName(String name) {
  this.name = name;
 }
 /**
  * @return the password
  */
 public String getPassword() {
  return password;
 }
 /**
  * @param password the password to set
  */
 public void setPassword(String password) {
  this.password = password;
 }
 /**
  * @return the url
  */
 public String getUrl() {
  return url;
 }
 /**
  * @param url the url to set
  */
 public void setUrl(String url) {
  this.url = url;
 }
 /**
  * @return the user
  */
 public String getUser() {
  return user;
 }
 /**
  * @param user the user to set
  */
 public void setUser(String user) {
  this.user = user;
 }

如有想询问更多软件,系统 IT,公司信息化 资讯,请关注我的微信订阅号:

}

图片 4


作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和天涯论坛共有,欢迎转载,但未经作者同意必须保留此段讲明,且在作品页面彰着地点给出原文连接,否则保留追究法律责任的权利。
该著作也同时发布在自身的独门博客中-Petter Liu
Blog

 DBConnectionManager .java

/**
 * 数据库连接池管理类
 */
package com.chunkyo.db;

import java.sql.Connection;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Properties;
import java.util.Vector;

import com.chunkyo.db.ParseDSConfig;
import com.chunkyo.db.DSConfigBean;
import com.chunkyo.db.DBConnectionPool;

/**
 * @author chenyanlin
 *
 */
public class DBConnectionManager {

 static private DBConnectionManager
instance;//唯一数据库连接池管理实例类
 static private int clients;                 //客户连接数
 private Vector drivers  = new Vector();//驱动音信
 private Hashtable pools=new Hashtable();//连接池
 
 /**
  * 实例化管理类
  */
 public DBConnectionManager() {
  // TODO Auto-generated constructor stub
  this.init();
 }
 /**
  * 得到唯一实例管理类
  * @return
  */
 static synchronized public DBConnectionManager getInstance()
 {
  if(instance==null)
  {
   instance=new DBConnectionManager();
  }
  return instance;
  
 }
 /**
  * 释放连接
  * @param name
  * @param con
  */
 public void freeConnection(String name, Connection con)
 {
  DBConnectionPool
pool=(DBConnectionPool)pools.get(name);//按照紧要名字拿到连接池
  if(pool!=null)
  pool.freeConnection(con);//释放连接 
 }
 /**
  * 得到一个连续依据连接池的名字name
  * @param name
  * @return
  */
 public Connection getConnection(String name)
 {
  DBConnectionPool pool=null;
  Connection con=null;
  pool=(DBConnectionPool)pools.get(name);//从名字中取得连接池
  con=pool.getConnection();//从选定的连接池中赢得连续
  if(con!=null)
  System.out.println(“得到连续。。。”);
  return con;
 }
 /**
  * 得到一个一连,按照连接池的名字和等待时间
  * @param name
  * @param time
  * @return
  */
 public Connection getConnection(String name, long timeout)
 {
  DBConnectionPool pool=null;
  Connection con=null;
  pool=(DBConnectionPool)pools.get(name);//从名字中获取连接池
  con=pool.getConnection(timeout);//从选定的连接池中拿走连续
  System.out.println(“得到连续。。。”);
  return con;
 }
 /**
  * 释放具有连接
  */
 public synchronized void release()
 {
  Enumeration allpools=pools.elements();
  while(allpools.hasMoreElements())
  {
   DBConnectionPool pool=(DBConnectionPool)allpools.nextElement();
   if(pool!=null)pool.release();
  }
  pools.clear();
 }

 /**
  * 成立连接池
  * @param props
  */
 private void createPools(DSConfigBean dsb)
 {
  DBConnectionPool dbpool=new DBConnectionPool();
  dbpool.setName(dsb.getName());
  dbpool.setDriver(dsb.getDriver());
  dbpool.setUrl(dsb.getUrl());
  dbpool.setUser(dsb.getUsername());
  dbpool.setPassword(dsb.getPassword());
  dbpool.setMaxConn(dsb.getMaxconn());
  System.out.println(“ioio:”+dsb.getMaxconn());
  pools.put(dsb.getName(), dbpool);
 }
 /**
  * 起始化连接池的参数
  */
 private void init()
 {
  //加载驱动程序
  this.loadDrivers();
  //创制连接池
  Iterator alldriver=drivers.iterator();
  while(alldriver.hasNext())
  {
   this.createPools((DSConfigBean)alldriver.next());
   System.out.println(“创制连接池。。。”);
   
  }
  System.out.println(“创立连接池完毕。。。”);
 }

 /**
  * 加载驱动程序
  * @param props
  */
 private void loadDrivers()
 {
  ParseDSConfig pd=new ParseDSConfig();
 //读取数据库配置文件
  drivers=pd.readConfigInfo(“ds.config.xml”);
  System.out.println(“加载驱动程序。。。”);
 }
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub

 }

}

DSConfigBean.java

/**
 * 配置文件Bean类
 */
package com.chunkyo.db;

/**
 * @author chenyanlin
 *
 */
public class DSConfigBean {

 private String type     =””; //数据库类型
 private String name     =””; //连接池名字
 private String driver   =””; //数据库驱动
 private String url      =””; //数据库url
 private String username =””; //用户名
 private String password =””; //密码
 private int maxconn  =0; //最地拉那接数
 /**
  * 
  */
 public DSConfigBean() {
  // TODO Auto-generated constructor stub
 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub

 }

 /**
  * @return the driver
  */
 public String getDriver() {
  return driver;
 }

 /**
  * @param driver the driver to set
  */
 public void setDriver(String driver) {
  this.driver = driver;
 }

 /**
  * @return the maxconn
  */
 public int getMaxconn() {
  return maxconn;
 }

 /**
  * @param maxconn the maxconn to set
  */
 public void setMaxconn(int maxconn) {
  this.maxconn = maxconn;
 }

 /**
  * @return the name
  */
 public String getName() {
  return name;
 }

 /**
  * @param name the name to set
  */
 public void setName(String name) {
  this.name = name;
 }

 /**
  * @return the password
  */
 public String getPassword() {
  return password;
 }

 /**
  * @param password the password to set
  */
 public void setPassword(String password) {
  this.password = password;
 }

 /**
  * @return the type
  */
 public String getType() {
  return type;
 }

 /**
  * @param type the type to set
  */
 public void setType(String type) {
  this.type = type;
 }

 /**
  * @return the url
  */
 public String getUrl() {
  return url;
 }

 /**
  * @param url the url to set
  */
 public void setUrl(String url) {
  this.url = url;
 }

 /**
  * @return the username
  */
 public String getUsername() {
  return username;
 }

 /**
  * @param username the username to set
  */
 public void setUsername(String username) {
  this.username = username;
 }

}

ParseDSConfig.java

/**
 * 操作配置文件类 读  写 修改 删除等操作 
 */
package com.chunkyo.db;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Vector;
import java.util.Iterator;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

/**
 * @author chenyanlin
 *
 */
public class ParseDSConfig {

 /**
  * 构造函数
  */
 public ParseDSConfig() {
  // TODO Auto-generated constructor stub
 }
 /**
  * 读取xml配置文件
  * @param path
  * @return
  */
 public Vector readConfigInfo(String path)
 {
  String
rpath=this.getClass().getResource(“”).getPath().substring(1)+path;
  Vector dsConfig=null;
  FileInputStream fi = null;
  try
  {
   fi=new FileInputStream(rpath);//读取路径文件
   dsConfig=new Vector();
   SAXBuilder sb=new SAXBuilder();
   Document doc=sb.build(fi);
   Element root=doc.getRootElement();
   List pools=root.getChildren();
   Element pool=null;
   Iterator allPool=pools.iterator();
   while(allPool.hasNext())
   {
    pool=(Element)allPool.next();
    DSConfigBean dscBean=new DSConfigBean();
    dscBean.setType(pool.getChild(“type”).getText());
    dscBean.setName(pool.getChild(“name”).getText());
    System.out.println(dscBean.getName());
    dscBean.setDriver(pool.getChild(“driver”).getText());
    dscBean.setUrl(pool.getChild(“url”).getText());
    dscBean.setUsername(pool.getChild(“username”).getText());
    dscBean.setPassword(pool.getChild(“password”).getText());
    dscBean.setMaxconn(Integer.parseInt(pool.getChild(“maxconn”).getText()));
    dsConfig.add(dscBean);
   }
   
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (JDOMException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  finally
  {
   try {
    fi.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  
  return dsConfig;
 }

/**
 *修改配置文件 没时间写 过段时间再贴上去 其实一样的 
 */
 public void modifyConfigInfo(String path,DSConfigBean dsb) throws
Exception
 {
  String
rpath=this.getClass().getResource(“”).getPath().substring(1)+path;
  FileInputStream fi=null; //读出
  FileOutputStream fo=null; //写入
  
 }
/**
 *充实部署文件
 *
 */
 public void addConfigInfo(String path,DSConfigBean dsb) 
 {
  String
rpath=this.getClass().getResource(“”).getPath().substring(1)+path;
  FileInputStream fi=null;
  FileOutputStream fo=null;
  try
  {
   fi=new FileInputStream(rpath);//读取xml流
   
   SAXBuilder sb=new SAXBuilder();
   
   Document doc=sb.build(fi); //得到xml
   Element root=doc.getRootElement();
   List pools=root.getChildren();//得到xml子树
   
   Element newpool=new Element(“pool”); //成立新连接池
   
   Element pooltype=new Element(“type”); //设置连接池类型
   pooltype.setText(dsb.getType());
   newpool.addContent(pooltype);
   
   Element poolname=new Element(“name”);//设置连接池名字
   poolname.setText(dsb.getName());
   newpool.addContent(poolname);
   
   Element pooldriver=new Element(“driver”); //设置连接池驱动
   pooldriver.addContent(dsb.getDriver());
   newpool.addContent(pooldriver);
   
   Element poolurl=new Element(“url”);//设置连接池url
   poolurl.setText(dsb.getUrl());
   newpool.addContent(poolurl);
   
   Element poolusername=new Element(“username”);//设置连接池用户名
   poolusername.setText(dsb.getUsername());
   newpool.addContent(poolusername);
   
   Element poolpassword=new Element(“password”);//设置连接池密码
   poolpassword.setText(dsb.getPassword());
   newpool.addContent(poolpassword);
   
   Element poolmaxconn=new Element(“maxconn”);//设置连接池最重庆接
   poolmaxconn.setText(String.valueOf(dsb.getMaxconn()));
   newpool.addContent(poolmaxconn);
   pools.add(newpool);//将child添加到root
   Format format = Format.getPrettyFormat();
      format.setIndent(“”);
      format.setEncoding(“utf-8”);
      XMLOutputter outp = new XMLOutputter(format);
      fo = new FileOutputStream(rpath);
      outp.output(doc, fo);
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (JDOMException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  finally
  {
   
  }
 }
 /**
  *剔除配置文件
  */
 public void delConfigInfo(String path,String name)
 {
  String
rpath=this.getClass().getResource(“”).getPath().substring(1)+path;
  FileInputStream fi = null;
  FileOutputStream fo=null;
  try
  {
   fi=new FileInputStream(rpath);//读取路径文件
   SAXBuilder sb=new SAXBuilder();
   Document doc=sb.build(fi);
   Element root=doc.getRootElement();
   List pools=root.getChildren();
   Element pool=null;
   Iterator allPool=pools.iterator();
   while(allPool.hasNext())
   {
    pool=(Element)allPool.next();
    if(pool.getChild(“name”).getText().equals(name))
    {
     pools.remove(pool);
     break;
    }
   }
   Format format = Format.getPrettyFormat();
      format.setIndent(“”);
      format.setEncoding(“utf-8”);
      XMLOutputter outp = new XMLOutputter(format);
      fo = new FileOutputStream(rpath);
      outp.output(doc, fo);

   
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (JDOMException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  finally
  {
   try {
    fi.close();
   } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
 }
 /**
  * @param args
  * @throws Exception 
  */
 public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub

  ParseDSConfig pd=new ParseDSConfig();
  String path=”ds.config.xml”;
  pd.readConfigInfo(path);
  //pd.delConfigInfo(path, “tj012006”);
  DSConfigBean dsb=new DSConfigBean();
  dsb.setType(“oracle”);
  dsb.setName(“yyy004”);
  dsb.setDriver(“org.oracle.jdbc”);
  dsb.setUrl(“jdbc:oracle://localhost”);
  dsb.setUsername(“sa”);
  dsb.setPassword(“”);
  dsb.setMaxconn(1000);
  pd.addConfigInfo(path, dsb);
  pd.delConfigInfo(path, “yyy001”);
 }

}


ds.config.xml   配置文件

<ds-config>
<pool>
<type>mysql</type>
<name>user</name>
<driver>com.mysql.jdbc.driver</driver>
<url>jdbc:mysql://localhost:3306/user</url>
<username>sa</username>
<password>123456</password>
<maxconn>100</maxconn>
</pool>
<pool>
<type>mysql</type>
<name>user2</name>
<driver>com.mysql.jdbc.driver</driver>
<url>jdbc:mysql://localhost:3306/user2</url>
<username>sa</username>
<password>1234</password>
<maxconn>10</maxconn>
</pool>
<pool>
<type>sql2000</type>
<name>books</name>
<driver>com.microsoft.sqlserver.driver</driver>
<url>jdbc:sqlserver://localhost:1433/books:databasename=books</url>
<username>sa</username>
<password></password>
<maxconn>100</maxconn>
</pool>
</ds-config>

  1. 连接池的采纳
      1。Connection的取得和假释
      DBConnectionManager  
    connectionMan=DBConnectionManager .getInstance();//拿到唯一实例
       //拿到连续
       String name=”mysql”;//从上下文得到你要访问的数据库的名字
       Connection  con=connectionMan.getConnection(name);
      //使用
      。。。。。。。
      // 使用完毕
     connectionMan.freeConnection(name,con);//释放,但未曾断开连接
     2。数据库连接的动态增添和连接池的动态扩充
          1。调用xml操作扩大类

      2。重新实例华连接池管理池类

 

原稿地址:http://www.blogjava.net/chunkyo/archive/2007/01/16/94266.html

Leave a Comment.