package com.hebut.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;

public final class DBHelper {

// 此方法为获取数据库连接

public static Connection getConnection() {
        Connection conn = null;
        try {

String driver = "com.mysql.jdbc.Driver"; // 数据库驱动
            String url = "jdbc:MySQL://127.0.0.1:3306/school";// 数据库
            String user = "root"; // 用户名
            String password = "hadoop"; // 密码
            Class.forName(driver); // 加载数据库驱动
            if (null == conn) {
                conn = DriverManager.getConnection(url, user, password);
            }

} catch (ClassNotFoundException e) {
            System.out.println("Sorry,can't find the Driver!");
            e.printStackTrace();
        } catch (SQLException e) {

e.printStackTrace();

} catch (Exception e) {
            e.printStackTrace();

}

return conn;

}

/**

* 增删改【Add、Del、Update】

*

* @param sql

* @return int

*/

public static int executeNonQuery(String sql) {
        int result = 0;
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = getConnection();
            stmt = conn.createStatement();
            result = stmt.executeUpdate(sql);
        } catch (SQLException err) {
            err.printStackTrace();
            free(null, stmt, conn);

} finally {
            free(null, stmt, conn);
        }
        return result;
    }

/**

* 增删改【Add、Delete、Update】

*

* @param sql

* @param obj

* @return int

*/

public static int executeNonQuery(String sql, Object... obj) {

int result = 0;
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = getConnection();
            pstmt = conn.prepareStatement(sql);
            for (int i = 0; i < obj.length; i++) {
                pstmt.setObject(i + 1, obj[i]);

}
            result = pstmt.executeUpdate();
        } catch (SQLException err) {

err.printStackTrace();
            free(null, pstmt, conn);
        } finally {
            free(null, pstmt, conn);
        }

return result;

}

/**

* 查【Query】

*

* @param sql

* @return ResultSet

*/

public static ResultSet executeQuery(String sql) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {

conn = getConnection();
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);
        } catch (SQLException err) {
            err.printStackTrace();
            free(rs, stmt, conn);
        }

return rs;

}

/**

* 查【Query】

*

* @param sql

* @param obj

* @return ResultSet

*/

public static ResultSet executeQuery(String sql, Object... obj) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {

conn = getConnection();

pstmt = conn.prepareStatement(sql);
            for (int i = 0; i < obj.length; i++) {

pstmt.setObject(i + 1, obj[i]);
            }
            rs = pstmt.executeQuery();
        } catch (SQLException err) {

err.printStackTrace();
            free(rs, pstmt, conn);

}

return rs;
    }

/**

* 判断记录是否存在

*

* @param sql

* @return Boolean

*/

public static Boolean isExist(String sql) {

ResultSet rs = null;

try {

rs = executeQuery(sql);

rs.last();

int count = rs.getRow();

if (count > 0) {

return true;

} else {

return false;

}

} catch (SQLException err) {

err.printStackTrace();

free(rs);

return false;

} finally {

free(rs);

}

}

/**

* 判断记录是否存在

*

* @param sql

* @return Boolean

*/

public static Boolean isExist(String sql, Object... obj) {

ResultSet rs = null;

try {

rs = executeQuery(sql, obj);

rs.last();

int count = rs.getRow();

if (count > 0) {

return true;

} else {

return false;

}

} catch (SQLException err) {

err.printStackTrace();

free(rs);

return false;

} finally {

free(rs);

}

}

/**

* 获取查询记录的总行数

*

* @param sql

* @return int

*/

public static int getCount(String sql) {

int result = 0;

ResultSet rs = null;

try {

rs = executeQuery(sql);

rs.last();

result = rs.getRow();

} catch (SQLException err) {

free(rs);

err.printStackTrace();

} finally {

free(rs);

}

return result;

}

/**

* 获取查询记录的总行数

*

* @param sql

* @param obj

* @return int

*/

public static int getCount(String sql, Object... obj) {

int result = 0;

ResultSet rs = null;

try {

rs = executeQuery(sql, obj);

rs.last();

result = rs.getRow();

} catch (SQLException err) {

err.printStackTrace();

} finally {

free(rs);

}

return result;

}

/**

* 释放【ResultSet】资源

*

* @param rs

*/

public static void free(ResultSet rs) {

try {

if (rs != null) {

rs.close();

}

} catch (SQLException err) {

err.printStackTrace();

}

}

/**

* 释放【Statement】资源

*

* @param st

*/

public static void free(Statement st) {

try {

if (st != null) {

st.close();

}

} catch (SQLException err) {

err.printStackTrace();

}

}

/**

* 释放【Connection】资源

*

* @param conn

*/

public static void free(Connection conn) {

try {

if (conn != null) {

conn.close();

}

} catch (SQLException err) {

err.printStackTrace();

}

}

/**

* 释放所有数据资源

*

* @param rs

* @param st

* @param conn

*/

public static void free(ResultSet rs, Statement st, Connection conn) {

free(rs);

free(st);

free(conn);

}

}

