这是目录结构:

其中后面三个类都是第一个类的子类,第一个类是父类。

JdbcUtils:

package com.smt.db;import java.io.IOException;
import java.io.InputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;import com.alibaba.druid.pool.DruidDataSource;public class JdbcUtils {// 定义变量private Connection ct = null;// 大多数情况下用preparedstatement替代statementprivate PreparedStatement ps = null;private ResultSet rs = null;// 连接数据库的参数protected String url = "";protected String username = "";protected String driver = "";protected String passwd = "";private CallableStatement cs = null;protected DruidDataSource dataSource = new DruidDataSource();public CallableStatement getCs() {return cs;}// 得到连接public void getConnection() {try {ct = dataSource.getConnection();ct.setAutoCommit(true);} catch (Exception e) {e.printStackTrace();}}public void closeConnection(){try {ct.close();} catch (SQLException e) {// TODO Auto-generated catch block
            e.printStackTrace();}}public void BeginTran(){try {ct = dataSource.getConnection();ct.setAutoCommit(false);} catch (Exception e) {e.printStackTrace();}}public void CommitTran() throws SQLException{ct.commit();ct.close();}public void RollBackTran(){try {ct.rollback();} catch (SQLException e) {// TODO Auto-generated catch block
            e.printStackTrace();}finally{try {ct.close();} catch (SQLException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}}public List<Map> executeQuery(String sql, String[] parameters) {List<Map> list = new ArrayList<Map>();try {ps = ct.prepareStatement(sql);if (parameters != null) {for (int i = 0; i < parameters.length; i++) {ps.setString(i + 1, parameters[i]);}}rs = ps.executeQuery();List<Map> heads = new ArrayList<Map>();ResultSetMetaData rsmd = rs.getMetaData();// rs为查询结果集int count = rsmd.getColumnCount();for (int i = 1; i <= count; i++) {Map meta = new HashMap();meta.put("colName", rsmd.getColumnName(i));meta.put("dataType", rsmd.getColumnTypeName(i));heads.add(meta);// 把列名存入向量heads中
            }while (rs.next()) {Map map = new HashMap();for (Map col : heads) {switch (col.get("dataType").toString()) {case "VARCHAR":map.put(col.get("colName").toString().toLowerCase(),rs.getString(col.get("colName").toString()));break;case "BIGINT":map.put(col.get("colName").toString().toLowerCase(), rs.getInt(col.get("colName").toString()));break;case "SMALLINT":map.put(col.get("colName").toString().toLowerCase(), rs.getInt(col.get("colName").toString()));break;case "INTEGER":map.put(col.get("colName").toString().toLowerCase(), rs.getInt(col.get("colName").toString()));break;case "BIGDECIMAL":map.put(col.get("colName").toString().toLowerCase(),rs.getBigDecimal(col.get("colName").toString()));break;case "DECIMAL":map.put(col.get("colName").toString().toLowerCase(),rs.getBigDecimal(col.get("colName").toString()));break;case "DATE":map.put(col.get("colName").toString().toLowerCase(),rs.getString(col.get("colName").toString()));break;case "DATETIME":map.put(col.get("colName").toString().toLowerCase(),rs.getString(col.get("colName").toString()));break;default:break;}}list.add(map);}} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e.getMessage());} finally {close(rs, ps);}return list;}// 先写一个update、delete、insert// sql格式:update 表名 set 字段名 =?where 字段=?// parameter神应该是(”abc“,23)public void executeUpdate(String sql, String[] parameters) {try {ps = ct.prepareStatement(sql);if (parameters != null) {for (int i = 0; i < parameters.length; i++) {ps.setString(i + 1, parameters[i]);}}ps.executeUpdate();} catch (Exception e) {e.printStackTrace();// 开发阶段// 抛出异常// 可以处理,也可以不处理throw new RuntimeException(e.getMessage());} finally {close(rs, ps);}}public void close(ResultSet rs, Statement ps) {// 关闭资源(先开后关)if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}rs = null;}if (ps != null) {try {ps.close();} catch (SQLException e) {e.printStackTrace();}ps = null;}}
}

LocalHelper:

