`

【转】Java版DBHelper【简单】(MySQL数据库)

 
阅读更多

1、测试数据库

1.1 数据库数据

  

1.2 数据库结构

  

1.3 数据库脚本

DROP TABLE IF EXISTS `school`.`student`;

 

CREATE TABLE `school`.`student` (

`id` int(11) NOT NULL default '0',

`name` varchar(20) default NULL,

`sex` varchar(10) default NULL,

`age` int(10) default NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 

INSERT INTO `student` VALUES ('201201', '张三', '男', '21');

INSERT INTO `student` VALUES ('201202', '李四', '男', '22');

INSERT INTO `student` VALUES ('201203', '王五', '女', '20');

INSERT INTO `student` VALUES ('201204', '赵六', '男', '21');

INSERT INTO `student` VALUES ('201205', '小红', '女', '19');

INSERT INTO `student` VALUES ('201206', '小明', '男', '22');

2、DBHelper用法

2.1 增加【Add】

    【示例代码

 

package com.hebut.util;

 

public class DBHelperApp {

 

    /**

     * 增加【 Add

     */

    public static void main(String[] args) {

        // 第一种情况

        String sql1="Insert Into student Values ('201208', ' 张三 ', ' ', '21')";

        System.out .println(DBHelper.executeNonQuery (sql1));

       

        // 第二种情况

        String sql2="Insert Into student Values (?,?,?,?)";

        Object[] obj = new Object[]{"201209"," 张三 ", " ", "21"};

        System.out .println(DBHelper.executeNonQuery (sql2,obj));

    }

}

 

    【运行结果

    1)控制台

 

1

1

 

2)数据库

  

2.2 删除【Del】

    【示例代码

 

package com.hebut.util;

 

public class DBHelperApp {

 

    /**

     * 删除【 Del

     */

    public static void main(String[] args) {

        // 第一种情况

        String sql1="Delete From student Where id='201202'";

        System.out .println(DBHelper.executeNonQuery (sql1));

       

        // 第二种情况

        String sql2="Delete From student Where id=? And name=?";

        Object[] obj = new Object[]{"201208"," 张三 "};

        System.out .println(DBHelper.executeNonQuery (sql2,obj));

    }

 

}

 

    【运行结果

    1)控制台

 

1

1

 

    2)数据库

  

    从图中可以看出id为"201202 "和"201208 "已经删除。

2.3 修改【Update】

    【示例代码

 

package com.hebut.util;

 

public class DBHelperApp {

 

    /**

     * 修改【 Update

     */

    public static void main(String[] args) {

        // 第一种情况

        String sql1="Update student Set age='27' Where id='201207'";

        System.out .println(DBHelper.executeNonQuery (sql1));

       

        // 第二种情况

        String sql2="Update student Set name=? Where id=?";

        Object[] obj = new Object[]{" 张二 ","201201"};

        System.out .println(DBHelper.executeNonQuery (sql2,obj));

    }

}

 

    【运行结果

    1)控制台

 

1

1

 

    2)数据库

  

  备注 :后面的操作都以上面数据为基准。

2.4 查询【Query】

    【示例代码

 

package com.hebut.util;

 

import java.sql.ResultSet;

import java.sql.SQLException;

 

public class DBHelperApp {

 

    /**

     * 查询【 Query

     * @throws SQLException

     */

    public static void main(String[] args) throws SQLException {

        // 第一种情况

        String sql1="Select * From student";

        // 第一步:查询

        ResultSet rs1 = DBHelper.executeQuery (sql1);

        // 二步:输出

        while (rs1.next()){

            System.out .println(" 姓名: "+rs1.getString(2));

        }

        // 第三步:关闭

        DBHelper.free (rs1);

       

        // 第二种情况

        String sql2="Select * From student Where name=?";

        Object[] obj = new Object[]{" 张三 "};

        // 第一步:查询

        ResultSet rs2 = DBHelper.executeQuery (sql2,obj);

        // 第二步:输出

        while (rs2.next()){

            System.out .println(" 学号: "+rs2.getString(1));

        }

        // 第三步:关闭

        DBHelper.free (rs2);

    }

}

 

    【运行结果

 

姓名:张二

姓名:王五

姓名:赵六

姓名:小红

姓名:小明

姓名:张三

姓名:张三

学号: 201207

学号: 201209

 

2.5 获取查询行数

    【示例代码

 

package com.hebut.util;

 

public class DBHelperApp {

 

    /**

     * 获取查询行数

     */

    public static void main(String[] args) {

        // 第一种情况

        String sql1="Select * From student";

        System.out .println(DBHelper.getCount (sql1));

       

        // 第二种情况

        String sql2="Select * From student Where name=?";

        Object[] obj = new Object[]{" 张三 "};

        System.out .println(DBHelper.getCount (sql2,obj));

    }

}

 

    【运行结果

 

7

2

 

2.6 判断记录存在

    【示例代码

 

package com.hebut.util;

 

public class DBHelperApp {

 

    /**

     * 判断记录存在

     */

    public static void main(String[] args) {

        // 第一种情况

        String sql1="Select * From student";

        System.out .println(DBHelper.isExist (sql1));

       

        // 第二种情况

        String sql2="Select * From student Where name=?";

        Object[] obj = new Object[]{" 张五 "};

        System.out .println(DBHelper.isExist (sql2,obj));

    }

}

 

    【运行结果

 

true

false

 

3、DBHelper代码

 

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);

    }

}

分享到:
评论

相关推荐

    JSP,Java项目用的Mysql数据库的DBHelper类

    JSP,Java项目用的Mysql数据库的DBHelper类

    DBHelper 数据库连接通用接口-java版

    还在苦恼于java连接数据库吗?连接SQL Server?连接Oracle?还是MySQL? 其实,80%的功能只需要JDBC中的20%的方法,而使用DBHelper,不管使用什么数据库,全部使用统一的接口。只需2个方法,getData、updateData你...

    java连接mysql驱动及mysql的DBHelper

    Java连接MySQL驱动及MySQL的DBHelper是开发过程中常见的任务,主要涉及Java编程语言与MySQL数据库的交互。在Java中,我们通常使用JDBC(Java Database Connectivity)API来连接和操作数据库。MySQL-Connector/J是...

    c#多数据库自适应DBHelper源码

    1、源码附带Sql Server、Access、Sqlite、Mysql四数据库互转插件代码 2、源码附带Excel导入到数据库表(自动生成新表,或将数据导入到已有表)功能代码 3、源码附带自适应数据库表结构Web版数据CRUD功能演示代码 ...

    DBHelper(java---mysql,有代码示例,连接所需的jar包)

    这个压缩包提供了用于Java连接MySQL数据库的`DBHelper`类,其中包含代码示例和所需的JDBC驱动(即`mysql-connector-java.jar`)。 首先,让我们了解一下Java如何通过JDBC(Java Database Connectivity)接口与MySQL...

    DbHelper数据库操作类

    在Java、C#等面向对象编程语言中,DbHelper通常被设计为一个静态类,提供了一系列静态方法来执行SQL语句,以实现对数据库的数据处理。 在数据库编程中,DbHelper类的核心功能包括以下几个方面: 1. 连接管理:...

    MySql连接数据库---DBHelper封装.zip

    1. **数据库连接**:在`DBHelper`中,通常会使用`java.sql.DriverManager`类来建立与MySQL数据库的连接。开发者需要提供数据库的URL、用户名、密码等信息。例如,`DriverManager.getConnection("jdbc:mysql://...

    C#通过MySql.Data.dll连接MySql数据库操作

    /// &lt;summary&gt; /// MySQL数据库操作 /// author:hhm /// date:2012-2-22 /// &lt;/summary&gt; public class MySqlDbHelper { #region 私有变量 private const string defaultConfigKeyName = "DbHelper";//连接字符串 ...

    数据库辅助类DBHelper

    4. **结果集处理**:DBHelper通常会封装ResultSet的处理,将数据库查询的结果转换为Java对象或者List集合。这使得数据的获取和处理更加方便,例如通过`getBean()`或`getBeans()`方法。 5. **数据库元数据访问**:...

    DBHelper (附源码) 数据库连接通用接口-java版

    还在苦恼于java连接数据库吗?连接SQL Server?连接Oracle?还是MySQL? 其实,80%的功能只需要JDBC中的20%的方法,而使用DBHelper,不管使用什么数据库,全部使用统一的接口。只需2个方法,getData、updateData你...

    DBHelper2014快速数据库管理工具

    DBHelper是一个永远免费的绿色无广告数据库管理工具,可以快速生成INSERT语句及其他功能,有视频帮助,可以大大提高数据库操作人员及开发人员的工作效率。 支持的数据库包括 sqlite,access,postgresql,mysql,sql...

    DBHelper数据库操作类(支持OleDb、MySQL、Oracle、SQL、SQLite).zip

    数据库操作类(支持OleDb、MySQL、Oracle、SQL、SQLite、) 操作: 获取连接字符串 得到web.config里配置项的数据库连接字符串。 数据库连接字符串(web.config来配置),可以动态更改connectionString支持多数据库. ...

    C#链接MySql最全帮助类,DbHelperMySQL.cs

    DbHelperMySQL.cs 是数据访问抽象基础类 ...适合C#、.net等后端开发人员,级初级开发人员,快速开发中小型项目,无需繁琐编写MySql数据库连接操作相关代码。 此封装类适合初中级开发人员,资深开发人员无需参考。

    mysql数据库连接(java)

    本篇将详细介绍如何使用Java连接MySQL数据库,实现增删改查(CRUD)操作。 首先,我们了解基本概念。在Java中,我们通常使用JDBC(Java Database Connectivity)来与MySQL进行交互。JDBC是Java API,允许Java程序与...

    ADO.NET DbHelper实现数据库增删改查,支持事务

    DbHelper C#实现的dbhelper类,支持mysql、sqlserver、oracle等多种数据库、支持事务

    C# DBHelper 多数据访问接口 MSSQL ORACLE MYSQL DB2等

    资源分享 通通只要一分 使用案例: using (IDbHelper dbHelper = ... //数据库连线字串 SignListCN = dbHelper.Fill(strsql); } catch (Exception orEx) { throw orEx; } finally { dbHelper.Close(); } }

    DBHelper通用数据库操作类v2.1

    1. 支持Micrsoft SQL Server/Access/Oracle/MySql/Sqlit; 2. 支持多数据库同时操作; 3. 支持实体与表映射的直接操作; 4. 支持直接将SQL查询结果转成对应的实体对象; 详细API请参见...

    基于Python的scrapy爬虫框架模板源代码+使用说明,将数据保存到Mysql数据库或者文件中

    基于Python的scrapy爬虫框架模板源代码+使用说明,将数据保存到Mysql数据库或者文件中 settings.py 修改Mysql的配置信息 #Mysql数据库的配置信息 MYSQL_HOST = '127.0.0.1' MYSQL_DBNAME = 'testdb' #数据库名字,请...

    StudentManage.rar

    描述中提到的“Java连接数据库,Java连接MySql数据库,DBHelper,BaseDao”是该项目的关键技术点,表明这个系统使用Java语言,特别是通过JDBC来与MySQL数据库进行交互,并采用了DBHelper和BaseDao的设计模式来辅助...

    DBHelper数据库操作类

    只需替换特定的数据库提供程序(如SqlClient或OleDb)并调整相应的对象,就能轻松适应Oracle、MySQL、SQLite等其他数据库。 在实际开发中,`DBHelper`类库极大地简化了数据库操作,使得开发者能更专注于业务逻辑而...

Global site tag (gtag.js) - Google Analytics