`

Java操作数据库工具类

    博客分类:
  • Java
阅读更多
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.sql.Statement;
import java.util.ArrayList;

public class DBUtil {
	/**
	 * 取得一个数据库连接
	 * 
	 * @return
	 * @throws SQLException
	 * @throws InstantiationException
	 * @throws IllegalAccessException
	 * @throws ClassNotFoundException
	 */
	public Connection getConnection() throws SQLException,
			InstantiationException, IllegalAccessException,
			ClassNotFoundException {
		DBProperty pro = new DBProperty();
		pro.setFilePath("/DB.properties");
		Connection conn = null;
		// 加载数据库驱动类
		Class.forName(pro.getClassName()).newInstance();
		// 数据库连接URL
		String url = pro.getUrl();
		// 数据库用户名
		String user = pro.getName();
		// 数据库密码
		String password = pro.getPassword();
		// 根据数据库参数取得一个数据库连接
		conn = DriverManager.getConnection(url, user, password);
		return conn;
	}

	/**
	 * 根据传入的SQL语句返回取出的结果
	 * 
	 * @param sql
	 * @return
	 * @throws Exception
	 */
	public ArrayList select(String sql) throws Exception {
		Connection conn = null;
		ArrayList result = new ArrayList();
		Statement stmt = null;
		ResultSet rs = null;
		try {
			conn = getConnection();
			stmt = conn.createStatement();
			rs = stmt.executeQuery(sql);
			ResultSetMetaData rsmd = rs.getMetaData();
			int cols = rsmd.getColumnCount();
			int i = 0;
			while (rs.next() != false) {
				ArrayList row = new ArrayList();
				for (i = 1; i <= cols; ++i) {
					if (rs.getString(i) == null) {
						row.add("");
					} else {
						row.add(rs.getString(i));
					}
				}
				result.add(row);
			}
		} catch (SQLException e) {
			throw new Exception("select data exception:" + e.getMessage());
		} finally {
			try {
				if (rs != null) {
					rs.close();
				}
			} catch (Exception e) {
				throw new Exception("rs close exception: " + e.getMessage());
			}
			try {
				if (stmt != null) {
					stmt.close();
				}
			} catch (Exception e) {
				throw new Exception("stmt close exception: " + e.getMessage());
			}
			try {
				if (conn != null) {
					conn.close();
				}
			} catch (Exception e) {
				throw new Exception("conn close exception: " + e.getMessage());
			}
		}
		return result;
	}

	/**
	 * 根据传入的SQL语句向数据库增加一条记录
	 * 
	 * @param sql
	 * @throws Exception
	 */
	public void insert(String sql) throws Exception {
		Connection conn = null;
		PreparedStatement ps = null;
		try {
			conn = getConnection();
			ps = conn.prepareStatement(sql);
			ps.executeUpdate();
		} catch (SQLException sqle) {
			throw new Exception("insert data exception: " + sqle.getMessage());
		} finally {
			try {
				if (ps != null) {
					ps.close();
				}
			} catch (Exception e) {
				throw new Exception("ps close exception: " + e.getMessage());
			}
		}
		try {
			if (conn != null) {
				conn.close();
			}
		} catch (Exception e) {
			throw new Exception("connection close exception: " + e.getMessage());
		}
	}

	/**
	 * 根据传入的SQL语句更新数据库记录
	 * 
	 * @param sql
	 * @throws Exception
	 */
	public void update(String sql) throws Exception {
		Connection conn = null;
		PreparedStatement ps = null;
		try {
			conn = getConnection();
			ps = conn.prepareStatement(sql);
			ps.executeUpdate();
		} catch (SQLException sqle) {
			throw new Exception("update exception: " + sqle.getMessage());
		} finally {
			try {
				if (ps != null) {
					ps.close();
				}
			} catch (Exception e) {
				throw new Exception("ps close exception: " + e.getMessage());
			}
		}
		try {
			if (conn != null) {
				conn.close();
			}
		} catch (Exception e) {
			throw new Exception("connection close exception: " + e.getMessage());
		}
	}

	/**
	 * 根据传入的SQL语句删除一条数据库记录
	 * 
	 * @param sql
	 * @throws Exception
	 */
	public void delete(String sql) throws Exception {
		Connection conn = null;
		PreparedStatement ps = null;
		try {
			conn = getConnection();
			ps = conn.prepareStatement(sql);
			ps.executeUpdate();
		} catch (SQLException sqle) {
			throw new Exception("delete data exception: " + sqle.getMessage());
		} finally {
			try {
				if (ps != null) {
					ps.close();
				}
			} catch (Exception e) {
				throw new Exception("ps close exception: " + e.getMessage());
			}
		}
		try {
			if (conn != null) {
				conn.close();
			}
		} catch (Exception e) {
			throw new Exception("connection close exception: " + e.getMessage());
		}
	}
}


//使用
@SuppressWarnings("unchecked")
public static ArrayList getAlarmByCond() {
	try {
		DBUtil db = new DBUtil();
		String sql = "select * from test ";
		ArrayList result = new ArrayList();
		try {
			result = db.select(sql);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	} catch (RuntimeException re) {
		throw re;
	}
}
分享到:
评论

相关推荐

    JAVA数据库操作工具类

    `JAVA数据库操作工具类` 提供了便捷的方法来执行对SQL Server数据库的基本CRUD(创建、读取、更新、删除)操作。这样的工具类可以极大提高开发效率,减少代码重复,并且通过JUnit进行测试确保了代码的可靠性和稳定性...

    java 数据库操作工具类

    java 数据库操作工具类java 数据库操作工具类java 数据库操作工具类java 数据库操作工具类java 数据库操作工具类java 数据库操作工具类java 数据库操作工具类java 数据库操作工具类java 数据库操作工具类java 数据库...

    Java连接数据库的工具类

    本资源是java开发的常用工具类,包括01.DTD约束文档,02.Schema约束文档,c3p0,commons-dbutils-1.6,commons-io-2.4,commons-pool-1.5.6,mysql-connector-java-5.1.37

    java操作sqlite数据库工具代码及jar包

    总结一下,本资源提供了使用Java操作SQLite数据库所需的基本元素:`sqlite-jdbc.jar`作为JDBC驱动,以及一个工具类来简化数据库操作。通过导入jar包和使用工具类,开发者可以快速地在Java项目中实现对SQLite数据库的...

    JAVA数据库工具类

    在Java编程中,数据库工具类是开发者为了简化数据库操作而创建的一类封装了数据库连接、查询、事务处理等常见操作的类。在这个特定的场景中,我们关注的是一个基于DBCP(Database Connection Pool)的数据库工具类,...

    java操作Access数据库文件工具类

    标题中的“Java操作Access数据库文件工具类”指的是使用Java编程语言来与Microsoft Access数据库进行交互的工具类。在Java中,我们通常通过JDBC(Java Database Connectivity)API来实现这样的功能,它允许Java程序...

    Java 连接数据库工具类

    Java 连接数据库工具类

    Java实体类字段生成工具类-将数据库表列字段转为Java实体类驼峰字段

    2、该工具类可以将数据库表列字段转化为对应的Java实体类字段。生成的实体类字段格式清晰易读,且符合Java命名规范。通过使用该工具类,可以大大提高开发效率,节约时间成本。 3、该工具类使用非常简单。只需要...

    Java数据库操作工具类

    自己封装的数据库工具类,实现自动插入和更新,自动查询封装对象。数据源使用jndi,支持读写分离。

    Java数据库操作类20170703

    综上所述,这份资料提供了一个全面的Java数据库操作解决方案,包括对多种数据库的支持,高效的连接池管理,以及方便的数据库操作工具类。开发者可以基于这些组件构建自己的数据库驱动的应用程序,同时享受更高效、更...

    JDBC连接数据库工具类

    JDBC连接数据库工具类 JDBC 连接数据库 ORACLE SQLSERVER MYSQL ORACLE 已测 OK 欢迎大家反馈 我的微博是: http://weibo.com/namenode

    各种数据库工具类

    首先,数据库工具类通常是封装了数据库连接池、SQL执行、结果集处理等功能的Java类库。例如,Apache的DBUtils和MyBatis都是广泛使用的开源工具。DBUtils提供了一个简单的API,用于执行SQL语句并处理结果,而MyBatis...

    JAVA 通过JDBC连接数据库工具类

    JDBC连接数据库工具类 JDBC 连接数据库 ORACLE SQLSERVER MYSQL ORACLE 已测 OK 欢迎大家反馈

    java通用数据库操作类

    Java通用数据库操作类是Java开发中常用的一种工具,主要用于简化对数据库的访问,它通过封装JDBC(Java Database Connectivity)接口来实现与多种数据库的交互。JDBC是Java语言连接数据库的标准,它提供了多种功能,...

    java连接oracle数据库工具类

    封装了java连接Oracle的工具类

    JAVA操作mysql工具类

    这篇博客的作者提供了一个自封装的JAVA操作MySQL数据库的工具类,这有助于简化数据库的交互过程,提高代码的可读性和可维护性。这里我们将深入探讨这个工具类可能涉及的关键知识点。 1. **JDBC(Java Database ...

    java数据库操作类-连接池

    本主题主要围绕"java数据库操作类-连接池",介绍如何在Eclipse环境中实现和测试连接池功能。 首先,`ConnectionPool`类通常用于管理数据库连接池。在Java中,可以使用开源库如C3P0、Apache DBCP或HikariCP来创建...

    Java数据库操作封装类

    综上所述,"Java数据库操作封装类"是Java开发中的一个重要工具,它通过吸收和整合主流数据库类库的优秀实践,提供了一种简洁、高效的方式来处理数据库交互,提高了代码的可读性和可维护性。而"repositories.xml"则...

    连接数据库操作工具类

    总的来说,这个压缩包提供的三个工具类涵盖了数据库连接、操作和数据安全的基本需求,对于Java开发者来说是极具价值的学习和参考资源。通过实际应用和修改这些工具类,开发者可以更好地适应不同项目的需求,提升自己...

    java各种数据库jar包

    总结起来,这些jar包是Java开发者连接Oracle、MySQL和SQL Server数据库的重要工具,它们使得Java应用程序能够无缝地与不同类型的数据库进行交互。确保选择与你目标数据库版本相匹配的驱动,并正确配置你的数据库连接...

Global site tag (gtag.js) - Google Analytics