`

java连接数据库基类

阅读更多
package com.csair.cbs.util;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 数据库操作(增、删、查、改)基类
 * @class DataBaseUtils
 * @description 
 * @author 李智慧
 * @copyRight copyright(c) 2011 广东南航易网通电子商务有限公司,Rights Reserved
 * @time Nov 17, 2011 3:23:00 PM
 */
public class DataBaseUtils {
	private final String authorName = "李智慧";
	private final String functionName = "操作数据库基类";

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		DataBaseUtils dataBaseUtils = new DataBaseUtils();
		/** 新增 **/
//		String sql = "select BANKCODE,PAYSTYLECODE,BANKNAME,ABLED,CURRENTSTYLE from BANKMANAGE where ABLED = ? and PAYSTYLECODE = ?";
////	String sql = "select PAYCODE,PAYNAME from PAYMANAGE";
//		List list = new ArrayList<String>();
//		list.add("1");
//		list.add("angel");
//		int getColumnLength = 5;
//		List list2 = dataBaseUtils.getRecord(sql, list, null, getColumnLength);
		/** 新增 **/
		
		/** 修改 **/
//		String sql = "update BANKMANAGE set DISCRIBE = ? ,ABLED = ? where BANKCODE = ? and PAYSTYLECODE = ?";
//		List list = new ArrayList<String>();
//		list.add("银联电话支付-招商银行2");
//		list.add("0");
//		list.add("cmb");
//		list.add("tel");
		/** 修改 **/
		
		/** 新增 **/
//		String sql = " insert into PAYMANAGE(PAYCODE,PAYNAME,ABLED,LOGO,DISCRIBE) values(?,?,?,?,?) ";
//		List list = new ArrayList<String>();
//		list.add("aaa");
//		list.add("bbb");
//		list.add("1");
//		list.add("11");
//		list.add("23434");
		/** 新增 **/
		
		/** 删除 **/
		String sql = " delete from PAYMANAGE where PAYNAME = ?";
		List list = new ArrayList<String>();
		list.add("bbb");
		/** 删除 **/
		dataBaseUtils.addUpdateDeleteRecord(sql, list, null);
//		for(int i=0;i<list2.size();i++){
//			String[] strings = (String[]) list2.get(i);
//			for(int j=0;j<strings.length;j++){
//				System.out.print(strings[j]+"\t");
//			}
//			System.out.println();
//		}
		
	}
	
	/**
	 * 打印到log日志,好排查错误,更快时间解决问题
	 * 
	 * @param className
	 *            类名称
	 * @param methodName
	 *            方法名称
	 * @param msg
	 *            错误原因
	 * @param author
	 *            开发人
	 * @param functionName
	 *            功能模块名称
	 */
	public void print(String className, String methodName, String msg,
			String author, String functionName) {
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = new Date();
		String dateTime = simpleDateFormat.format(date);
		System.out.println("###程序执行出现错误【"+dateTime+"】,错误在【" + className + "】类,【" + methodName
				+ "】方法,开发者【" + author + "】,对应开发模块【" + functionName
				+ "】:具体错误原因:" + msg+"###");
	}
	
	/**
	 * 新增记录
	 * @param sql
	 * @param list
	 * @param connection
	 * @return
	 */
	public boolean addUpdateDeleteRecord(String sql,List list,Connection connection){
		boolean result = false;
		int flag = 1;//记录有没有带connection对象,默认有带connection
		PreparedStatement preparedStatement = null;
		try{
			if(connection == null){
				connection = JDBC_Connection.getConnection();
				flag = 0;//没有带connection对象
			}
			preparedStatement = connection.prepareStatement(sql);
			if(list!=null){
				for(int i=0;i<list.size();i++){
					preparedStatement.setString(i+1, list.get(i).toString());
				}
			}
			preparedStatement.executeUpdate();
			result = true;
		}catch (Exception e) {
			print("DataBaseUtils","addUpdateDeleteRecord",e.getMessage().toString(),authorName,functionName);
		}finally{
			if(flag == 0){
				//如果没有带connection 要断开connection 的连接
				JDBC_Connection.release(null, preparedStatement, connection);
			}
			else {
				JDBC_Connection.release(null, preparedStatement, null);
			}
		}
		return result;
	}
	
	/**
	 * 获取表中的值
	 * @param sql
	 * @param list
	 * @param connection
	 * @param getColumnLength
	 * @return
	 */
	public List getRecord(String sql,List list,Connection connection,int getColumnLength){
		List<String[]> list2 = new ArrayList<String[]>();
		int flag = 1;//记录有没有带connection对象,默认有带connection
		PreparedStatement preparedStatement = null;
		ResultSet resultSet = null;
		try{
			if(connection == null){
				connection = JDBC_Connection.getConnection();
				flag = 0;//没有带connection对象
			}
			preparedStatement = connection.prepareStatement(sql);
			if(list!=null){
				for(int i=0;i<list.size();i++){
					preparedStatement.setString(i+1, list.get(i).toString());
				}
			}
			resultSet = preparedStatement.executeQuery();
			while(resultSet.next()){
				String[] strings = new String[getColumnLength];
				for(int j=0;j<getColumnLength;j++){
					strings[j] = resultSet.getString(j+1);
				}
				list2.add(strings);
			}
		}catch (Exception e) {
			print("DataBaseUtils","addUpdateDeleteRecord",e.getMessage().toString(),authorName,functionName);
		}finally{
			if(flag == 0){
				//如果没有带connection 要断开connection 的连接
				JDBC_Connection.release(resultSet, preparedStatement, connection);
			}
			else {
				JDBC_Connection.release(resultSet, preparedStatement, null);
			}
		}
		return list2;
	}
}

 

分享到:
评论

相关推荐

    数据库操作基类

    首先,数据库操作基类需要包含数据库连接的建立和关闭方法。这通常涉及到数据库驱动的加载、数据库URL、用户名、密码的配置以及连接池的使用。例如,可以使用Java的JDBC API来创建Connection对象,同时考虑到资源的...

    java操控数据库的基本方法及连接方式

    - **JDBC驱动注册**:在连接数据库之前,我们需要加载并注册对应的JDBC驱动。这通常通过`Class.forName()`方法完成,例如对于MySQL,我们可能会写`Class.forName("com.mysql.jdbc.Driver")`。 - **获取连接**:...

    java连接数据库课程设计(1).doc

    【Java连接数据库基础】 在Java编程中,连接数据库是一项核心技能,特别是在开发J2EE应用程序时。本实验报告主要涵盖了三个部分:图形界面编程、抽象类与接口的使用以及数据库操作,这些都是Java程序设计的基础。 ...

    java连接大数据库课程设计报告材料书.doc

    - JDBC是Java连接数据库的标准API,它提供了一组接口和类,用于建立、执行SQL语句和管理数据库连接。 - 示例代码中展示了如何加载JDBC驱动、建立数据库连接,以及使用`Connection`对象执行SQL操作。 6. **数据库...

    JDBC与Java数据库编程.pdf

    - **JDBCAPI**:提供了与数据库交互的一系列API,包括连接数据库、执行SQL语句、处理结果集等。 ### JDBC体系结构图 在典型的JDBC体系结构中,Java应用程序通过调用JDBCAPI与JDBC驱动程序管理器通信,后者再通过...

    java数据库操作类演示实例分享(java连接数据库)

    本示例将介绍如何使用Java连接数据库并执行一些基本操作,如查询、删除、编辑和更新数据。我们将重点解析给定的代码片段来理解这个过程。 首先,代码中使用了`javax.servlet`包中的`HttpServlet`类,这表明我们正在...

    ojdbc7连接数据库使用的jar包

    以下是对ojdbc7连接数据库使用的jar包的详细解释: 1. **JDBC概述**:JDBC是Java API,由Sun Microsystems开发并被Java SE标准包含,用于在Java应用程序和各种数据库之间建立连接。它遵循Java的“Write Once, Run ...

    HIBERNATE - 符合Java习惯的关系数据库持久化

    1. **POJO基类**:实体类应是普通的Java对象(POJO),不依赖于任何框架或容器。 2. **访问器方法**:实体类应提供getter和setter方法,以便Hibernate通过反射机制读取和更新属性值。 3. **默认构造器**:实体类需...

    Java数据库编程宝典4

    第1部分 介绍数据库、SQL和JDBC 第1章 关系型数据库 1.1 理解关系型数据库管理系统 1.1.1 关系模型 1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式...

    Java数据库编程宝典3

    第1部分 介绍数据库、SQL和JDBC 第1章 关系型数据库 1.1 理解关系型数据库管理系统 1.1.1 关系模型 1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式...

    JDBC与Java数据库程序设计

    1. **DriverManager**:这是连接数据库的主要入口点。应用程序通过调用`DriverManager.getConnection()`方法,传递数据库URL、用户名和密码来建立与数据库的连接。 2. **Connection**:表示到特定数据库的连接,它...

    Jfinal数据库基本操作 连接数据库以及Model创建.docx

    ### Jfinal数据库基本操作:连接数据库及Model创建详解 #### 一、概述 Jfinal 是一个基于Java语言的快速开发框架,它具有轻量级、高性能的特点,特别适合于中小型项目或快速原型开发。本文将详细介绍如何在Jfinal...

    SQLServer2000与Java的连接驱动

    1. `msbase.jar`:这是SQL Server JDBC驱动的基础组件,包含了连接数据库所需的基类和实用工具。它提供了基本的数据类型转换、异常处理和其他通用功能。 2. `mssqlserver.jar`:这个文件是SQL Server特定的JDBC驱动...

    人工智能-项目实践-系统开发-基于java的学生选课成绩管理系统

    数据库连接查询工具集 view LoginView.java 登录界面 LoginListener 监听登录事件 StudentView.java 学生选课界面 SelectListener 监听选课事件 DropListener 监听退课事件 AdminView.java 管理员界面 ...

    Java之数据库工具封装

    "Java之数据库工具封装"这个话题主要涉及如何使用Java JDBC来创建一个实用的工具类,以简化数据库连接与资源管理的过程。以下是详细的知识点解释: 1. **JDBC工具类**: - **数据库连接对象获取**:在`JdbcUtil`类...

    Servlet的基类和接口中的方法总结

    ### Servlet的基类和接口中的方法总结 #### 1. javax.servlet.Servlet接口 Servlet接口是Java Web开发中非常重要的组成部分,它定义了Servlet类需要实现的一系列生命周期方法,包括初始化、服务请求处理以及销毁等...

    Java数据库编程宝典2

    第1部分 介绍数据库、SQL和JDBC 第1章 关系型数据库 1.1 理解关系型数据库管理系统 1.1.1 关系模型 1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式...

    Java自定义连接池,单例模式

    在Java编程中,连接池和单例模式是两个非常重要的概念,它们对于高效地管理和使用数据库资源至关重要。这里我们将深入探讨这两个主题,并结合一个通用的BaseDao类来说明如何实现数据库的快速访问。 首先,连接池是...

    Java通用Dao包括JDBC和JNDI两种连接方式

    使用JDBC连接数据库通常分为以下步骤: 1. 加载驱动:通过Class.forName()方法加载对应的数据库驱动。 2. 获取连接:使用DriverManager.getConnection()方法获取数据库连接。 3. 创建Statement或PreparedStatement...

    Java数据库编程宝典1

    第1部分 介绍数据库、SQL和JDBC 第1章 关系型数据库 1.1 理解关系型数据库管理系统 1.1.1 关系模型 1.1.2 Codd法则 1.1.3 表、行、列和关键字 1.1.4 主键 1.1.5 外键 1.1.6 关系 1.1.7 视图 1.1.6 范式...

Global site tag (gtag.js) - Google Analytics