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. Windows XPSP3通过网络级身份验证方式连接Windows Server 2008远程桌面

    远程桌面大大方便了大家的日常管理工作,Windows Server 2008同样秉承这一优秀特性,并引入网络级身份验证(NLA)作为远程桌面连接的默认身份验证方式. 网络级身份验证 (NLA) 是一种 ...

  2. 聊聊阻塞与非阻塞、同步与异步、I/O模型

    1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步主要针对C端:  同步: 所谓同步,就是在c端 ...

  3. Ubuntu下看不见pthread_create(安装pthread线程库)

    使用下面的命令就可以了! sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev 然后在用man -k pthre ...

  4. C/C++函数指针(typedef简化定义)

    学习要点:        1,函数地址的一般定义和typedef简化定义;        2,函数地址的获取;        3,A函数地址作为B函数参数的传递;    函数存放在内存的代码区域内,它 ...

  5. block(八)作用域

    //闭包 NSString* s =@"123"; void (^block)() = ^() { NSLog(@"%@",s); }; block();// ...

  6. block(五)用法

    最近又从网上找了点block用法的博客,供大家参考. Block简介: Block的实际行为和Function很像,最大的差别是在可以存取同一个Scope的变量值.Block实体形式如下: ^(传入参 ...

  7. Docker容器相互访问

    原文地址:https://blog.csdn.net/subfate/article/details/81396532?utm_source=copy 很多时候,同一台机器上,需要运行多个docker ...

  8. TOP字句加SQL变量的相关问题

    SQL Server数据库中的变量可以加载TOP字句之后,下文将对TOP字句加SQL变量的相关问题进行讨论,供您参考,希望对您学习SQL数据库有所帮助. SQL Server2005开始,TOP子句后 ...

  9. dbms_monitor开启/关闭会话跟踪

    从10g开始,可以使用dbms_monitor开启/关闭会话跟踪. sql> desc dbms_monitor procedure client_id_stat_disable argumen ...

  10. 在一个gradle 的maven property 里添加多个URL

    这样是会报错的 repositories { mavenCentral() maven { url "http://maven.springframework.org/release&quo ...