- 浏览: 38575 次
- 性别:
- 来自: 上海
-
最新评论
java jdbc
package com.iflytek.jdbcdemo; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * 数据库配置文件读取方法 * @author WANGYAN * */ public class DbConfig { private String driver; private String url; private String userName; private String password; public DbConfig() { InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("com/iflytek/jdbcdemo/dbConfig.properties"); Properties p=new Properties(); try { p.load(inputStream); this.driver=p.getProperty("driver"); this.url=p.getProperty("url"); this.userName=p.getProperty("username"); this.password=p.getProperty("passwrod"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String getDriver() { return driver; } public String getUrl() { return url; } public String getUserName() { return userName; } public String getPassword() { return password; } }
package com.iflytek.jdbcdemo; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * jdbc工具类 * * @author WANGYAN * */ public final class JdbcUnits { /** * 数据库连接地址 */ private static String url ; /** * 用户名 */ private static String userName ; /** * 密码 */ private static String password; private static String driver; /** * 装载驱动 */ static { DbConfig config=new DbConfig(); url=config.getUrl(); userName=config.getUserName(); password=config.getPassword(); driver=config.getDriver(); try { Class.forName(driver); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } /** * 建立数据库连接 * * @return * @throws SQLException */ public static Connection getConnection() throws SQLException { Connection conn = null; conn = DriverManager.getConnection(url, userName, password); return conn; } /** * 释放连接 * @param conn */ private static void freeConnection(Connection conn) { try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 释放statement * @param statement */ private static void freeStatement(Statement statement) { try { statement.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 释放resultset * @param rs */ private static void freeResultSet(ResultSet rs) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 释放资源 * * @param conn * @param statement * @param rs */ public static void free(Connection conn, Statement statement, ResultSet rs) { if (rs != null) { freeResultSet(rs); } if (statement != null) { freeStatement(statement); } if (conn != null) { freeConnection(conn); } } }
package com.iflytek.jdbcdemo; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 数据库访问帮助类 * * @author WANGYAN * */ public class JdbcHelper { private static Connection conn = null; private static PreparedStatement preparedStatement = null; private static CallableStatement callableStatement = null; /** * 用于查询,返回结果集 * * @param sql * sql语句 * @return 结果集 * @throws SQLException */ @SuppressWarnings("rawtypes") public static List query(String sql) throws SQLException { ResultSet rs = null; try { getPreparedStatement(sql); rs = preparedStatement.executeQuery(); return ResultToListMap(rs); } catch (SQLException e) { throw new SQLException(e); } finally { free(rs); } } /** * 用于带参数的查询,返回结果集 * * @param sql * sql语句 * @param paramters * 参数集合 * @return 结果集 * @throws SQLException */ @SuppressWarnings("rawtypes") public static List query(String sql, Object... paramters) throws SQLException { ResultSet rs = null; try { getPreparedStatement(sql); for (int i = 0; i < paramters.length; i++) { preparedStatement.setObject(i + 1, paramters[i]); } rs = preparedStatement.executeQuery(); return ResultToListMap(rs); } catch (SQLException e) { throw new SQLException(e); } finally { free(rs); } } /** * 返回单个结果的值,如count\min\max等等 * * @param sql * sql语句 * @return 结果集 * @throws SQLException */ public static Object getSingle(String sql) throws SQLException { Object result = null; ResultSet rs = null; try { getPreparedStatement(sql); rs = preparedStatement.executeQuery(); if (rs.next()) { result = rs.getObject(1); } return result; } catch (SQLException e) { throw new SQLException(e); } finally { free(rs); } } /** * 返回单个结果值,如count\min\max等 * * @param sql * sql语句 * @param paramters * 参数列表 * @return 结果 * @throws SQLException */ public static Object getSingle(String sql, Object... paramters) throws SQLException { Object result = null; ResultSet rs = null; try { getPreparedStatement(sql); for (int i = 0; i < paramters.length; i++) { preparedStatement.setObject(i + 1, paramters[i]); } rs = preparedStatement.executeQuery(); if (rs.next()) { result = rs.getObject(1); } return result; } catch (SQLException e) { throw new SQLException(e); } finally { free(rs); } } /** * 用于增删改 * * @param sql * sql语句 * @return 影响行数 * @throws SQLException */ public static int update(String sql) throws SQLException { try { getPreparedStatement(sql); return preparedStatement.executeUpdate(); } catch (SQLException e) { throw new SQLException(e); } finally { free(); } } /** * 用于增删改(带参数) * * @param sql * sql语句 * @param paramters * sql语句 * @return 影响行数 * @throws SQLException */ public static int update(String sql, Object... paramters) throws SQLException { try { getPreparedStatement(sql); for (int i = 0; i < paramters.length; i++) { preparedStatement.setObject(i + 1, paramters[i]); } return preparedStatement.executeUpdate(); } catch (SQLException e) { throw new SQLException(e); } finally { free(); } } /** * 插入值后返回主键值 * * @param sql * 插入sql语句 * @return 返回结果 * @throws Exception */ public static Object insertWithReturnPrimeKey(String sql) throws SQLException { ResultSet rs = null; Object result = null; try { conn = JdbcUnits.getConnection(); preparedStatement = conn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS); preparedStatement.execute(); rs = preparedStatement.getGeneratedKeys(); if (rs.next()) { result = rs.getObject(1); } return result; } catch (SQLException e) { throw new SQLException(e); } } /** * 插入值后返回主键值 * * @param sql * 插入sql语句 * @param paramters * 参数列表 * @return 返回结果 * @throws SQLException */ public static Object insertWithReturnPrimeKey(String sql, Object... paramters) throws SQLException { ResultSet rs = null; Object result = null; try { conn = JdbcUnits.getConnection(); preparedStatement = conn.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS); for (int i = 0; i < paramters.length; i++) { preparedStatement.setObject(i + 1, paramters[i]); } preparedStatement.execute(); rs = preparedStatement.getGeneratedKeys(); if (rs.next()) { result = rs.getObject(1); } return result; } catch (SQLException e) { throw new SQLException(e); } } /** * 调用存储过程执行查询 * * @param procedureSql * 存储过程 * @return * @throws SQLException */ @SuppressWarnings("rawtypes") public static List callableQuery(String procedureSql) throws SQLException { ResultSet rs = null; try { getCallableStatement(procedureSql); rs = callableStatement.executeQuery(); return ResultToListMap(rs); } catch (SQLException e) { throw new SQLException(e); } finally { free(rs); } } /** * 调用存储过程(带参数),执行查询 * * @param procedureSql * 存储过程 * @param paramters * 参数表 * @return * @throws SQLException */ @SuppressWarnings("rawtypes") public static List callableQuery(String procedureSql, Object... paramters) throws SQLException { ResultSet rs = null; try { getCallableStatement(procedureSql); for (int i = 0; i < paramters.length; i++) { callableStatement.setObject(i + 1, paramters[i]); } rs = callableStatement.executeQuery(); return ResultToListMap(rs); } catch (SQLException e) { throw new SQLException(e); } finally { free(rs); } } /** * 调用存储过程,查询单个值 * * @param procedureSql * @return * @throws SQLException */ public static Object callableGetSingle(String procedureSql) throws SQLException { Object result = null; ResultSet rs = null; try { getCallableStatement(procedureSql); rs = callableStatement.executeQuery(); while (rs.next()) { result = rs.getObject(1); } return result; } catch (SQLException e) { throw new SQLException(e); } finally { free(rs); } } /** * 调用存储过程(带参数),查询单个值 * * @param procedureSql * @param parameters * @return * @throws SQLException */ public static Object callableGetSingle(String procedureSql, Object... paramters) throws SQLException { Object result = null; ResultSet rs = null; try { getCallableStatement(procedureSql); for (int i = 0; i < paramters.length; i++) { callableStatement.setObject(i + 1, paramters[i]); } rs = callableStatement.executeQuery(); while (rs.next()) { result = rs.getObject(1); } return result; } catch (SQLException e) { throw new SQLException(e); } finally { free(rs); } } public static Object callableWithParamters(String procedureSql) throws SQLException { try { getCallableStatement(procedureSql); callableStatement.registerOutParameter(0, Types.OTHER); callableStatement.execute(); return callableStatement.getObject(0); } catch (SQLException e) { throw new SQLException(e); } finally { free(); } } /** * 调用存储过程,执行增删改 * * @param procedureSql * 存储过程 * @return 影响行数 * @throws SQLException */ public static int callableUpdate(String procedureSql) throws SQLException { try { getCallableStatement(procedureSql); return callableStatement.executeUpdate(); } catch (SQLException e) { throw new SQLException(e); } finally { free(); } } /** * 调用存储过程(带参数),执行增删改 * * @param procedureSql * 存储过程 * @param parameters * @return 影响行数 * @throws SQLException */ public static int callableUpdate(String procedureSql, Object... parameters) throws SQLException { try { getCallableStatement(procedureSql); for (int i = 0; i < parameters.length; i++) { callableStatement.setObject(i + 1, parameters[i]); } return callableStatement.executeUpdate(); } catch (SQLException e) { throw new SQLException(e); } finally { free(); } } /** * 批量更新数据 * * @param sqlList * 一组sql * @return */ public static int[] batchUpdate(List<String> sqlList) { int[] result = new int[] {}; Statement statenent = null; try { conn = JdbcUnits.getConnection(); conn.setAutoCommit(false); statenent = conn.createStatement(); for (String sql : sqlList) { statenent.addBatch(sql); } result = statenent.executeBatch(); conn.commit(); } catch (SQLException e) { try { conn.rollback(); } catch (SQLException e1) { // TODO Auto-generated catch block throw new ExceptionInInitializerError(e1); } throw new ExceptionInInitializerError(e); } finally { free(statenent, null); } return result; } @SuppressWarnings({ "unchecked", "rawtypes" }) private static List ResultToListMap(ResultSet rs) throws SQLException { List list = new ArrayList(); while (rs.next()) { ResultSetMetaData md = rs.getMetaData(); Map map = new HashMap(); for (int i = 1; i < md.getColumnCount(); i++) { map.put(md.getColumnLabel(i), rs.getObject(i)); } list.add(map); } return list; } /** * 获取PreparedStatement * * @param sql * @throws SQLException */ private static void getPreparedStatement(String sql) throws SQLException { conn = JdbcUnits.getConnection(); preparedStatement = conn.prepareStatement(sql); } /** * 获取CallableStatement * * @param procedureSql * @throws SQLException */ private static void getCallableStatement(String procedureSql) throws SQLException { conn = JdbcUnits.getConnection(); callableStatement = conn.prepareCall(procedureSql); } /** * 释放资源 * * @param rs * 结果集 */ public static void free(ResultSet rs) { JdbcUnits.free(conn, preparedStatement, rs); } /** * 释放资源 * * @param statement * @param rs */ public static void free(Statement statement, ResultSet rs) { JdbcUnits.free(conn, statement, rs); } /** * 释放资源 */ public static void free() { free(null); } }
http://www.oschina.net/code/snippet_224705_12407
相关推荐
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它提供了一种标准化的方法,让程序员可以使用SQL语句访问数据库,而无需关心具体的数据库实现细节。在Java应用...
Java JDBC学生数据管理系统是一个利用Java编程语言和JDBC(Java Database Connectivity)技术设计的应用,用于高效管理和操作学生数据。这个系统提供了用户友好的界面,使得用户可以方便地执行SQL(Structured Query...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种关系数据库进行交互的一组接口和类。它作为标准API,允许开发人员通过编写Java代码来访问和操作数据库,无需了解数据库特定的SQL语法或者驱动...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种关系数据库进行交互的一组标准API。JDBC使得Java开发者能够编写可移植的数据库应用程序,无需针对不同数据库系统编写不同的代码。JDBC的核心是一...
Java JDBC(Java Database Connectivity)是Java语言中用于与数据库交互的一种技术,它为开发者提供了一种标准的方法来访问各种类型的数据库。在Java中连接SQL Server数据库时,你需要一个特定的驱动程序,通常是一...
Java JDBC (Java Database Connectivity) 是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java标准的一部分,允许开发者在Java程序中执行SQL语句,实现对数据库的读写操作。本示例主要涉及使用Java ...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它是Java标准版(Java SE)的一部分,允许Java开发者执行SQL语句并处理结果。在深入探讨Java JDBC之前,先要理解...
Java JDBC 连接池是Java开发中非常关键的一部分,它能有效地管理数据库连接,提高应用程序的性能和效率。本实例提供了完美的Java JDBC连接池配置,适用于Oracle、MySQL和SQL Server等主流数据库,允许开发者轻松地在...
**JAVA JDBC教程** Java JDBC(Java Database Connectivity)是Java平台中的一个标准API,它允许Java应用程序连接到各种类型的数据库,实现数据的存取和处理。JDBC为开发者提供了一种统一的方式来访问不同的数据库...
javaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.pptjavaJDBC编程.ppt
java jdbc odbc 桥连接包 如何实现JDBC-ODBC桥连接到Access
最全的javaJDBC技术的BaseDao,相当于框架封装了,引用之后直接调用其中的方法传递参数以及sql语句就可以使用了。
在Java编程语言中,JDBC(Java Database Connectivity)是一个用于与各种数据库进行交互的标准接口。JDBC提供了一套规范,使得Java程序员可以使用统一的方法来访问数据库,包括Oracle数据库。Oracle是世界上最流行的...
Java JDBC(Java Database Connectivity)是Java语言中用来规范客户端程序如何访问数据库的应用程序接口,它提供了标准的API,使得Java程序员能够使用SQL语句来访问数据库。本篇将通过一个小型示例,详细介绍如何...
Java JDBC(Java Database Connectivity)驱动则是Java程序与各种数据库进行交互的标准接口,使得Java开发者能够方便地访问和操作数据库。在本压缩包中,我们可能找到了用于连接MySQL 8.0的Java JDBC驱动,这将帮助...
全面的 Java JDBC 编程学习知识总结 一张图搞定! 结构性强,便于记忆! 资源博客:https://blog.csdn.net/CodeYearn/article/details/89196038
SQLite JDBC 是一个开源的 Java 驱动程序,允许 Java 应用程序通过 JDBC API 连接到 SQLite 数据库。SQLite 是一个轻量级、自包含的数据库引擎,无需单独的服务器进程,非常适合嵌入式应用或者对小型项目的数据存储...
Java JDBC(Java Database Connectivity)是Java平台中用于与数据库交互的一组接口和类,它使得开发者可以使用标准的Java API来访问各种类型的数据库系统。在Java应用中,JDBC驱动扮演着桥梁的角色,将Java程序与...
Java JDBC 代码,可以借鉴一下,jdbc基本是这个模式
Java JDBC(Java Database Connectivity)是Java平台中用于与各种数据库进行交互的标准接口。它允许Java应用程序通过编写Java代码来访问和处理存储在数据库中的数据。在这个主题中,我们将深入探讨如何使用JDBC来...