谁有java编写的图书java图书馆管理系统统,要求;连接数据库的,谢谢,可以发到邮箱

JAVA数据库连接方式汇总
一、问题引入
在java程序中,需要访问,做增删改查等相关操作。如何访问数据库,做数据库的相关操作呢?
二、连接数据库方法概述
java.sql提供了一些接口和类,用于支持数据库增删改查等相关的操作。该jar包定义了java访问各种不同数据库(,oracle,sqlserver。。。。。)的统一接口和标准。同时,各个数据库厂商都提供了该jar包中定义的各个接口的实现类,用于具体实现本厂数据库的增删改查操作,即称之为&数据库驱动jdbc driver&。例如mysql的数据库驱动为:com.mysql.jdbc.driver;oracle的数据库驱动为:oracle.jdbc.driver.oracledriver。
在java程序中访问数据库,做数据库连接时,可以采用两种方式:
1、使用java.sql API
利用该包提供的各种接口和类直接访问数据库。
2、使用数据库连接池
目前存在多个开源的java数据库连接池,这些连接池都是在java.sql基础上编写而成。
&O& 该连接池的解决的问题是:
当使用java.sql中提供的api创建数据库连接时候,需要耗费很大的资源,要进行用户名密码数据库连接验证等,即耗费资源也耗费时间。如果在程序中,每次需要访问数据库时候,都进行数据库连接,那么势必会造成性能低下;同时,如果用户失误忘记释放数据库连接,会导致资源的浪费等。而数据库连接池就是解决该问题,通过管理连接池中的多个连接对象(connection),实现connection重复利用。从而,大大提高了数据库连接方面的性能。
&O& 该连接池的功能是:
负责创建,管理,释放,分配数据库连接即(connection)。首先,负责创建相应数目的数据库连接对象(connection)对象,并存放到数据库连接池(connect pool)中。当用户请求数据库连接时,该连接池负责分配某个处于空闲状态的数据库连接对象;当用户发出释放该数据库连接时,该连接池负责将该连接对象重新设置为空闲状态,以便被别的请求重复利用。同时;数据库连接池负责检查(空闲时间&最大空闲时间)的数据库连接,并释放。
&O& 连接池主要参数介绍
最小连接数:初始化时,将负责创建该数目的connection放入连接池中。
最大连接数:系统允许创建connection的最大数值。当系统请求连接时候,且连接池中不存在空闲的连接:如果connection总数未超过最大连接数,那么连接池负责创建新的connection对象,并返回该对象;如果connection总数已经到达该最大连接数,那么连接池将用户请求转入等待队列。
三、常用的数据库连接池
3、 Apache 的Jakarta DBCP
4、 BoneCP
其中,sping框架依赖的第三方使用了c3p0和dbcp两种方式;而bonecp号称是速度最快的数据库连接池。JNDI方式创建实现的datasource是真正实现了javax.sql.datasource;其他的三种方式都不是。下面的列表,列出了几种方式的区别和不同:
连接池名称
依赖的jar包
实现的datasource类
该数据源是由相应的web服务器(例如:tomcat,weblogic,websphere)负责初始化,创建,管理。程序中不需要引入特别的jar包。
Javax.sql.datasource
c3p0-0.9.xxx.jar
com.mchange.boPooledDataSource
commons-dbcp.jar,commons-pool.jar
mons.dbcp.BasicDataSource
bonecp-0.6.5.jar
& google-collections-1.0.jar
& slf4j-api-1.5.11.jar
& slf4j-log4j12-1.5.11.jar
&log4j-1.2.15.jar
BoneCPDataSource
备注:以上几种方式的数据库连接池的配置参数大同小异,略有差别;其参数的配置,既可以通过配置文件的方式配置,也可以通过硬编码的方式配置。
四、分别列出几种连接池的编码例子
(所有的例子均可以参考D:\work\qsyworkspace2\jdbctest项目)
1、 使用java.sql API直接访问数据库
详细请参考javasql.java文件。
Class.forName(&com.mysql.jdbc.Driver&);
&&&&&&&&&& String url=&jdbc:mysql://localhost:3306/editortest&;
&&&&&&&&&& String user=&root&;
&&&&&&&&&& String password=&123456&;
&&&&&&&&&& Connection cn=DriverManager.getConnection(url, user, password);
&&&&&&&&&& Statement st=cn.createStatement();
&&&&&&&&&& String sql=&select * from artical where id=1&;
&&&&&&&&&& ResultSet rs=st.executeQuery(sql);
&&&&&&&&&& while(rs.next()){
&&&&&&&&&&&&& System.out.println(&1:&+rs.getString(1));
&&&&&&&&&&&&& System.out.println(&2:&+rs.getString(2));
&&&&&&&&&&&&& System.out.println(&3:&+rs.getString(3));
&&&&&&&&&&&&& System.out.println(&4:&+rs.getString(4));&&&
2、 使用JNDI方式
这种方式,是由web服务器,实现了java.sql.datasource。由web服务器负责初始化数据源,创建connection,分配,管理connection。由于本身是由web服务器实现的功能,因此不需要在项目project中引入特别的jar包,但是需要在服务器的某些配置文件中增加相关的配置。下面,以tomcat服务器为例,讲述这种方式的使用。
&&& (1)、修改tomcat的conf下的context.xml文件,增加Resource的配置的支持。
&&& (2)、由于数据源是由tomcat负责创建,所以需要的jdbc驱动应该放到tomcat的lib路径下。
&&& (3)、编写使用java代码,并放在tomcat环境下使用,如下:
public void jnditest(){
&&&&&& // TODO Auto-generated method stub
&&&&&& try {
&&&&&&&&&& Context initcontext=new InitialContext();
&&&&&&&&&& Context context=(Context) initcontext.lookup(&java:comp/env&);
&&&&&&&&&& DataSource datasource=(DataSource)context.lookup(&jdbc/editortest&);
&&&&&&&&&& Connection cn=datasource.getConnection();
&&&&&&&&&& Statement st=cn.createStatement();
&&&&&&&&&& String sql=&select * from artical where id=1&;
&&&&&&&&&& ResultSet rs=st.executeQuery(sql);
&&&&&&&&&& while(rs.next()){
&&&&&&&&&&&&& System.out.println(&1:&+rs.getString(1));
&&&&&&&&&&&&& System.out.println(&2:&+rs.getString(2));
&&&&&&&&&&&&& System.out.println(&3:&+rs.getString(3));
&&&&&&&&&&&&& System.out.println(&4:&+rs.getString(4));&&&
&&&&&&&&&& }
&&&&&& } catch (NamingException e) {
&&&&&&&&&& // TODO Auto-generated catch block
&&&&&&&&&& e.printStackTrace();
&&&&&& } catch (SQLException e) {
&&&&&&&&&& // TODO Auto-generated catch block
&&&&&&&&&& e.printStackTrace();
&&&&&&& (4)、详情参考jndisql。Java文件,以及index.。
注意:该测试不能在main方法中测试;可以写一个jsp在tomcat环境中测试。因为:java单元的环境是jdk;而jsp的环境却是tomcat;数据连接池是在tomcat中配置的,所以能正常运行的,但java测试的环境只有jdk,所以在引用数据连接池时就时出现找不到环境的错误。
使用环境:当使用weblogic或者websphere等高级的web服务器的时候,可以考虑使用这种方式提高性能。
3、 使用C3p0方式
C3P0是开源的数据库连接,支持创建数据库连接池,管理connection等功能。使用该种方式做数据库连接时候,需要导入c3p0-0.9.1.2.jar。
同时,关于数据库连接的具体参数,例如:url,username,password,最小连接数,最大连接数。。。。。等信息既可以在xml配置文件中配置,也可以通过程序编码方式创建。Spring支持c3p0的数据库连接池方式,因此在spring环境中使用时,支持在applicationcontext.xml文件中配置。另外,由于数据库连接池在整个project中针对某个数据库而言是单例的,所以,即使通过编码的方式创建,那么要保证其单实例特性。如果存在多个,那么必然会导致性能低下。
下面,列出通过程序编码方式使用c3p0数据库连接池的方式。
ComboPooledDataSource ds = new ComboPooledDataSource();
&&&&&& try {
&&&&&&&&&& ds.setDriverClass(&com.mysql.jdbc.Driver&);
&&&&&&&&&& ds.setJdbcUrl(&jdbc:mysql://localhost:3306/editortest&);
&&&&&&&&&& ds.setUser(&root&);
&&&&&&&&&& ds.setPassword(&123456&);
&&&&&&&&&& ds.setMaxPoolSize(20);
&&&&&&&&&& ds.setInitialPoolSize(10);
&&&&&&&&&& ds.setMaxIdleTime(2000);
&&&&&&&&&& Connection cn=ds.getConnection();
&&&&&&&&&& Statement st=cn.createStatement();
&&&&&&&&&& String sql=&select * from artical where id=1&;
&&&&&&&&&& ResultSet rs=st.executeQuery(sql);
&&&&&&&&&& while(rs.next()){
&&&&&&&&&&&&& System.out.println(&1:&+rs.getString(1));
&&&&&&&&&&&&&& System.out.println(&2:&+rs.getString(2));
&&&&&&&&&&&&& System.out.println(&3:&+rs.getString(3));
&&&&&&&&&&&&& System.out.println(&4:&+rs.getString(4));&&&
&&&&&&&&&& }
&&&&&& } catch (PropertyVetoException e) {
&&&&&&&&&& // TODO Auto-generated catch block
&&&&&&&&&& e.printStackTrace();
&&&&&& } catch (SQLException e) {
&&&&&&&&&& // TODO Auto-generated catch block
&&&&&&&&&& e.printStackTrace();
&&& 备注:通常使用方式,都是通过配置文件配置,几乎不会用到这种硬编码方式。在此,只是简单介绍C3P0的使用方式。详情,可以参考c3p0test.java。
4、 使用dbcp方式
DBCP方式,是apache提供的数据源连接池方式,支持数据库连接池创建,管理connection等功能。使用环境,需要导入commons-dbcp.jar 和 commons-pool.jar两个jar包。上面提到的JNDI方式,其实质实用的就是dbcp数据源;只是他是通过在web服务器上做配置,由web服务器负责创建该数据源。
同样的,dbcp数据源也支持xml配置文件和硬编码两种方式。通常使用方式,都是通过配置文件配置,几乎不会使用硬编码方式。下面简单介绍dbcp方式的编码:
BasicDataSource ds = new BasicDataSource();
&&&&&& ds.setDriverClassName(&com.mysql.jdbc.Driver&);
&&&&&& ds.setUrl(&jdbc:mysql://localhost:3306/editortest&);
&&&&&& ds.setUsername(&root&);
&&&&&& ds.setPassword(&123456&);
&&&&&& ds.setMaxIdle(20);
&&&&&& ds.setInitialSize(10);
&&&&&& ds.setMaxActive(2000);
&&&&&& try {
&&&&&&&&&& Connection cn=ds.getConnection();
&&&&&&&&&& Statement st=cn.createStatement();
&&&&&&&&&& String sql=&select * from artical where id=1&;
&&&&&&&&&& ResultSet rs=st.executeQuery(sql);
&&&&&&&&&& while(rs.next()){
&&&&&&&&&&&&& System.out.println(&1:&+rs.getString(1));
&&&&&&&&&&&&& System.out.println(&2:&+rs.getString(2));
&&&&&&&&&&&&& System.out.println(&3:&+rs.getString(3));
&&&&&&&&&&&&& System.out.println(&4:&+rs.getString(4));&&&
&&&&&&&&&& }
&&&&&& } catch (SQLException e) {
&&&&&&&&&& // TODO Auto-generated catch block
&&&&&&&&&& e.printStackTrace();
5、 使用BoneCP方式。
BoneCP是快速高效的数据库连接池组件,据说性能上目前是最好得,比C3P0和DBCP快25倍。使用该组件,需要导入bonecp-0.6.5.jar,google-collections-1.0.jar,slf4j-api-1.5.11.jar,slf4j-log4j12-1.5.11.jar,log4j-1.2.15.jar。
下面,简单列出编码方式的使用,做简单的了解。
BoneCPDataSource ds = new BoneCPDataSource();
&&&&&& ds.setDriverClass(&com.mysql.jdbc.Driver&);
&&&&&& ds.setJdbcUrl(&jdbc:mysql://localhost:3306/editortest&);
&&&&&& ds.setUsername(&root&);
&&&&&& ds.setPassword(&123456&);
&&&&&& try {
&&&&&&&&&& Connection cn = ds.getConnection();
&&&&&&&&&& Statement st = cn.createStatement();
&&&&&&&&&& String sql = &select * from artical where id=1&;
&&&&&&&&&& ResultSet rs = st.executeQuery(sql);
&&&&&&&&&& while (rs.next()) {
&&&&&&&&&&&&& System.out.println(&1:& + rs.getString(1));
&&&&&&&&&&&&& System.out.println(&2:& + rs.getString(2));
&&&&&&&&&&&&&& System.out.println(&3:& + rs.getString(3));
&&&&&&&&&&&&& System.out.println(&4:& + rs.getString(4));
&&&&&&&&&& }
&&&&&& } catch (SQLException e) {
&&&&&&&&&& // TODO Auto-generated catch block
&&&&&&&&&& e.printStackTrace();
总结:以上,介绍了几种常用的数据源连接池;这几种连接池在使用过程,即支持硬编码的方式,也支持配置文件的配置方式;在正式实用的时候,应该尽量使用配置的方式,便于维护和管理。硬编码的方式,可以做为测试使用。同时,spring框架,通过他自己的方式集成上述几种数据源,理论上来说,都支持。各个数据源连接池都有一些公有的属性,因为他们都是从javax.sql.datasource继承而来,而且都有最大连接数,初始化连接数等概念。同时,他们又分别有各自不同的属性,做了扩展。这里只是简单的介绍,在实际使用中,想要实现高性能的数据库连接池管理,还需要深入研究每种方式的连接属性配置;例如:根据实际需要,设置合适的最小连接数和最大连接数,等待时间等。
五、Java(x).sql直接操作数据库与各个开源数据源(datasource)关系
当使用JDK提供的java(x).sql包中的类访问数据库时候,基本上用到的就是drivermanager,connection,statement,resultset。其中drivermanger是类,他调用相应的驱动(即各个数据库厂商提供的驱动)中的方法生成connection对象。Connection是接口,在各个数据库厂商提供的数据库驱动中,都实现了该接口。例如:当使用com.mysql.jdbc.driver时候,生成的connection即为com.mysql.jdbc.Connection对象。
Javax.sql包中定义了接口datasource,统一规定了作为数据源连接池必须提供的方法和属性等。各个数据源组件中提供的datasource都实现了该接口。当通过数据源连接池的方式获取connnection的时候,同样的,各个数据源组件也都提供(实现了java.sql.connection)接口的类。
更为具体的细节,可以参考jdk文档中关于java(x).sql包中相关类和接口的描述;参考开源数据源连接池组件的相关(例如C3P0);参考相关的数据库驱动。
六、附录:Java开源的数据库连接池
&&&&&&  在Java中开源的数据库连接池有以下几种 :
  1, C3P0 C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。
  2,Proxool 这是一个Java SQL Driver驱动程序,提供了对你选择的其它类型的驱动程序的连接池封装。可以非常简单的移植到现存的代码中。完全可配置。快速,成熟,健壮。可以透明地为你现存的JDBC驱动程序增加连接池功能。
  3,Jakarta DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用。
  4,DDConnectionBroker DDConnectionBroker是一个简单,轻量级的数据库连接池。
  5,DBPool DBPool是一个高效的易配置的数据库连接池。它除了支持连接池应有的功能之外,还包括了一个对象池使你能够开发一个满足自已需求的数据库连接池。
  6,XAPool XAPool是一个XA数据库连接池。它实现了javax.sql.XADataSource并提供了连接池工具。
  7,Primrose Primrose是一个Java开发的数据库连接池。当前支持的容器包括Tomcat4&5,Resin3与JBoss3.它同样也有一个独立的版本可以在应用程序中使用而不必运行在容器中。Primrose通过一个web接口来控制SQL处理的追踪,配置,动态池管理。在重负荷的情况下可进行连接请求队列处理。
  8,SmartPool SmartPool是一个连接池组件,它模仿应用服务器对象池的特性。SmartPool能够解决一些临界问题如连接泄漏(connection leaks),连接阻塞,打开的JDBC对象如Statements,PreparedStatements等. SmartPool的特性包括支持多个pools,自动关闭相关联的JDBC对象, 在所设定time-outs之后察觉连接泄漏,追踪连接使用情况, 强制启用最近最少用到的连接,把SmartPool&包装&成现存的一个pool等。
  9,MiniConnectionPoolManager MiniConnectionPoolManager是一个轻量级JDBC数据库连接池。它只需要Java1.5(或更高)并且没有依赖第三方包。
10,BoneCP BoneCP是一个快速,开源的数据库连接池。帮你管理数据连接让你的应用程序能更快速地访问数据库。比C3P0/DBCP连接池快25倍。&&源码搜搜[中文],大家一起找最好的开源代码。
&&请提交您认为需要收录的源码网站。
java图书销售管理系统 数据库图书馆借阅管理系统 收录时间: 资源分类:Java 工具:MATLAB 7.6 (R2008a) 图书管理系统,基于三大框架,使用oracle数据库....计算机行业的迅速发展,大大提高人们的工作效率。计算机信息处理系统的引进已彻底改变了许多系统的经营管理 。 图书管理系统是学校管理机制中的重要组成部分,通过对图书管理系统的运行管理机制进行调查研究,开发了此图书系统。标签:&评论:0条
javaproductmanager.r - 用Java编写的体育商品销售管理系统,连接的是oracle。是Java课程设计或数据库的经典源码。-Written using Java sporting goods sales management system, are connected to oracle.标签:Java, Java Develop&评论:0条
javaonlinebooksaless - java网上图书销售系统 本资源用JAVA语言设计的网上图书销售管理系统。里面包含毕业设计所有能用到的东西。开题报告之类的东西。你下载之后管保你不后悔 -javajavaonlinebooksaless - java网上图书销售系统 本资源用JAVA语言设计的网上图书销售管理系统。里面包含毕业设计所有能用到的东西。开题报告之类的东西。标签:Java开发, Java Develop&评论:0条
摘要:JAVA源码,综合应用,图书管理系统摘要:JAVA源码,综合应用,图书管理系统 图书馆管理系统(Java编写,MySQl数据库),含SQL数据库脚本文件,程序分客户端和服务端。标签:Java, Java/Eclipse&评论:0条
说明:网上图书管理系统(java)用Web方法开发的管理系统挂接在电子系网站上,登录后管理人员可对电子系资料室图书进行查找、借书、还书、入库、删除、更新等,而一般用户只能查找资料标签:Java&评论:0条
基于c-c++的图书管理系统 收录时间: 资源分类:C/C++ 基于c-c++的图书管理系统,实现图书借阅归还,以及图书的管理,适合初学者的学习借鉴! 下载资源 C-c + +-based基于c-c++的图书管理系统 收录时间: 资源分类:C/C++ 基于c-c++的图书管理系统,实现图书借阅归还,以及图书的管理,适合初学者的学习借鉴!标签:&评论:0条
内容索引:JAVA源码,综合应用,Java图书管理系统 这是一个大学生的毕业设计作品,Java图书管理系统,包括全部源码和系统说明、程序结构文档等。不失为一个学习的好资料。标签:Java, 综合应用&评论:0条
说明:一个图书馆案例,数据库使用了sqlserver,完成了图书馆里的基本功能 。标签:Java&评论:0条
Matlab编写的图书馆索书号图书条码文字图像分割 收录时间: 资源分类:Matlab 工具:MATLAB 7.6 (R2008a) 该程序由Matlab编写,实现图像分割功能。应用于图书馆索书号,对图书条码进行文字图像分割。分割效果非常好! 涉及的技术有边缘点数量统计,边缘检测和S分量的纹理分割。标签:&评论:2条
App1.1.zip - 图书管理系统,,,仅供教学使用无需数据库,,,程序使用二进制文件保存数据该系统能够实现简单的图书和用户管理,包括添加图书,删除图书,修改图书信息,添加用户, 删除用户,修改用户信息,外借图书,归还图书,罚款计算等等。标签:Java, Education soft system&评论:0条
内容索引:JAVA源码,综合应用,图书馆管理系统 Java图书馆管理系统源程序,运行于eclipse工程,采用Oracle数据库,附有建库脚本和程序配置说明,本系统可以完成新书订购管理、借阅管理、基础数据维护、系统帮助等主要功能,可以为JAVA编程者提供参考。标签:Java, Java/Eclipse&评论:0条
说明:图书馆管理系统采用C#和SQL Server
数据库编写
适合小型图书馆的管理标签:Java&评论:0条
图书管理系统 收录时间: 资源分类:C# 图书管理系统,包括完整的数据库,用户信息管理、借阅、查询等功能。...Library management system Library management system 文件下载列表 C#+sql图书管理系统+源码.zip (5.8MB) 数据库设计相关案例参考及其他资料.zip (5.标签:&评论:0条
Library.rar - 图书馆管理系统 jsp +sql200实现 一个简单的图书实例 图书馆管理系统由读者管理、图书管理、借阅、归还、续借、系统查询、排行榜、系统设置等管理模块组成,其规划功能模块Library.rar - 图书馆管理系统 jsp +sql200实现 一个简单的图书实例 图书馆管理系统由读者管理、图书管理、借阅、归还、续借、系统查询、排行榜、系统设置等管理模块组成,标签:Java, JAVASCRIPT&评论:0条
内容索引:JAVA源码,综合应用,图书馆管理系统,Oracle 一个JAVA图书馆管理系统,采用Oracle数据,附有创库脚本文件。可供学习。标签:Java, 综合应用&评论:0条
位置天文学图书馆 收录时间: 资源分类:Matlab 工具:MATLAB 7.13 (R2011b) 位置天文学图书馆是一个精确的工具,可以将赤道坐标转换成水平/球面坐标。...mdeuler.mdmoon.mdmxm.mdmxv.mdranrm.m 标签: 位置天文学图书馆标签:&评论:0条
ibookjavalinux.rar - Java应用程序开发LINUX平台 图书语言: 简体中文 图书类型: 程序设计 && JAVA下载 授权方式: 免费JAVA图书 图书大小: 1.6 MB -Java applicationrar - Java应用程序开发LINUX平台 图书语言: 简体中文 图书类型: 程序设计 && JAVA下载 授权方式: 免费JAVA图书 图书大小: 1.标签:Java, 电子书&评论:0条
内容索引:JAVA源码,综合应用,图书管理系统 一个初学者的作品,界面看上去不错,功能上可能还有很多不完善的地方,发出来共同交流,内有详细开发及使用说明。标签:Java, 综合应用&评论:0条
说明:一个小简单的图书查询系统.可以调用数据库里的存书情况.标签:Java&评论:0条
说明:我同学编写的一个好的图书管理信息系统,与大家分享
标签:Java&评论:0条
CopyRight (&)
All Rights Reserved&}

我要回帖

更多关于 java图书馆管理系统 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信