2019独角兽企业重金招聘Python工程师标准>>>

package com.qimh.mysql.datasource;import  java.sql.*;import javax.sql.DataSource;import  org.apache.commons.dbcp.BasicDataSource;
public class ConnectionPool{private static BasicDataSource dbs = null;public static DataSource setupDataSource(){
//        bds = new BasicDataSource();
//        //设置驱动程序
//        bds.sestDriverClassName("com.mysql.jdbc.Driver");
//        //设置连接用户名
//        bds.setUsername("root");
//        //设置连接密码
//        bds.setPassword("root");
//        //设置连接地址
//        bds.setUrl("jdbc:mysql://localhost:3306/databasename");
//        //设置初始化连接总数
//        bds.setInitialSize(50);
//        //设置同时应用的连接总数
//        bds.setMaxActive(-1);
//        //设置在缓冲池的最大连接数
//        bds.setMaxIdle(-1);
//        //设置在缓冲池的最小连接数
//        bds.setMinIdle(0);
//        //设置最长的等待时间
//        bds.setMaxWait(-1);
//        return (DataSource)bds;BasicDataSource ds = new BasicDataSource();ds.setDriverClassName("com.mysql.jdbc.Driver");ds.setUrl("jdbc:mysql://localhost:3306/ktv_demo7.5");ds.setUsername("root");ds.setPassword("123456");java.sql.Connection conn = null;/*** 最大活动连接数* 同时进行的数据库连接数不超过这个数目* */ds.setMaxActive(20);/*** 最大空闲连接数* 当释放数据库连接后,空闲连接数超过这个数目时关闭一些空闲连接*/ds.setMaxIdle(7);/*** 是否预编译SQL语句* */ds.setPoolPreparedStatements(true);try {conn = ds.getConnection();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("最大活动连接数:"+ds.getMaxActive());System.out.println("最大空闲连接数:"+ds.getMaxIdle());return ds;}
//    //显示连接池的连接个数的方法
//    public static void printDataSourceStats(DataSource ds) throws SQLException{
//        bds = (BasicDataSource)ds;
//        System.out.println();
//        System.out.println();
//    }
//     //关闭连接池的方法
//     public static void shutdownDataSource(DataSource ds) throws SQLException{
//         bds = (BasicDataSource)ds;
//         bds.close();
//     }public static void main(String[] args) {ConnectionPool.setupDataSource();}}

参考链接:http://www.2cto.com/kf/201108/100523.html
jar 包链接:https://pan.baidu.com/s/1geBLrVl

其他参考代码:

package mysqlJDBC;import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;import org.apache.commons.dbcp.BasicDataSource;import com.housekeeper.myListener.services.Const;import shopping.ConnectionEcStore.WebUtils;
import shopping.util.MyProperties;public class MysqlJDBC {private static String dbip   = MyProperties.getPropertyValue(Const.UPLOAD_CONFIG, "ecstore.dbip"); private static String dbname = MyProperties.getPropertyValue(Const.UPLOAD_CONFIG, "ecstore.dbname"); private static Connection con = null; // 定义一个MYSQL链接对象private static BasicDataSource bds = null;public static void getMysqlConnection(){try {if(bds == null){String uname =  MyProperties.getPropertyValue(Const.UPLOAD_CONFIG, "ecstore.username"); String upass =  MyProperties.getPropertyValue(Const.UPLOAD_CONFIG, "ecstore.password"); bds = new BasicDataSource();bds.setUsername(uname);bds.setPassword(upass);bds.setDriverClassName("com.mysql.jdbc.Driver");bds.setUrl("jdbc:mysql://"+dbip+"/"+dbname+"?autoReconnect=true;characterEncoding=UTF-8");bds.setInitialSize(4);// 初始化连接数bds.setMinIdle(5);// 最小空闲数,防止当洪峰到来时,再次申请连接引起的 性能开销;bds.setMaxIdle(7);// 最大空闲数,放洪峰过后,连接池中的连接过多,bds.setMaxActive(10);// 最大连接数bds.setMaxWait(5000);// 最大等待时间5秒 ,设为-1表示无限期;}con = bds.getConnection(); // 获取连接System.out.println("yes");} catch (Exception e) {System.out.print("MYSQL ERROR:" + e.getMessage());}}public static List<Map<String, Object>> findDataList(String sql) {Statement stmt = null;ResultSet rs   = null;List<Map<String, Object>> datalist = new ArrayList<Map<String, Object>>();List<String> selectFieldList       = new ArrayList<String>();try {getMysqlConnection();stmt = con.createStatement();rs = stmt.executeQuery(sql);ResultSetMetaData rsmt = rs.getMetaData();for (int i = 1; i <= rsmt.getColumnCount(); i++) {selectFieldList.add(rsmt.getColumnLabel(i));}while (rs.next()) {Map<String, Object> valueMap = new HashMap<String, Object>();for (String columnLabel : selectFieldList) {valueMap.put(columnLabel, rs.getObject(columnLabel));}datalist.add(valueMap);}} catch (Exception ex) {ex.printStackTrace();} finally {try {if (rs != null) rs.close();if (stmt != null) stmt.close();if (con != null) con.close();} catch (SQLException e) {e.printStackTrace();}}return datalist;}public static Map<String, Object> findDataObject (String sql) {List<Map<String, Object>> rs = findDataList(sql);if (rs.size() > 0) {return rs.get(0);}return new HashMap<String, Object>();}/*** 查询方法* @param sql       查询语句* @param itemlist  列名list对象* @return*/public static List<Map<String,Object>> selectDataList(String sql,List<String> itemlist){Statement stmt = null; //创建声明List<Map<String,Object>> datalist = new ArrayList<Map<String,Object>>();try{getMysqlConnection();stmt = con.createStatement();ResultSet res = stmt.executeQuery(sql);while (res.next()) {Map<String,Object> map = new HashMap<String,Object>();for(int i=0;i<itemlist.size();i++){String item = itemlist.get(i);Object value = res.getObject(item);map.put(item, value);}datalist.add(map);}res.close();}catch(Exception ex){ex.printStackTrace();}finally{try{if(stmt != null)stmt.close();if(con != null)con.close();}catch(Exception ex){ex.printStackTrace();}}return datalist;}/*** 数据修改* @param sql* @return*/public static boolean insertUpdateDelData(String sql){Statement stmt = null; //创建声明boolean b = false;try{getMysqlConnection();stmt = con.createStatement();//新增一条数据int size = stmt.executeUpdate(sql);if(size > 0)b = true;}catch(Exception ex){ex.printStackTrace();}finally{try{if(stmt != null)stmt.cancel();if(con != null)con.close();}catch(Exception ex){ex.printStackTrace();}}return b;}/*** 添加数据* @param sql* @return*/public static boolean insertData(String tableName,Map<String,Object> map){boolean b = false;try{String sql = "INSERT INTO "+tableName+" ";String itemstr = "";String valuestr = "";int index = 0;for(Entry<String, Object> entry: map.entrySet()) {String key = entry.getKey();Object value = entry.getValue();if(value instanceof String){if(index == 0){itemstr = key;valuestr = "'"+value+"'";}else{itemstr = itemstr + "," +key;valuestr = valuestr + ",'"+value+"'";}}else if(value instanceof Integer || value instanceof Float || value instanceof Double || value instanceof Long){if(index == 0){itemstr = key;valuestr = ""+value+"";}else{itemstr = itemstr + "," +key;valuestr = valuestr + ",'"+value+"'";}}else if(value instanceof Boolean){if(index == 0){itemstr = key;valuestr = "'"+value+"'";}else{itemstr = itemstr + "," +key;valuestr = valuestr + ",'"+value+"'";}} else {if(index == 0) {itemstr = key;valuestr = "'"+value+"'";} else {itemstr = itemstr + "," +key;valuestr = valuestr + ",'"+value+"'";}}index++;}sql = sql + "("+itemstr+") VALUES ("+valuestr+")";b = insertUpdateDelData(sql);}catch(Exception ex){ex.printStackTrace();}return b;}/*** 更新数据* @param tableName 要更新的表名* @param map       需要更新的字段值* @param wheremap  更新需要的条件* @return*/public static boolean updateData(String tableName,Map<String,Object> map,Map<String,Object> wheremap){boolean b = false;try{String sql = "UPDATE "+tableName+" SET ";String itemstr = "";String wherestr = "";int index = 0;for(Entry<String, Object> entry: map.entrySet()) {String key = entry.getKey();Object value = entry.getValue();if(value instanceof String){if(index == 0){itemstr = key + " = '"+value+"'";}else{itemstr = itemstr + "," +key  + " = '"+value+"'";}}else if(value instanceof Integer || value instanceof Float || value instanceof Double){if(index == 0){itemstr = key + " = "+value+"";}else{itemstr = itemstr + "," +key  + " = "+value+"";}}else if(value instanceof Boolean){if(index == 0){itemstr = key + " = '"+value+"'";}else{itemstr = itemstr + "," +key  + " = '"+value+"'";}}index++;}index = 0;for(Entry<String, Object> entry: wheremap.entrySet()) {String key = entry.getKey();Object value = entry.getValue();if(value instanceof String){if(index == 0){wherestr = key + " = '"+value+"'";}else{wherestr = wherestr + " and " +key  + " = '"+value+"'";}}else if(value instanceof Integer || value instanceof Float || value instanceof Double){if(index == 0){wherestr = key + " = "+value+"";}else{wherestr = wherestr + " and " +key  + " = "+value+"";}}else if(value instanceof Boolean){if(index == 0){wherestr = key + " = '"+value+"'";}else{wherestr = wherestr + " and " +key  + " = '"+value+"'";}}index++;}sql = sql + itemstr + " where " + wherestr;b = insertUpdateDelData(sql);}catch(Exception ex){ex.printStackTrace();}return b;}/*** 删除数据* @param tableName  要删除的表名* @param wheremap   需要删除的条件* @return*/public static boolean deleteData(String tableName,Map<String,Object> wheremap){boolean b = false;try{String sql = "DELETE FROM "+tableName+" ";String wherestr = "";int index = 0;for(Entry<String, Object> entry: wheremap.entrySet()) {String key = entry.getKey();Object value = entry.getValue();if(value instanceof String){if(index == 0){wherestr = key + " = '"+value+"'";}else{wherestr = wherestr + " and " +key  + " = '"+value+"'";}}else if(value instanceof Integer || value instanceof Float || value instanceof Double){if(index == 0){wherestr = key + " = "+value+"";}else{wherestr = wherestr + " and " +key  + " = "+value+"";}}else if(value instanceof Boolean){if(index == 0){wherestr = key + " = '"+value+"'";}else{wherestr = wherestr + " and " +key  + " = '"+value+"'";}}index++;}sql = sql + " where " + wherestr;b = insertUpdateDelData(sql);}catch(Exception ex){ex.printStackTrace();}return b;}public static void main(String arg[]) {String sql = "select max(member_id) as mid from sdb_pam_members";List<String> itemlist = new ArrayList<String>();itemlist.add("mid");
//      itemlist.add("shipping");
//      itemlist.add("ship_name");
//      itemlist.add("ship_time");
//      itemlist.add("total_amount");List<Map<String,Object>> dlist = selectDataList(sql,itemlist);
//      for(int i=0;i<dlist.size();i++)
//      {Map<String,Object> map3 = dlist.get(0);System.out.println(map3.toString());long mid = ((Long)map3.get("mid")+1);//      }Date date = new Date();String time = String.valueOf(date.getTime());time = time.substring(0,time.length()-3);Map<String,Object> map = new HashMap<String,Object>();map.put("member_id", mid);map.put("member_lv_id", 1);map.put("sex", "2");map.put("email", "yinliang@htomail.com");map.put("reg_ip", "15.12.11.1");map.put("regtime", time);map.put("cur", "CNY");map.put("member_refer", "local");map.put("source", "api");boolean b = insertData("sdb_b2c_members",map);System.out.println(b);String s = WebUtils.extends_md5("222222","yinl88",time);Map<String,Object> map2 = new HashMap<String,Object>();map2.put("member_id", mid);map2.put("login_password", s);map2.put("login_account", "yinl88");map2.put("login_type", "local");map2.put("password_account", "yinl88");map2.put("disabled", "false");map2.put("createtime", time);boolean b2 = insertData("sdb_pam_members",map2);System.out.println(b2);//     Map<String,Object> map2 = new HashMap<String,Object>();
//      map2.put("shipping", "test1111");
//      map2.put("ship_name", "test21111");
//      map2.put("ship_time", "test211111");
//      map2.put("total_amount", 60.00);
//
//      Map<String,Object> wheremap = new HashMap<String,Object>();
//      wheremap.put("order_id", "1200333");
//
//      boolean b2 = updateData("sdb_b2c_orders",map2,wheremap);
//      System.out.println(b2);//       Map<String,Object> wheremap = new HashMap<String,Object>();
//      wheremap.put("order_id", "1200303222");
//
//      boolean b2 = deleteData("sdb_b2c_orders",wheremap);
//      System.out.println(b2);}
}

读取properties 属性文件的工具类

package shopping.util;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;public class MyProperties {public static String getPropertyValue (String path, String key) {Properties props = new Properties();try {InputStream in = new FileInputStream(new File(path).getCanonicalPath());try {props.load(in);} catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return props.getProperty(key);}public static void main(String[] args) {String val = getPropertyValue("hot-deploy/ktv_demo/webapp/config/customize.properties", "mail.server.host");System.out.println(val);}
}

转载于:https://my.oschina.net/qimhkaiyuan/blog/1505478

java 数据库连接池链接数据库相关推荐

  1. Java数据库连接池实现原理

    https://blog.csdn.net/tuke_tuke/article/details/51532510 一般来说,Java应用程序访问数据库的过程是: ①装载数据库驱动程序: ②通过jdbc ...

  2. mysql连接池源码_一个JAVA数据库连接池实现源码

    原文链接:http://www.open-open.com/lib/view/open1410875608164.html // // 一个效果非常不错的JAVA数据库连接池. // from:htt ...

  3. java数据库连接池选择及开发配置

    一.数据库连接池概述 数据库连接的建立是一种耗时.性能低.代价高的操作,频繁的数据库连接的建立和关闭极大的影响了系统的性能.数据库连接池是系统初始化过程中创建一定数量的数据库连接放于连接池中,当程序需 ...

  4. 主流Java数据库连接池比较及前瞻

    本文转载自微信公众号「工匠小猪猪的技术世界」 主流数据库连接池 常用的主流开源数据库连接池有C3P0.DBCP.Tomcat Jdbc Pool.BoneCP.Druid等 C3p0: 开源的JDBC ...

  5. 主流Java数据库连接池分析(C3P0,DBCP,TomcatPool,BoneCP,Druid)

    http://developer.51cto.com/art/201807/579402.htm 主流数据库连接池 常用的主流开源数据库连接池有C3P0.DBCP.Tomcat Jdbc Pool.B ...

  6. 基于Java线程池读取数据库中数据(学习+运用)

    基于Java线程池读取数据库中数据(学习+运用) 以下是学习内容 Main.java import java.util.concurrent.ArrayBlockingQueue; import ja ...

  7. JAVA数据库连接池实现

    转载自   JAVA数据库连接池实现 连接池的管理用了了享元模式,这里对连接池进行简单设计. 一.设计思路 1.连接池配置属性DBbean:里面存放可以配置的一些属性 2.连接池接口IConnecti ...

  8. Java数据库连接池--DBCP浅析

    转载自   Java数据库连接池--DBCP浅析 前言对于数据库连接池, 想必大家都已经不再陌生, 这里仅仅设计Java中的两个常用数据库连接池: DBCP和C3P0(后续会更新). 一. 为何要使用 ...

  9. Java 数据库连接池的技术选型都应考虑哪些要素

    为什么80%的码农都做不了架构师?>>>    数据库连接池是一个牵涉面很广的话题,对于大型系统,数据库连接池的好坏,关系到系统的性能和稳定性,因此,选好数据库连接池,是系统在架构时 ...

最新文章

  1. 重置MYSQL的root 密码
  2. 要出去找工作了,看看多线程和并行的区别及什么时候该用
  3. B1230 [Usaco2008 Nov]lites 开关灯 线段树
  4. 11.分页(10-10-12)
  5. ajax获取对象获取不了属性,Ajaxing JavaScript变量到Django视图获取:AttributeError:“WSGIRequest”对象没有属性“data”...
  6. 机器学习(一) 基于sklearn库的数据集划分(交叉验证)
  7. Android开发常用工具推荐
  8. ACM之八数码问题----BFS搜索----数独游戏的模拟(下)
  9. 4-2 数据模型的生成
  10. 运行python时说要建如版权_当我运行python manage.py syncdb时,Django避免在数据库中创建PointField...
  11. [转载] numpy.exp,numpy.sqrt,np.power等函数的详细理解
  12. Cocos2d-x 3.0修改Android平台帧率fps - 解决游戏运行手机发热发烫问题
  13. 【VMware混合云】掀起你的盖头来
  14. 手机变身高清摄像头 DroidCamX完全使用教程
  15. Django下载文件名称不显示,中文乱码问题
  16. access查询两列信息合并输出_如何在Access中合并两个数据表中的数据
  17. 医疗IT系统在手术部供配电间的应用
  18. 【SQL基础】SQL常用函数简要解析
  19. GROUP BY无法运行解决办法
  20. 喜马拉雅xm文件格式转码为mp3格式

热门文章

  1. 设计模式笔记22——状态模式(state)
  2. lanker php 大码,GitHub - TREYWANGCQU/LANKERS: CQU-LANKERS
  3. 广告投放方案-精准广告投放方案应该怎么做?
  4. c语言转化音乐格式转换器安卓版,音乐格式转换器安卓版
  5. 贪心算法---礼堂的安排
  6. dcc-garch matlab,如何用Eviews或者MATLAB实现DCC-garch模型?
  7. alertmanager 钉钉告警配置
  8. 港科夜闻|香港科大新研究显示人体T细胞免疫反应可有效应对新冠病毒变异株Omicron...
  9. c语言printf输出字符表情,C语言中printf输出的奇怪错误
  10. 深入解析:svm支持向量机python代码