JAVA学习心得——DBUtil工具类
接口:
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工具类相关推荐
- java工具类应该抛异常吗,java学习阶段一 工具类(异常)
java学习阶段一 工具类(异常) 介绍 异常:运行期间出现的错误 背离程序本身意图的表现 基本知识 异常的分类 根类 Throwable Error 程序无法处理的错误 表示运行应用程序中教严重的问 ...
- Java学习笔记Day06 工具类及常用算法
第六章 工具类及常用算法 文章目录 第六章 工具类及常用算法 Java语言基础类 Java基础类库 Object类 概述 toString方法 方法摘要 覆盖重写 equals方法 方法摘要 默认地址 ...
- JAVA学习6-集合工具类、流
51.Collections集合工具类 除了重写compareTo方法比较TreeSet元素之外,还可以用比较器方式: 比较器实现java.util.comparator接口(Comparable是j ...
- Java入门1.2.3—一个老鸟的Java学习心得
Java入门1.2.3-一个老鸟的Java学习心得 基本信息 作者: 臧萌 出版社:清华大学出版社 ISBN:9787302217831 上架时间:2010-3-30 出版日期:2010 年3月 ...
- 计算机编程老鸟的心得,java入门123——一个老鸟java学习心得.docx
java入门123--一个老鸟的java学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心得体会了.开始学习任何一门课(包括java),兴趣最重要.一直觉得自己在学计算机 ...
- java老鸟123怎么样_java入门123——一个老鸟的java学习心得.doc
java入门123--一个老鸟的java学习心得 java入门123--一个老鸟的java学习心得 篇一:java初学者学习心得 学习Java心得体会 学习了一学期的Java课程,觉得是该总结自己的心 ...
- java Excel导入导出工具类 及使用demo
java Excel导入导出工具类 及使用demo 前言:相信进来的都是想尽快解决问题的,话不多说,按照以下步骤来,可以操作导出excel到本地,导入同理,自行学习.步骤一:直接复制以下excel工具 ...
- java入门123 pdf下载_Java入门123:一个老鸟的Java学习心得 pdf_IT教程网
资源名称:Java入门123:一个老鸟的Java学习心得 pdf 第1篇 Java语言基本语法 第1章 让自己的第一个Java程序跑起来 第2章 搭建自己的集成开发环境 第3章 Java中的基本数据类 ...
- java入门123pdf二维码pdf_Java入门123:一个老鸟的Java学习心得 pdf
资源名称:Java入门123:一个老鸟的Java学习心得 pdf 第1篇 Java语言基本语法 第1章 让自己的第一个Java程序跑起来 第2章 搭建自己的集成开发环境 第3章 Java中的基本数据类 ...
- Java入门123:一个老鸟的Java学习心得(二维码版)
Java入门123:一个老鸟的Java学习心得(二维码版)清华大学出版社 Java入门123--一个老鸟的Java学习心得(二维码版)充分考虑了初学Java的种种困难,讲解细致入微,抽丝剥茧,层层推进 ...
最新文章
- PHP学习笔记-字符串操作1
- 编译 ioftpd v7.7.3
- J2EE项目工具集(转)
- OpenCV形态morphology的实例(附完整代码)
- POJ-2186 Popular Cows (Tarjan缩点) 文末有测试数据
- 一个简单servlet程序
- java windows系统监控_Windows资源监控工具大全
- vue-cli 打包
- 统计学习导论_统计机器学习之扫盲导论篇
- 这40张图送给单身程序员,情人节请一笑而过!
- Django评论系统
- 【小墨mysql】mysql系列之三---事务
- Java进阶架构实战——Redis在京东到家的订单中的使用
- wireshark 报文分析心得 -- Identification 使用说明
- 使用嵌套循环打印图形
- R语言多层桑基图_R语言轻松搞定用户路径桑基图
- js splice,slice,split区别
- 539/CA_SI4136/SI4133/SI5351手册解读
- 将多个列重新排版成交叉表
- 使用 Mapbox 在 Vue 中开发一个地理信息定位应用