java版本DbhelperMysql的更多相关文章

  1. Java版本:识别Json字符串并分隔成Map集合

    前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...

  2. 你的程序支持复杂的时间调度嘛?如约而来的 java 版本

    你的程序支持复杂的时间调度嘛? 这篇文章介绍了时间适配器的c#版本,是给客户端用的,服务器自然也要有一套对应的做法,java版本的 [年][月][日][星期][时间] [*][*][*][*][*] ...

  3. 崔用志-微信开发-java版本

    崔用志-微信开发-java版本 今天看到一些关于微信开发的知识蛮好的博客,分享给大家,希望对大家有帮助. 微信开发准备(一)--Maven仓库管理新建WEB项目 微信开发准备(二)--springmv ...

  4. java版本区别

    java版本区别 点我,点我,Eclipse几个版本号的区别(part1) 点我,点我,Eclipse几个版本号的区别(part2) 点我,点我,Eclipse几个版本号的区别(part3)

  5. javac。java版本切换

    如果安装有多个Java版本时(有时候有些软件自行安装),怎样方便的进行切换呢.除了常见的设置环境变量外,今天学到了一种新的切换方法: update-alternatives --config java ...

  6. JGibbLDA:java版本的LDA(Latent Dirichlet Allocation)实现、修改及使用

    转载自:http://blog.csdn.net/memray/article/details/16810763   一.概述 JGibbLDA是一个java版本的LDA(Latent Dirichl ...

  7. Mac下修改默认的Java版本

    今天在安装Elicpse IDE的时候,发现提示安装的Java版本不支持,于是在官方去下载了Jre最新版本并安装,在安装完过后再次打开Elicpse发现提示还是不正确,如果用Google查询到一些资料 ...

  8. Mac 配置java版本 ---- MySql数据库权限设置 --- openfire

    java -version 显示java 版本 sudo su - root 切换身份 cd /usr/local/openfire 进入openfire目录 cd bin/ 进入 bin vim o ...

  9. 升级mac的java版本

    在OS X EI Capitan下, java版本太低,从oracle官网下载的dmg文件升级一直有问题, 我发现mac下的java环境有三处 #这应该是系统自带java环境,默认/usr/bin/j ...

随机推荐

  1. Mac系统清理、占用空间大、空间不够、查看系统文件大小分布

    背景: 最近老提示空间不够,很尴尬,一直弹系统提示 如图,256的空间,就剩下几个G了,其中最大头的系统占用:160G,占比60%多 正常情况下:我们可以点击管理,进入到系统磁盘优化界面: 这种适用于 ...

  2. 关于iOS应用通过OpenURL在设置打开相机权限,然后原应用会立即崩溃(重启)的理解

    最近偶然发现的一个怪现象: 应用需要相机权限,如果检测到没有开启权限,我们代码内,通过openURL跳转设置界面 //打开应用设置 let url:NSURL = NSURL(string: UIAp ...

  3. Librec的AoBPR算法实现

    Librec的AoBPR算法实现:(基于1.3版本) 要用AoBPR,但是没有找到相应的配置文件,应该怎么办呢?       ——因为用的是1.3版本,所以没有,2.0版本有的.[跟BPR参数一样,就 ...

  4. 【Hibernate】数据Session对象的常规操作收集

    因为Hibernate是ORM(对象关系映射)的,所以程序员是不需要写Sql语句的.所有的操作都是通过对对象的操作. 1,原生Session 事务管理 Transaction tx = session ...

  5. 【Struts2】result类型

    Struts2 result类型 1.dispatcher:服务器跳转到页面,通常来处理JSP,默认类型. 2.redirect:重定向到页面. Action: 1 public String red ...

  6. 那些令人喷饭的代码注释:仅以此代码献给...it's realy ?

    程序源代码中的注释经常是一个卧虎藏龙的地方,有人就很喜欢写幽默搞笑的注释内容.解释代码含义的同时,也带给人轻松神经的机会,确实是很有意思的风格,来看看这一辑国外某公司产品中的注释. 注意:看的时候严禁 ...

  7. spring 定时任务执行两次解决办法

    在web.xml中同时配置了ContextLoaderListener和DispatcherServlet?假如真是这样的话,需要删掉一个配置,因为你相当于配置了两个spring容器,两个容器分别都执 ...

  8. [企业化NET]Window Server 2008 R2[3]-SVN 服务端 和 客户端 基本使用

    1.  服务器基本安装即问题解决记录      √ 2.  SVN环境搭建和客户端使用 2.1  服务端 和 客户端 安装    √ 2.2  项目建立与基本使用     √ 2.3  基本冲突解决, ...

  9. 坑爹的高德地图API

    症状 ld: '-[MASearch poiSearchWithOption:]' in *****/Release-iphonesimulator/libMASearchKit.a(MASearch ...

  10. JQuery Tree插件——zTree

    Demo:点击下载 zTree 在线操作演示:http://www.ztree.me/v3/demo.php#_101