基于JDBC访问MySql公共方法实例解析
程序员文章站
2022-08-07 22:38:39
本来项目都是用到例如hibernate这些工具的,可是因为现在项目要求现在又丫的回到基于jdk的解决方案了。这个方法很简单,但是对于数据的连接使用连接池,连接池也是直接初始化的。package com...
本来项目都是用到例如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,然后得到数据连接进行数据访问。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。