`

java(JDBC连接数据库)[对PreparedStatement进行封装]

    博客分类:
  • Java
阅读更多
package com.iflytec.ex01;  
  
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.util.ArrayList;  
import java.util.HashMap;  
import java.util.List;  
import java.util.Map;  
  
public class ConnectionDB {  
  
    /** 
     * 数据库驱动类名称 
     */  
    private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";  
  
    /** 
     * 连接字符串 
     */  
    private static final String URLSTR = "jdbc:sqlserver://localhost:1433; databaseName=Northwind";  
  
    /** 
     * 用户名 
     */  
    private static final String USERNAME = "sa";  
  
    /** 
     * 密码 
     */  
    private static final String USERPASSWORD = "111111";  
  
    /** 
     * 创建数据库连接类 
     */  
    private Connection connnection = null;  
  
    private PreparedStatement preparedStatement = null;  
  
    /** 
     * 创建结果集对象 
     */  
    private ResultSet resultSet = null;  
  
    static {  
        try {  
            // 加载数据库驱动程序   
            Class.forName(DRIVER);  
        } catch (ClassNotFoundException e) {  
            System.out.println("加载驱动错误");  
            System.out.println(e.getMessage());  
        }  
    }  
  
    /** 
     * 建立数据库连接 
     *  
     * @return 
     */  
    public Connection getConnection() {  
        try {  
            // 获取连接   
            connnection = DriverManager.getConnection(URLSTR, USERNAME,  
                    USERPASSWORD);  
        } catch (SQLException e) {  
            System.out.println(e.getMessage());  
        }  
        return connnection;  
    }  
  
    public int executeUpdate(String sql, Object[] params) {  
        int affectedLine = 0;  
        try {  
            connnection = this.getConnection();  
            preparedStatement = connnection.prepareStatement(sql);  
            for (int i = 0; i < params.length; i++) {  
                preparedStatement.setObject(i + 1, params[i]);  
            }  
  
            affectedLine = preparedStatement.executeUpdate();  
  
        } catch (SQLException e) {  
            System.out.println(e.getMessage());  
        } finally {  
            closeAll();  
        }  
        return affectedLine;  
    }  
      
  
    private ResultSet executeQueryRS(String sql, Object[] params) {  
        try {  
            connnection = this.getConnection();  
            preparedStatement = connnection.prepareStatement(sql);  
            for (int i = 0; i < params.length; i++) {  
                preparedStatement.setObject(i + 1, params[i]);  
            }  
  
            resultSet = preparedStatement.executeQuery();  
  
        } catch (SQLException e) {  
            System.out.println(e.getMessage());  
        }   
          
        return resultSet;  
    }  
      
    /** 
     * 获取结果集,并将结果放在List中 
     * @param sql SQL语句 
     * @return List结果集 
     */  
    public List<Object> excuteQuery(String sql, Object[] params) {   
        ResultSet rs = executeQueryRS(sql,params);  
        ResultSetMetaData rsmd = null;  
        int columnCount = 0;  
        try {  
            rsmd = rs.getMetaData();  
            columnCount = rsmd.getColumnCount();  
        } catch (SQLException e1) {  
            System.out.println(e1.getMessage());  
        }  
          
        List<Object> list = new ArrayList<Object>();  
          
        try {  
            while(rs.next()) {  
                Map<String, Object> map = new HashMap<String, Object>();  
                for(int i = 1; i <= columnCount; i++) {  
                    map.put(rsmd.getColumnLabel(i), rs.getObject(i));                 
                }  
                list.add(map);  
            }  
        } catch (SQLException e) {  
            System.out.println(e.getMessage());  
        } finally {  
            closeAll();  
        }  
          
        return list;  
    }  
  
     /** 
     * 释放所有资源 
     */  
    private void closeAll() {  
        // 释放结果集连接   
        if (resultSet != null) {  
            try {  
                resultSet.close();  
            } catch (SQLException e) {  
                System.out.println(e.getMessage());  
            }  
        }  
  
        // 释放声明连接   
        if (statement != null) {  
            try {  
                statement.close();  
            } catch (SQLException e) {  
                System.out.println(e.getMessage());  
            }  
        }  
  
        // 释放数据库连接   
        if (connnection != null) {  
            try {  
                connnection.close();  
            } catch (SQLException e) {  
                System.out.println(e.getMessage());  
            }  
        }  
    }  
分享到:
评论

相关推荐

    java JDBC连接数据库,并将数据分页

    Java JDBC(Java Database Connectivity)是Java平台中用于与各种数据库进行交互的标准接口。它允许Java应用程序连接到数据库,执行SQL语句,以及处理结果。在本教程中,我们将深入探讨如何使用JDBC连接Oracle数据库...

    Jdbc连接数据库的方法

    在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一套标准API。JDBC提供了统一的接口,使得Java程序可以连接到不同的数据库管理系统(DBMS)。本篇将详细介绍如何使用JDBC连接数据库...

    jdbc 连接数据库封装类,可返回map,或者vo(自用)

    5. **NetJavaSession.java**:这个文件的名字可能暗示了它与网络会话有关,或者是对JDBC连接的进一步封装,提供了一种基于会话的数据库操作方式。可能包含事务管理、并发控制等特性,以确保数据的一致性和完整性。 ...

    第五章 JDBC连接数据库.pdf

    为了在Java中使用JDBC连接Oracle数据库,需要创建一个封装类,这个类将遵循JavaBean规范,其中包含私有属性、公有的set/get方法、无参构造函数。这个封装类作为数据库操作的实体类,用来封装查询到的数据。 接着,...

    JDBC与Java数据库编程

    ### JDBC与Java数据库编程 #### 第一章:JDBC的概念 **1.1 JDBC是什么** JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一的访问接口。JDBC的目标是允许开发...

    Java之JDBC连接MySQL数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement)

    Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬...

    jdbc连接数据库getConnection 增、删、改、查

    SqlHelper.java连接数据库通用类... package org.jdbc.com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql....

    JAVA JDBC连接数据库完整整理(与博客上面文章相对应)

    通过以上步骤,我们能够使用Java JDBC完成对数据库的基本操作。不过,现代框架如Spring JDBC、MyBatis等已经封装了这些细节,提供了更高级和便捷的数据库访问方式。但理解JDBC基础对深入学习这些框架至关重要。在...

    java JDBC 连接sql server封装

    在本主题中,我们将深入探讨如何使用Java JDBC来封装对SQL Server数据库的连接,从而创建一个实用工具类(Util类),提高代码的复用性和可维护性。 首先,确保你的项目已经引入了适用于SQL Server的JDBC驱动,如...

    java 使用jdbc封装连接数据库

    Java使用JDBC(Java Database Connectivity)封装连接数据库是一种常见的数据操作方式,尤其在初学者阶段。JDBC是Java平台的标准接口,它允许Java程序与各种类型的数据库进行交互。本教程将重点讲解如何通过简单的...

    java使用jdbc对mysql的操作封装,包括java使用jdbc对mysql进行事务处理

    封装了java使用jdbc对mysql的操作,以及java使用jdbc对mysql的事务处理,对execute、executeUpdate、executeQuery进行了封装,把繁琐的创建数据库连接对象、PreparedStatement对象、结果集对象,打开关闭连接进行了...

    JDBC连接数据库(适当的封装查询、新增修改删除)的方法

    下面将详细介绍如何使用JDBC进行数据库连接,以及对数据进行查询、新增、修改和删除的操作。 1. **JDBC驱动注册** 在Java程序中,我们需要先加载并注册对应的JDBC驱动。通常,这一步骤是通过`Class.forName()`方法...

    实验3 JDBC操作数据库3

    2. **JDBC(Java Database Connectivity)**:JDBC是Java中用来连接数据库的标准API,它允许Java应用程序与各种类型的数据库进行交互。实验要求你掌握JDBC的基本操作,包括连接、执行SQL语句和处理结果集。 3. **...

    java使用jdbc连接数据库工具类和jdbc连接mysql数据示例

    使用JDBC,开发者可以通过编写Java代码来执行SQL语句,从而实现对数据库的增删查改操作。本文将详细解释如何使用JDBC连接MySQL数据库,以及如何创建一个工具类来简化数据库连接的管理。 首先,我们需要引入MySQL的...

    eclipse java通过jdbc连接数据库脚本

    JDBC(Java Database Connectivity)是Java语言连接数据库的标准API,它允许Java程序与各种类型的数据库进行通信。本文将详细讲解如何在Eclipse中使用Java通过JDBC进行数据库操作,并以"selectDB"为例,探讨查询...

    对 java jdbc 轻量级封装的一个jar包,可以简化jdbc操作数据库的过程

    总结来说,"对java jdbc轻量级封装的一个jar包"是一个优化了数据库操作的工具,它简化了原本JDBC的使用流程,提高了开发效率,降低了出错的可能性,并且往往集成了连接池和一些其他便利功能,为Java开发者提供了一种...

    JDBC连接数据库的步骤

    JDBC(Java Database Connectivity)是Java程序与各种数据库进行交互的一种标准接口,它允许开发者用Java语言编写数据库操作代码。本篇文章将详细讲解JDBC连接数据库的步骤,并结合标签"源码"和"工具"来深入理解JDBC...

    java和jdbc用数据库连接的swing界面

    在本主题中,“java和jdbc用数据库连接的swing界面”指的是利用Swing来设计用户界面,通过JDBC实现对数据库的操作。 首先,让我们了解Swing的基本概念。Swing是Java AWT(Abstract Window Toolkit)的扩展,提供了...

    JDBC连接Mysql数据库案例

    在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一套标准API。本案例将探讨如何使用JDBC连接MySQL数据库,并通过实际的代码示例讲解整个过程。我们将涉及以下知识点: 1. **JDBC...

Global site tag (gtag.js) - Google Analytics