package com.smt.db;import java.io.IOException;
import java.io.InputStream;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;public class LocalHelper extends JdbcUtils {private static Properties  pp = null;private InputStream fis = null;public LocalHelper(){super();pp = new Properties();fis=OggHelper.class.getClassLoader().getResourceAsStream("local.properties");//fis = new FileInputStream();try {pp.load(fis);} catch (IOException e) {// TODO Auto-generated catch block
            e.printStackTrace();}url = pp.getProperty("dbUrl");driver = pp.getProperty("dbDriver");username = pp.getProperty("dbUserName");passwd = pp.getProperty("dbPassword");dataSource.setDriverClassName(driver);dataSource.setUrl(url);dataSource.setUsername(username);dataSource.setPassword(passwd);}
}

local.properties:

#application configs
#jdbc c3p0 config
dbDriver=com.mysql.jdbc.Driver
dbUrl = jdbc:mysql://localhost:3306/shbi?characterEncoding=utf8
dbUserName = root
dbPassword = root

我的JdbcUtils类相关推荐

  1. JDBCUtils类测试

    package cn.itcast.datasource.druid;import cn.itcast.utils.JDBCUtils;import java.sql.Connection; impo ...

  2. JDBCUtils类的编写(创建连接,关闭连接)

    package com.usc.jdbcutil;import java.sql.Connection; import java.sql.DriverManager; import java.sql. ...

  3. c mysql封装 jdbc_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现

    最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...

  4. 利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)...

    最近看老罗的视频,跟着完成了利用Java操作MySQL数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...

  5. mysql封装 javabean,利用Java针对MySql封装的jdbc框架类JdbcUtils完整实现(包含增删改查、JavaBean反射原理,附源码)...

    最近看老罗的视频,跟着完成了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查.其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口 ...

  6. java mysql jdbc 封装_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)...

    近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...

  7. java jdbc工具类抽取_JavaWeb入门(三):JDBC工具类的抽取

    一.通过上篇文章,我们已经可以使用JDBC对数据库中的表进行增删改查啦(JDBC的基本使用:https://www.cnblogs.com/Infancy/p/12499806.html),我们对上篇 ...

  8. day17(JDBC入门jdbcUtils工具介绍)

    day17 JDBC整体思维导图 JDBC入门 导jar包:驱动! 加载驱动类:Class.forName("类名"); 给出url.username.password,其中url ...

  9. properties文件的用法;utils类封装数据库连接、资源关闭、通用的增删改,以及两种通用的查询方法

    /*=========================properties文件使用===============================*/ 某*.properties文件内容例如: driv ...

  10. JDBCUtils工具库

    mysql.properties配置文件 driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/db02?rewriteBatche ...

最新文章

  1. Spring-Boot:写出来的网站访问不到静态资源?怎样通过url访问SpringBoot项目中的静态资源?localhost:8989/favicon.ico访问不了工程中的图标资源?
  2. 深度学习者的入门福利-Keras深度学习笔记
  3. 深度解读NLP文本情感分析Pipeline
  4. 宝塔更换域名_阿里云如何建站、域名、搭建网站?
  5. 程序包com.sun.istack.internal不存在
  6. 不使用for完成一段有空格间隔的字符串,分辨长度大于等于4的单词(求各位高人修改,我表示我是菜鸟,这个算法实在太长了)...
  7. 【送书福利】第一次送书活动(总共10本)
  8. catia func 三菱后处理_20款三菱帕杰罗V97奢华SUV 津港促销价_搜狐汽车
  9. 今天发个技术贴,增加自信心
  10. QuickLook 空格键预览文件工具
  11. 关于 Injection of autowired dependencies failed 错误的解决方法
  12. mysql binlog 断点续传_mysql5.6 binlog实时异地备份之我见犹怜
  13. visual foxpro 程序员指南_1024程序员节:盘点小红书今年发生的重要bug
  14. [SCOI2009]围豆豆
  15. 秀米 html5 编辑工具,秀米编辑器
  16. Unity中使用VideoPlayer控制播放暂停进度条
  17. 查找Windows和MacBook序列号
  18. anna 跨域_认识anna morgiel的Android初级软件工程师和热情的社区组织者
  19. 计算机网络技术(六)——网络应用技术
  20. 2.1、Segment Routing基础之SR关键概念

热门文章

  1. 洛谷 1984 [SDOI2008]烧水问题
  2. uva 1328(kmp)
  3. jquery的smartWizard插件使用方法
  4. SQL Server 版本变更检查
  5. 关于suitescript 无法读取Item Number Field
  6. 03 爬虫之selenium模块
  7. matlab slice
  8. break与continue关键字的使用
  9. 1.3 - 字典练习题
  10. 关于STM32 __IO 的变量定义