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 Database Connectivity)是Java平台中用于与各种数据库进行交互的标准接口。它允许Java应用程序连接到数据库,执行SQL语句,以及处理结果。在本教程中,我们将深入探讨如何使用JDBC连接Oracle数据库...
在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一套标准API。JDBC提供了统一的接口,使得Java程序可以连接到不同的数据库管理系统(DBMS)。本篇将详细介绍如何使用JDBC连接数据库...
5. **NetJavaSession.java**:这个文件的名字可能暗示了它与网络会话有关,或者是对JDBC连接的进一步封装,提供了一种基于会话的数据库操作方式。可能包含事务管理、并发控制等特性,以确保数据的一致性和完整性。 ...
为了在Java中使用JDBC连接Oracle数据库,需要创建一个封装类,这个类将遵循JavaBean规范,其中包含私有属性、公有的set/get方法、无参构造函数。这个封装类作为数据库操作的实体类,用来封装查询到的数据。 接着,...
### JDBC与Java数据库编程 #### 第一章:JDBC的概念 **1.1 JDBC是什么** JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一的访问接口。JDBC的目标是允许开发...
Java之JDBC连接数据库实现增删改查(2018 使用Dao层实现 完美封装解决硬编码问题 使用预编译对象PreparedStatement) 配置文件 db.properties(保存数据库账号和密码等) 工具类 JDBCUtil.java(抽取公共部分,解决硬...
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完成对数据库的基本操作。不过,现代框架如Spring JDBC、MyBatis等已经封装了这些细节,提供了更高级和便捷的数据库访问方式。但理解JDBC基础对深入学习这些框架至关重要。在...
在本主题中,我们将深入探讨如何使用Java JDBC来封装对SQL Server数据库的连接,从而创建一个实用工具类(Util类),提高代码的复用性和可维护性。 首先,确保你的项目已经引入了适用于SQL Server的JDBC驱动,如...
Java使用JDBC(Java Database Connectivity)封装连接数据库是一种常见的数据操作方式,尤其在初学者阶段。JDBC是Java平台的标准接口,它允许Java程序与各种类型的数据库进行交互。本教程将重点讲解如何通过简单的...
封装了java使用jdbc对mysql的操作,以及java使用jdbc对mysql的事务处理,对execute、executeUpdate、executeQuery进行了封装,把繁琐的创建数据库连接对象、PreparedStatement对象、结果集对象,打开关闭连接进行了...
下面将详细介绍如何使用JDBC进行数据库连接,以及对数据进行查询、新增、修改和删除的操作。 1. **JDBC驱动注册** 在Java程序中,我们需要先加载并注册对应的JDBC驱动。通常,这一步骤是通过`Class.forName()`方法...
2. **JDBC(Java Database Connectivity)**:JDBC是Java中用来连接数据库的标准API,它允许Java应用程序与各种类型的数据库进行交互。实验要求你掌握JDBC的基本操作,包括连接、执行SQL语句和处理结果集。 3. **...
使用JDBC,开发者可以通过编写Java代码来执行SQL语句,从而实现对数据库的增删查改操作。本文将详细解释如何使用JDBC连接MySQL数据库,以及如何创建一个工具类来简化数据库连接的管理。 首先,我们需要引入MySQL的...
JDBC(Java Database Connectivity)是Java语言连接数据库的标准API,它允许Java程序与各种类型的数据库进行通信。本文将详细讲解如何在Eclipse中使用Java通过JDBC进行数据库操作,并以"selectDB"为例,探讨查询...
总结来说,"对java jdbc轻量级封装的一个jar包"是一个优化了数据库操作的工具,它简化了原本JDBC的使用流程,提高了开发效率,降低了出错的可能性,并且往往集成了连接池和一些其他便利功能,为Java开发者提供了一种...
JDBC(Java Database Connectivity)是Java程序与各种数据库进行交互的一种标准接口,它允许开发者用Java语言编写数据库操作代码。本篇文章将详细讲解JDBC连接数据库的步骤,并结合标签"源码"和"工具"来深入理解JDBC...
在本主题中,“java和jdbc用数据库连接的swing界面”指的是利用Swing来设计用户界面,通过JDBC实现对数据库的操作。 首先,让我们了解Swing的基本概念。Swing是Java AWT(Abstract Window Toolkit)的扩展,提供了...
在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一套标准API。本案例将探讨如何使用JDBC连接MySQL数据库,并通过实际的代码示例讲解整个过程。我们将涉及以下知识点: 1. **JDBC...