JAVA连接、操作数据库的DBHelper

工厂模式的DBHelper

  1 import java.sql.Connection;
  2 import java.sql.DriverManager;
  3 import java.sql.PreparedStatement;
  4 import java.sql.ResultSet;
  5 import java.sql.Statement;
  6
  7 /**
  8  * 数据库工具类,负责完成打开、关闭数据库,执行查询或更新
  9  * @author MKing
 10  *
 11  */
 12 public class DbHelper {
 13     /**
 14      * 数据库URL
 15      */
 16     private static final String URL = "jdbc:mysql://localhost:3306/bookstore";
 17     /**
 18      * 登录用户名
 19      */
 20     private static final String USER = "root";
 21     /**
 22      * 登录密码
 23      */
 24     private static final String PASSWORD = "12345";
 25
 26     private static Connection connection = null;
 27     private static Statement statement = null;
 28
 29     private static DbHelper helper = null;
 30
 31     static {
 32         try {
 33             Class.forName("com.mysql.jdbc.Driver");
 34         } catch (ClassNotFoundException e) {
 35             e.printStackTrace();
 36         }
 37     }
 38
 39     private DbHelper() throws Exception {
 40         connection = DriverManager.getConnection(URL, USER, PASSWORD);
 41         statement = connection.createStatement();
 42     }
 43
 44     /**
 45      * 返回单例模式的数据库辅助对象
 46      *
 47      * @return
 48      * @throws Exception
 49      */
 50     public static DbHelper getDbHelper() throws Exception {
 51         if (helper == null || connection == null || connection.isClosed())
 52             helper = new DbHelper();
 53         return helper;
 54     }
 55
 56     /**
 57      * 执行查询
 58      * @param sql 要执行的SQL语句
 59      * @return  查询的结果集对象
 60      * @throws Exception
 61      */
 62     public ResultSet executeQuery(String sql) throws Exception {
 63         if (statement != null) {
 64             return statement.executeQuery(sql);
 65         }
 66
 67         throw new Exception("数据库未正常连接");
 68     }
 69
 70     /**
 71      * 执行查询
 72      * @param sql  要执行的带参数的SQL语句
 73      * @param args  SQL语句中的参数值
 74      * @return  查询的结果集对象
 75      * @throws Exception
 76      */
 77     public ResultSet executeQuery(String sql, Object...args) throws Exception {
 78         if (connection == null || connection.isClosed()) {
 79             DbHelper.close();
 80             throw new Exception("数据库未正常连接");
 81         }
 82         PreparedStatement ps = connection.prepareStatement(sql);
 83         int index = 1;
 84         for (Object arg : args) {
 85             ps.setObject(index, arg);
 86             index++;
 87         }
 88
 89         return ps.executeQuery();
 90     }
 91
 92     /**
 93      * 执行更新
 94      * @param sql  要执行的SQL语句
 95      * @return  受影响的记录条数
 96      * @throws Exception
 97      */
 98     public int executeUpdate(String sql) throws Exception {
 99         if (statement != null) {
100             return statement.executeUpdate(sql);
101         }
102         throw new Exception("数据库未正常连接");
103     }
104
105     /**
106      * 执行更新
107      * @param sql  要执行的SQL语句
108      * @param args  SQL语句中的参数
109      * @return  受影响的记录条数
110      * @throws Exception
111      */
112     public int executeUpdate(String sql, Object...args) throws Exception {
113         if (connection == null || connection.isClosed()) {
114             DbHelper.close();
115             throw new Exception("数据库未正常连接");
116         }
117         PreparedStatement ps = connection.prepareStatement(sql);
118         int index = 1;
119         for (Object arg : args) {
120             ps.setObject(index, arg);
121             index++;
122         }
123         return ps.executeUpdate();
124     }
125
126     /**
127      * 获取预编译的语句对象
128      * @param sql  预编译的语句
129      * @return  预编译的语句对象
130      * @throws Exception
131      */
132     public PreparedStatement prepareStatement(String sql) throws Exception {
133         return connection.prepareStatement(sql);
134     }
135
136     /**
137      * 关闭对象,同时将关闭连接
138      */
139     public static void close() {
140         try {
141             if (statement != null)
142                 statement.close();
143             if (connection != null)
144                 connection.close();
145         } catch (Exception e) {
146             e.printStackTrace();
147         } finally {
148             helper = null;
149         }
150     }
151 }

