- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章mysql数据库连接池配置教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
第一步:写javabean 。
复制代码代码如下
package withouttears.jdbc.db; import java.util.HashMap; import java.sql.*; //JNDI有两个核心接口Context和DirContext, //Context中包含了基本的名字操作,而DirContext则将这些操作扩展到目录服务。 import javax.naming.Context; import javax.naming.InitialContext; //数据库资源的连接工厂是javax.sql.DataSource对象, //它可以创建java.sql.Connection数据库连接对象。 import javax.sql.DataSource; //目前您可以从Java开发者连接(http://java.sun.com/products/jdbc/download.html#rowsetcobundle1_0) //下载CachedRowSet的实现。下载并解压缩安装文件后,将"rowset.jar"文件放到您的类目录下。 //CachedRowSet在sun.jdbc.rowset包中。 import sun.jdbc.rowset.CachedRowSet; /** * 作者:wiThouTTears * 时间:2006-12-13 * */ public class Database { /**************************************************************/ /* 函数:localhost * 功能:建立连接池 * */ private static DataSource localhost(){ DataSource ds=null; //在HashMap中通过get()来获取value,通过put()来插入value, //ContainsKey()则用来检验对象是否已经存在 HashMap<Object,Object> cachedDs=new HashMap<Object,Object> (); if(cachedDs.containsKey("ds"))//取出空闲状态的数据库连接 { /* 在DataSource中事先建立了多个数据库连接, * 这些数据库连接保存在连接池(Connect Pool)中。 * Java程序访问数据库时,只需要从连接池中取出空闲状态的数据库连接; * 当程序访问数据库结束,再将数据库连接放回连接池。 * */ ds = (DataSource)cachedDs.get("ds"); } else try { /*在javax.naming包中提供了Context接口, * 该接口提供了将对象和名字绑定,以及通过名字检索对象的方法。 * */ Context initCtx = new InitialContext(); //lookup(String name):返回与指定的名字绑定的对象,获得数据库连接工厂 ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/testdb"); cachedDs.put("ds", ds); } catch(Exception e) { e.printStackTrace(); } return ds; } /**************************************************************/ /* 函数:getConnection * 功能:库的连接 * */ private static Connection getConnection(){ Connection conn = null; try { DataSource ds = localhost(); conn = ds.getConnection(); } catch(Exception e) { e.printStackTrace(); } return conn; } /**************************************************************/ /* 函数:close * 功能:关闭连接 * */ private static void close(Connection conn) { try { if(conn != null) conn.close(); } catch(SQLException e) { e.printStackTrace(); } } /**************************************************************/ /* 函数:executeQuery * 功能:数据查询 * */ public static CachedRowSet executeQuery(String sql) { Connection conn=null; CachedRowSet rs=null; try{ rs=new CachedRowSet(); conn=getConnection(); Statement stmt=conn.createStatement(); ResultSet rs1=stmt.executeQuery(sql); rs.populate(rs1); } catch(Exception e) { //System.out.println(e.toString()); } finally{ try { conn.close(); } catch(Exception ex) {} } return rs; } /**************************************************************/ /* 函数:executeUpdate * 功能:数据更新(添加/更改/删除) * */ public static boolean executeUpdate(String sql) { boolean bl; bl = false; Connection conn = getConnection(); try { Statement stmt = conn.createStatement(); if(stmt.executeUpdate(sql) > 0) stmt.close(); bl = true; } catch(SQLException e) { } finally { close(conn); } return bl; } /**************************************************************/ } 。
编译得到withouttears/db/Database.class并放到E:/MyWorkSpace/test/WEB-INF/classes下,即E:/MyWorkSpace/test/WEB-INF/classes/withouttears/db/Database.class,注意别弄错了。 第二步:配置Tomcat(我用是Tomcat 5.5.7) 1. 在C:/Program Files/Tomcat 5.5.7/conf/Catalina/localhost下新建一个test.xml,内容如下: <Context docBase="E:/MyWorkSpace/test" path="/test"></Context> 注:docBase为你的web文件所在地,我用的是E:/MyWorkSpace/test。path可写可不写,但在Linux下必须写上,Windows下不写我测试可以用,最好写上。这里的test.xml指定的文件夹不像我们平时用的那样在C:/Program Files/Tomcat 5.5.7/webapps/test,不过目的一样都是表示用http://localhost:8080/test/来访问,相当于IIS下的虚拟目录,可以是任意的。 2. 在C:/Program Files/Tomcat 5.5.7/conf/下建立context.xml,在E:/MyWorkSpace/test下新建WEB-INF/web.xml。 context.xml 。
复制代码代码如下
<!-- The contents of this file will be loaded for each web application --> <Context> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> <WatchedResource>META-INF/context.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts --> <!-- <Manager pathname="" /> --> <Resource name="jdbc/testdb" auth="Container" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/mytestdb" username="root" password="157744375" maxActive="100" maxIdle="30" maxWait="10000" /> </Context> 。
注: 链接池配置文件,这样我们就可以用第一步写的Javabean类Database中的localhost()函数来读取这个content.xml中的jdbc/testdb名称 web.xml 。
复制代码代码如下
<?xml version="1.0" encoding="gbk"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> test</display-name> <welcome-file-list> <welcome-file>test.jsp</welcome-file> </welcome-file-list> <!-- JSPC servlet mappings start --> <!-- JSPC servlet mappings end --> </web-app> 。
注: web.xml放web的默认主页(如:test.jsp或者index.jsp)和程序中要用到servlet的映射,不管它我们这里用不到。 第三步:写test.jsp 。
复制代码代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.sql.*"%> <%@page import="withouttears.jdbc.db.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gbk"> <title>Insert title</title> </head> <body> <% String sql=null; sql="select * from table_test"; ResultSet rs=Database.executeQuery(sql); try{ while(rs.next()){ %> 姓名:<%=rs.getString("name")%><br> 电话:<%=rs.getString("mobile")%><br> <%}}catch(Exception e){} %> </body> </html> 。
第四步:测试 。
最后此篇关于mysql数据库连接池配置教程的文章就讲到这里了,如果你想了解更多关于mysql数据库连接池配置教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在做一个关于代码学院的教程,我在这里收到一个错误,说“看起来你的函数没有返回‘唉,你没有资格获得信用卡。资本主义就是这样残酷。’”当收入参数为 75 时。”但是该字符串在控制台中返回(由于某种原因
我正在阅读 Go 的官方教程,但很难理解 Channel 和 Buffered Channels 之间的区别。教程的链接是 https://tour.golang.org/concurrency/2和
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题? Update the question所以它是on-topic对于堆栈溢出。 9年前关闭。 Improve this que
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
作为 iOS 新手,有大量书籍可以满足学习基础知识的需求。现在,我想转向一些高级阅读,例如 OAuth 和 SQLite 以及动态 API 派生的 TableView 等。您可以推荐任何资源吗? 最佳
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 8 年前。
前言 很多同学都知道,我们常见的CTF赛事除了解题赛之外,还有一种赛制叫AWD赛制。在这种赛制下,我们战队会拿到一个或多个服务器。服务器的连接方式通常是SSH链接,并且可能一个战队可能会同时有
Memcached是一个自由开源的,高性能,分布式内存键值对缓存系统 Memcached 是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象),这些数据可以是数据库调用、A
Perl 又名实用报表提取语言, 是 Practical Extraction and Report Language 的缩写 Perl 是由 拉里·沃尔(Larry Wall)于19
WSDL 是 Web Services Description Language 的缩写,翻译成中文就是网络服务描述语言 WSDL 是一门基于 XML 的语言,用于描述 Web Services 以
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我正在寻找解释在 WPF 中创建自定义用户控件的教程。 我想要一个控件,它结合了一个文本 block 、一个文本框和一个启动通用文件打开对话框的按钮。我已经完成了布局,一切都连接好了。它有效,但它是三
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我接近 fourth page of the Django tutorial 的开始看着vote查看,最后是这样的: # Always return an HttpResponseRedirect a
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
是否有任何好的 Qt QSS 教程,或者在某个地方我可以看到样式小部件的示例?如果某处可用,我想要一些完整的引用。除了有关如何设置按钮或某些选项卡样式的小教程外,我找不到任何其他内容。 最佳答案 Qt
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我是一名优秀的程序员,十分优秀!