本来项目都是用到例如Hibernate这些工具的,可是因为现在项目要求现在又丫的回到基于JDK的解决方案了。
这个方法很简单,但是对于数据的连接使用连接池,连接池也是直接初始化的。
package com; import java.sql.*; import java.util.*; import org.apache.commons.dbcp.BasicDataSource; /** * @说明 数据库连接管理 * @author cuisuqiang */ public class ConnectionManager { /** * @说明 执行一条SQL */ @SuppressWarnings("unchecked") public static List<Object[]> excuteQuery(String sql) { Connection conn = null; PreparedStatement psta = null; ResultSet resultSet = null; List<Object[]> relist = new ArrayList<Object[]>(); // 总数据 Object[] objects = null; // 每行数据 try { conn = ConnectionManager.getConn(); // 得到链接 if(null != conn){ psta = conn.prepareStatement(sql); resultSet = psta.executeQuery(); // 执行查询,返回结果接集合 int count = resultSet.getMetaData().getColumnCount(); // 一共有多少列数据 // 循环行 while (resultSet.next()) { objects = new Object[count]; // 数据集索引从 1 开始,而数组存放时是从 0 开始 for (int i = 1; i <= count; i++) { objects[i - 1] = resultSet.getObject(i); } relist.add(objects); } } } catch (Exception e) { e.printStackTrace(); relist = null; } finally { try { if(null != resultSet) resultSet.close(); if(null != psta) psta.close(); if(null != conn) conn.close(); } catch (Exception e2) { } } return relist; } private static org.apache.commons.dbcp.BasicDataSource ds = null; static { ds = new BasicDataSource(); // 组建数据源对象 int initialSize = 1; // 连接池启动时的初始值 int maxActive = 10; // 连接池的最大值 int maxIdle = 1; // 最大空闲值 int minIdle = 1; // 最小空闲值 ds.setDriverClassName("com.mysql.jdbc.Driver"); ds.setUrl("jdbc:mysql://192.168.154.128:3306/t2?useUnicode=true&characterEncoding=gbk"); ds.setUsername("root"); ds.setPassword("123456"); ds.setInitialSize(initialSize); ds.setMaxActive(maxActive); ds.setMaxIdle(maxIdle); ds.setMinIdle(minIdle); } /** * 从数据源中取得数据库连接 */ public static Connection getConn() { try { return ds.getConnection(); } catch (SQLException e) { e.printStackTrace(); } return null; } }
我使用的是BasicDataSource,你可能需要两个Jar包,commons-pool.jar,commons-dbcp.jar,连接mysql的话需要mysql-connector-java-3.1.13-bin.jar。
写一个mian方法直接测试:
package com; import java.util.List; public class T { @SuppressWarnings("unchecked") public static void main(String[] args) { try { List<Object[]> list = ConnectionManager.excuteQuery("select * from t"); for (int i = 0; i < list.size(); i++) { Object[] os = list.get(i); for(Object o : os){ if (o instanceof String) { String s = (String) o; String newStr = new String(s.getBytes("ISO-8859-1"),"GBK"); System.out.print("字符串:" + newStr + "\t\t"); }else if(o instanceof Long){ Long s = (Long) o; System.out.print("浮点值:" + s + "\t\t"); }else if(o instanceof Integer){ Integer s = (Integer) o; System.out.print("整形值:" + s + "\t\t"); }else{ System.out.print("未知型:" + o + "\t\t"); } } System.out.println(); } } catch (Exception e) { e.printStackTrace(); } } }
我返回的是一个List集合,里面包含了一个Object数组。调用者在收到这个返回集合后可以根据实际情况进行解析,公共方法只是执行SQL,然后得到数据连接进行数据访问。
请您到ITEYE看我的原创:http://cuisuqiang.iteye.com
或支持我的个人博客,地址:http://www.javacui.com
相关推荐
自己写的一个使用jdbc连接mysql的源代码,暂时未补充其他的方法,其中内置一个字符串MD5算法的类
Java SpringBoot 使用JDBC连接Mysql数据库(整套解决方案带源码和安装包) 使用教程 https://blog.csdn.net/Highning0007/article/details/123811891
以及java使用jdbc对mysql的事务处理,对execute、executeUpdate、executeQuery进行了封装,把繁琐的创建数据库连接对象、PreparedStatement对象、结果集对象,打开关闭连接进行了封装,只需要dao类继承DBTool几个...
java 使用jdbc 连接mysql 实现增删改查java 使用jdbc 连接mysql 实现增删改查java 使用jdbc 连接mysql 实现增删改查java 使用jdbc 连接mysql 实现增删改查java 使用jdbc 连接mysql 实现增删改查
JDBC for mysql 5.1.6
PB通过JDBC连MYSQL教程,详细介绍尽在其中。。
android通过JDBC直接访问Mysql数据库
MySQL JDBC驱动包8.0, mysql-connector-java-8.0.29。 供Java连接数据库使用。
使用JAVA编写的最简单的JDBC代码,mysql数据库需要自己搭建一下,环境是eclipse,mysql使用的是xampp。
此文档中详细的记载了,mysql与JDBC中文问题的解决方法,希望可以帮助到你!
JDBC连接MySQL
PB11.5 通过JDBC连接MySQL,连接包:mysql-connector-java-5.1.28.jar
jdbc与mysql链接包jdbc与mysql链接包jdbc与mysql链接包jdbc与mysql链接包
JDBC连接Mysql数据库案例,共有两个表,分装好了JDBC连接的步骤代码
eclipse连接MySql工具类,具备增删改查功能,利用反射进行单个和多个查询,附有mysql-connector.jar和SQL文件。
使用JDBC连接Mysql数据库实现增删改查,用于引导新手入门,项目可运行,有比较详细的注释。
JDBC MYSQL CONNETOR mysql-connector-java-5.1.15最新版本!
JDBC连接MySQL数据库驱动Class.forName("com.mysql.cj.jdbc.Driver");
java代码实现JDBC连接MySql以及引用驱动程序包 java代码实现JDBC连接MySql以及引用驱动程序包
jdbc连接mysql的例子,调试通过的 给初学者们节省时间