原文地址:https://www.cnblogs.com/Ddlm2wxm/p/9192893.html

时间: 2024-12-25 00:19:27

JAVA连接、操作数据库的DBHelper的相关文章

Java连接MySQL数据库及简单操作代码

1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘,然后将其目录下的MySQL-connector-java-5.0.5-bin.jar加到classpath里,具体如下: "我的电脑"-> "属性" -> "高级" -> "环境变量",在系统变量那里编辑clas

Java连接SqlServer2008数据库

Java连接SqlServer2008数据库 首先下载JDBC:下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 下载 完成后,是个exe文件,点击运行,会提示你选择解压目录. 解压完成后,进入 <你解压到得目录>\sqljdbc_3.0\chs,里边有两个我们需要的东东 一个是:sqljdbc.jar,另外一个是sqljdbc4.jar 这里使用sqljdbc4.jar 首先配置sa身份验证: 由于安装sql

Java进阶(二十五)Java连接mysql数据库(底层实现)

Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜索.特将之前使用的方法做一简单的总结.也能够在底层理解一下连接数据库的具体步骤. 实现 首先需要导入相关的jar包,我使用的为:mysql-connector-java-5.1.7-bin.jar. 下面来看一下我所使用的数据库连接方法类: MysqlUtil.java package cn.edu

转载:Java连接MySQL 数据库的正确操作流程

转载网址:http://www.bitscn.com/pdb/mysql/201005/186551.html 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例),我们主要是以MySQL数据库为例讲下Java正确连接MySQL数据库的实际操作流程,以下就是对其详细内容的描述. 当然,首先要安装有JDK(一般是JDK1.5.X).然后安装MySQL,这些都比较简单,具体过程就不说了.配置好这两个环境后,下载JDBC驱动MySQL-connector-java-5.0.5

Java连接SqlServer2008数据库(转)

Java连接SqlServer2008数据库 首先下载JDBC:下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=21599 下载 完成后,是个exe文件,点击运行,会提示你选择解压目录. 解压完成后,进入 <你解压到得目录>\sqljdbc_3.0\chs,里边有两个我们需要的东东 一个是:sqljdbc.jar,另外一个是sqljdbc4.jar 这里使用sqljdbc4.jar 首先配置sa身份验证: 由于安装sql

java 连接MySql数据库

源代码如下: import java.sql.*; public class ConToMySQL {  public static void  main(String[] args) {   //这里"liuyan"是MySql下建立的一个测试数据库   //3306是MySql数据库服务的默认端口   String url="jdbc:mysql://localhost:3306/liuyan";   String userName = "root&q

Linux系统Java连接Mysql数据库

Linux系统下Java连接Mysql数据库方法与Windows下类似,具体步骤如下: 下载JDBC(驱动):mysql-connector-java-5.1.37.tar.gz 解压下载的数据包:tar -zxvf mysql-connector-java-5.1.37.tar.gz 解压后,mysql-connector-java-5.1.29-bin.jar位于mysql-connector-java-5.1.29目录下. 配置解压后,mysql-connector-java-5.1.29

Java连接Access数据库的那些坑

Java 使用 JDBC 连接Access数据库 需要掌握的技能 1.Java SE基本技术 2.懂点JDBC技术 能够学到如何使用Java正确的连接JDBC 环境 window8.1 64位 jdk6 32位 Access 2013 Eclipse 4.4 下面是代码 package com.malin.app; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; impor

java连接oracle数据库,关闭连接出现异常:java.sql.SQLRecoverableException: IO Error: Connection reset

java.sql.SQLRecoverableException: IO Error: Connection reset at oracle.jdbc.driver.T4CConnection.logoff(T4CConnection.java:612) at oracle.jdbc.driver.PhysicalConnection.close(PhysicalConnection.java:5094) at com.sms.send.StartTaskNew.run(SmsSend.java

一个非常标准的Java连接Oracle数据库的示例代码

最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径->配置构建路径,选择第三项"库",然后点击"添加外部Jar",选择"D:\Oracle\app\oracle\product\11.2.0\server \jdbc\lib\ojdbc6_g.jar"(注:D:\Oracle为数据库的安装路径). 2.以下代码为非常标准的Oracle数据库连接代码示例: /** * 一个非常标准的连接Oracl