目录:

package com.it.common; import com.it.utils.Account; import com.itheima.uitl.JDBCUtil02; import org.junit.Test; import javax.sql.rowset.JdbcRowSet; import java.sql.*; public class CommonCRUDUtil { class A implements ResultHandler{ @Override public Account handler(ResultSet resultSet) { try { while (resultSet.next()){ Account account = new Account(); String name = resultSet.getString("name"); int money = resultSet.getInt("money"); account.setMoney(money); account.setName(name); return account; } }catch (SQLException e){ e.printStackTrace(); } return null; } } //通用的查方法 @Test public void testFindall(){ Account account = findall("select * from account where id=?",new A(),6); System.out.println(account.toString()); } public T findall(String sql, ResultHandler handler, Object...args){ Connection conn = null; PreparedStatement ps = null; try { conn = JDBCUtil02.getConn(); ps = conn.prepareStatement(sql); ParameterMetaData metaData = ps.getParameterMetaData(); int count = metaData.getParameterCount(); for (int i = 0; i < count; i++) { ps.setObject(i+1, args[i]); } // 查询得到结果集 ResultSet resultSet = ps.executeQuery(); // 把得到的结果集交给调用者,让它去封装数据 T t = (T) handler.handler(resultSet); return t; } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil02.release(conn, ps); } return null; } // 通用的增删改方法 @Test public void testUpdate(){ updata02("insert into account values(?,?,?)",8,6000,"womengl"); } public void update(String sql, Object...args){ Connection conn = null; PreparedStatement ps = null; try { conn = JDBCUtil02.getConn(); ps = conn.prepareStatement(sql); for (int i = 0; i < args.length; i++) { ps.setObject(i+1, args[i]); } ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil02.release(conn, ps); } } public void updata02(String sql, Object ... args){ Connection conn = null; PreparedStatement ps = null; try { conn = JDBCUtil02.getConn(); ps = conn.prepareStatement(sql); // 获取参数源数据对象 ParameterMetaData metaData = ps.getParameterMetaData(); // 获取参数的总数 int count = metaData.getParameterCount(); for (int i = 0; i < count; i++) { ps.setObject(i+1, args[i]); } ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); }finally { JDBCUtil02.release(conn, ps); } } } package com.it.common; import java.sql.ResultSet; public interface ResultHandler { // 定义了一个数据封装的规则,或者是规范 T handler(ResultSet resultSet); } package com.itheima.uitl; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class JDBCUtil02 { static ComboPooledDataSource dataSource = null; static{ dataSource = new ComboPooledDataSource(); } // public static DataSource getDataSource(){ // return dataSource; // } /** * 获取连接对象 * @return * @throws SQLException */ public static Connection getConn() throws SQLException{ return dataSource.getConnection(); } /** * 释放资源 * @param conn * @param st * @param rs */ public static void release(Connection conn , Statement st , ResultSet rs){ closeRs(rs); closeSt(st); closeConn(conn); } public static void release(Connection conn , Statement st){ closeSt(st); closeConn(conn); } private static void closeRs(ResultSet rs){ try { if(rs != null){ rs.close(); } } catch (SQLException e) { e.printStackTrace(); }finally{ rs = null; } } private static void closeSt(Statement st){ try { if(st != null){ st.close(); } } catch (SQLException e) { e.printStackTrace(); }finally{ st = null; } } private static void closeConn(Connection conn){ try { if(conn != null){ conn.close(); } } catch (SQLException e) { e.printStackTrace(); }finally{ conn = null; } } }

jdbc配置 driverClass=com.mysql.jdbc.Driver url=jdbc:mysql://localhost/wzdata name=root password=root

c3p0-config <?xml version="1.0" encoding="UTF-8"?> com.mysql.jdbc.Driverjdbc:mysql://localhost:3306/wzdataroot123456103030100

来源:博客园

作者:进击中的青年

链接:https://www.cnblogs.com/lishi-jie/p/11800439.html

java 通用查询_java 通用查询相关推荐

  1. 【源码+教程】Java课设项目_12款最热最新Java游戏项目_Java游戏开发_Java小游戏_飞翔的小鸟_王者荣耀_超级玛丽_推箱子_黄金矿工_贪吃蛇

    马上就要期末了,同学们课设做的如何了呢?本篇为大家带来了12款热门Java小游戏项目的源码和教程,助力大家顺利迎接暑假![源码+教程]Java课设项目_12款最热最新Java游戏项目_Java游戏开发 ...

  2. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  3. 普罗米修斯监控java项目_java学到什么程度可以出去实习?

    把基础的知识学完,然后再学个框架,比如常见的SSH,SSM之类的,自己能用这个框架做个简单的项目,就可以了 简单的来说就是把下方的视频教程学完就可以找工作了(需要完整的资料可以找up) Java零基础 ...

  4. Ajax接收Java异常_java – 处理来自Servlet的Jquery AJAX响应中的异常

    我的servlet代码是 try{ //something response.setStatus(201); out.print("Data successfully saved" ...

  5. java 原子量_Java原子量 - Rickxue的个人空间 - OSCHINA - 中文开源技术交流社区

    所谓的原子量即操作变量的操作是"原子的",该操作不可再分,因此是线程安全的. 为何要使用原子变量呢,原因是多个线程对单个变量操作也会引起一些问题.在Java5之前,可以通过vola ...

  6. cmd怎么实现Java你好_java环境配置以及如何在cmd窗口运行java代码

    对于初学java的人来说,电脑的环境配置也许会让你头疼,但只要你认真一些学习,相信对你来说都是OK的啦~ 首先回到桌面,选择我的电脑,单击右键属性,进入高级系统设置,点击环境变量设置.用户变量选择Te ...

  7. java创建对象_java 创建对象的五种方式

    通过 Class 对象的 getConstructor 可以获取 java.lang.reflect.Constructor 对象 Constructor 对象用来描述类的构造方法,通过给 getCo ...

  8. java程序设计_Java程序设计:学习笔记(4-5)(未完工)

    声明: 本文内容基于"吉首大学软件学院-Java程序设计(Java面向对象程序设计)"网课与个人实践经验修改编写而成.本文属于Arcadia项目组成部分.若有错误或不足之处存在请联 ...

  9. java包装_Java基础之神奇的包装类(一)

    1. 导读 JAVA中针对八种基本数据类型提供了相对应的包装类, 今天主要基于几个问题来分享下个人对于包装类的理解, 本期先分享下面两个问题: .1 什么是包装类? 有了基本类型, 为什么还需要有包装 ...

最新文章

  1. 北京尚学堂|程序员励志名言
  2. thinkphp集成系列之phpmailer批量发送邮件
  3. C# 创建网站 无法启动与停止的问题
  4. python将argv作为参数_在jupyter / ipython notebook中将命令行参数传递给argv
  5. simulink和c语言开发,Simulink之嵌入式C代码生成-应用层和底层的接口
  6. JS判断两种格式的输入日期的正确性
  7. php7 验证url格式,url的组成格式为
  8. iOS 用Swipe手势和动画实现循环播放图片
  9. 一个关于继承和多态的问题(思索篇)
  10. Hbase记录-client访问zookeeper大量断开以及参数调优分析(转载)
  11. Serial垃圾回收器总结
  12. MySQL的索引与事务(面试必考) - 细节狂魔
  13. Buckhorn跳羚声卡驱动安装设置方法
  14. Work Stealing 的运作原理
  15. 老版本金蝶迷你版9.1升级到金蝶KIS 13.0,升级错误.
  16. 2023年,前端开发就业前景好吗?
  17. 大一计算机在线测试,计算机在线测试
  18. Linux创建软链接和硬链接的命令
  19. 【总结】1111- 如何搞定Banner背景自动换色的功能?
  20. SpringBoot多文件压缩包下载(多附件zip格式)

热门文章

  1. C++ 获取类成员虚函数地址
  2. Internet地址结构
  3. jQuery插件开发(转)
  4. metinfo小于v6.2.0版本SQL盲注利用脚本
  5. sql游标循环结果集
  6. HDU 1561 The more, The Better (树形dp)
  7. Flex 加载pdf
  8. Android P2P语音通话实现(思路探讨)
  9. 在线高精度在线计时器(秒表)
  10. 买一个二级计算机软件多少钱,计算机二级考试需要买课本吗