接口:

package com.jd.util;
import java.sql.ResultSet;public interface IRowMapper{void rowMapper(ResultSet result);}

工具类:
提供防止SQL注入和不防止SQL注入两种方法:

package com.jd.util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;/*** 数据库工具* * @author 冯申然*/
public class DBUtil {/*** 程序驱动* * @author 冯申然*/static {try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();}}/*** 连接mysql数据库* * @author 冯申然*/public static  Connection  getconnection() {try {return  DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test",root, root);} catch (SQLException e) {e.printStackTrace();}return null;  }/*** 数据的增删改查* * @author 冯申然*/public static boolean updata(String sql) {Connection connection =null;Statement statement =null;try {connection=getconnection();statement = connection.createStatement();int result = statement.executeUpdate(sql);return result>0;} catch (Exception e) {e.printStackTrace();}finally {close(statement,connection);}return false;}/*** 数据增删改查* @author 冯申然*/public static boolean updata(String sql,Object...params) {Connection connection =null;PreparedStatement prepareStatement=null;try {connection=getconnection();prepareStatement = connection.prepareStatement(sql);for(int i=1;i<=params.length;i++) {prepareStatement.setObject(i, params[i-1]);}int result = prepareStatement.executeUpdate();return result>0;} catch (Exception e) {e.printStackTrace();}finally {close(prepareStatement,connection);}return false;}/*** 登录设置* * @author 冯申然*/public static void select(String sql,IRowMapper rowMapper,Object...params) {//登录设置ResultSet result =null;Statement statement =null;Connection connection =null;PreparedStatement preparedStatement =null;try {connection=getconnection();preparedStatement =connection.prepareStatement(sql);for(int i=1;i<=params.length;i++) {preparedStatement.setObject(i, params[i-1]);}result =preparedStatement.executeQuery();rowMapper.rowMapper(result);} catch (Exception e) {e.printStackTrace();}finally {close(result,statement,connection);}}/*** 检验数据是否存在* * @author 冯申然*/public static boolean exist (String sql) {//是否存在class RowMapper implements IRowMapper{boolean state;@Overridepublic void rowMapper(ResultSet result) {try {state=result.next();} catch (SQLException e) {e.printStackTrace();}}     }RowMapper rowMapper =new RowMapper();select(sql,rowMapper);return rowMapper.state;}/*** 检验数据是否存在* * @author 冯申然*/public static boolean exist (String sql,Object...params) {//是否存在class RowMapper implements IRowMapper{boolean state;@Overridepublic void rowMapper(ResultSet result) {try {state=result.next();} catch (SQLException e) {e.printStackTrace();}}       }RowMapper rowMapper =new RowMapper();select(sql,rowMapper,params);return rowMapper.state;}/*** 查询数据* * @author 冯申然*/public static void select(String sql,IRowMapper rowMapper) {//查询Connection connection =null;Statement statement =null;ResultSet result =null;try {connection=getconnection();statement = connection.createStatement();result = statement.executeQuery(sql);rowMapper.rowMapper(result);} catch (Exception e) {e.printStackTrace();}finally {close(result,statement,connection);}   }/*** 查询数据* * @author 冯申然*/public static void Select(String sql,IRowMapper rowMapper,Object...params) {//查询Connection connection =null;Statement statement =null;ResultSet result =null;PreparedStatement preparedStatement =null;try {connection=getconnection();preparedStatement =connection.prepareStatement(sql);for(int i=1;i<=params.length;i++) {preparedStatement.setObject(i, params[i-1]);}result =preparedStatement.executeQuery() ;rowMapper.rowMapper(result);} catch (Exception e) {e.printStackTrace();}finally {close(result,statement,connection);}    }/*** 释放资源* * @author 冯申然*/private static void close(Statement statement,Connection connection){if (statement!=null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();} }if (connection!=null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();} }}private static void close(ResultSet result,Statement statement,Connection connection){if (result!=null) {try {result.close();} catch (SQLException e) {e.printStackTrace();}}if (statement!=null) {try {statement.close();} catch (SQLException e) {e.printStackTrace();} }if (connection!=null) {try {connection.close();} catch (SQLException e) {e.printStackTrace();}      }}
}

JAVA学习心得——DBUtil工具类相关推荐

  1. java工具类应该抛异常吗,java学习阶段一 工具类(异常)

    java学习阶段一 工具类(异常) 介绍 异常:运行期间出现的错误 背离程序本身意图的表现 基本知识 异常的分类 根类 Throwable Error 程序无法处理的错误 表示运行应用程序中教严重的问 ...

  2. Java学习笔记Day06 工具类及常用算法

    第六章 工具类及常用算法 文章目录 第六章 工具类及常用算法 Java语言基础类 Java基础类库 Object类 概述 toString方法 方法摘要 覆盖重写 equals方法 方法摘要 默认地址 ...

  3. JAVA学习6-集合工具类、流

    51.Collections集合工具类 除了重写compareTo方法比较TreeSet元素之外,还可以用比较器方式: 比较器实现java.util.comparator接口(Comparable是j ...

  4. Java入门1.2.3—一个老鸟的Java学习心得

    Java入门1.2.3-一个老鸟的Java学习心得 基本信息 作者: 臧萌    出版社:清华大学出版社 ISBN:9787302217831 上架时间:2010-3-30 出版日期:2010 年3月 ...

  5. 计算机编程老鸟的心得,java入门123——一个老鸟java学习心得.docx

    java入门123--一个老鸟的java学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心得体会了.开始学习任何一门课(包括java),兴趣最重要.一直觉得自己在学计算机 ...

  6. java老鸟123怎么样_java入门123——一个老鸟的java学习心得.doc

    java入门123--一个老鸟的java学习心得 java入门123--一个老鸟的java学习心得 篇一:java初学者学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心 ...

  7. java Excel导入导出工具类 及使用demo

    java Excel导入导出工具类 及使用demo 前言:相信进来的都是想尽快解决问题的,话不多说,按照以下步骤来,可以操作导出excel到本地,导入同理,自行学习.步骤一:直接复制以下excel工具 ...

  8. java入门123 pdf下载_Java入门123:一个老鸟的Java学习心得 pdf_IT教程网

    资源名称:Java入门123:一个老鸟的Java学习心得 pdf 第1篇 Java语言基本语法 第1章 让自己的第一个Java程序跑起来 第2章 搭建自己的集成开发环境 第3章 Java中的基本数据类 ...

  9. java入门123pdf二维码pdf_Java入门123:一个老鸟的Java学习心得 pdf

    资源名称:Java入门123:一个老鸟的Java学习心得 pdf 第1篇 Java语言基本语法 第1章 让自己的第一个Java程序跑起来 第2章 搭建自己的集成开发环境 第3章 Java中的基本数据类 ...

  10. Java入门123:一个老鸟的Java学习心得(二维码版)

    Java入门123:一个老鸟的Java学习心得(二维码版)清华大学出版社 Java入门123--一个老鸟的Java学习心得(二维码版)充分考虑了初学Java的种种困难,讲解细致入微,抽丝剥茧,层层推进 ...

最新文章

  1. PHP学习笔记-字符串操作1
  2. 编译 ioftpd v7.7.3
  3. J2EE项目工具集(转)
  4. OpenCV形态morphology的实例(附完整代码)
  5. POJ-2186 Popular Cows (Tarjan缩点) 文末有测试数据
  6. 一个简单servlet程序
  7. java windows系统监控_Windows资源监控工具大全
  8. vue-cli 打包
  9. 统计学习导论_统计机器学习之扫盲导论篇
  10. 这40张图送给单身程序员,情人节请一笑而过!
  11. Django评论系统
  12. 【小墨mysql】mysql系列之三---事务
  13. Java进阶架构实战——Redis在京东到家的订单中的使用
  14. wireshark 报文分析心得 -- Identification 使用说明
  15. 使用嵌套循环打印图形
  16. R语言多层桑基图_R语言轻松搞定用户路径桑基图
  17. js splice,slice,split区别
  18. 539/CA_SI4136/SI4133/SI5351手册解读
  19. 将多个列重新排版成交叉表
  20. 使用 Mapbox 在 Vue 中开发一个地理信息定位应用

热门文章

  1. Java案例—学生管理系统
  2. cad插件_【CAD】源泉插件CAD插件强大到你无法想象,掌握此插件1/10功能你就是绘图大师...
  3. Android——多功能记事本(Android Studio)
  4. D1、D系列分辨率是多少
  5. 2021-2022年数学建模资料汇总——建模软件篇
  6. Cadence Allegro交换元件位置图文教程及视频演示
  7. 惠普台式电脑引导不了系统_惠普电脑进入bios设置引导模式操作步骤图文
  8. 回溯(backtrack)
  9. SQLserver 2005 安装文档
  10. 使用Jenkins实现自动化构建!