`
myzhijie
  • 浏览: 28701 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

简单封装JDBC操作类 适合初学者 不适合高级使用

 
阅读更多
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 用于JDBC操作
 * 
 * @author 沙琪玛
 */
public class ByteJDBC {
	private String driverName = "oracle.jdbc.driver.OracleDriver";
	private String url = "";
	private String userName = "";
	private String userPwd = "";

	/**
	 * 删除单条数据
	 * 
	 * @param tableName
	 *            表名
	 * @param idName
	 *            idName名称
	 * @param idValue
	 *            idValue值
	 */
	public void deleteById(String tableName, String idName, String idValue) {
		String sql = "delete from " + tableName + " where " + idName + "='"
				+ idValue + "'";
		doSQL(sql);
	}

	/**
	 * 执行SQL(查询) 并且返回生成结果集表格
	 * 
	 * @return String
	 */
	public String selectSQL(String selectSQL) {
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		// 用来存放查询的结果
		StringBuffer sb = new StringBuffer();
		try {
			// 加载驱动
			Class.forName(driverName);
			// 创建连接
			conn = DriverManager.getConnection(url, userName, userPwd);
			// 创建Statement
			st = conn.createStatement();
			// 执行sql语句,得到查询结果
			rs = st.executeQuery(selectSQL);
			// 输出查询结果
			int cloNum = rs.getMetaData().getColumnCount();
			sb.append("<tr class=\"th\">");
			for (int i = 0; i < cloNum; i++) {
				sb.append("<td>");
				sb.append(rs.getMetaData().getColumnName(i + 1));
				sb.append("</td>");
			}
			sb.append("</tr>");
			while (rs.next()) {
				sb.append("<tr>");
				for (int i = 0; i < cloNum; i++) {
					sb.append("<td>");
					sb.append(rs.getString(i + 1));
					sb.append("</td>");
				}
				sb.append("</tr>");
			}
			// 关闭资源
			rs.close();
			st.close();
			conn.close();

		} catch (Exception ex) {
			// 输出错误信息
			ex.printStackTrace();
		} finally {
			// finally子句总是会执行(就算发生错误),这样可以保证资源的绝对关闭
			try {
				if (rs != null)
					rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (st != null)
					st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (conn != null)
					conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}

		}
		return sb.toString();
	}

	/**
	 * 执行sql语句(修改、删除,插入)
	 */
	public void doSQL(String sqlStr) {
		Connection conn = null;
		Statement st = null;
		try {
			// 加载驱动
			Class.forName(driverName);
			// 创建连接
			conn = DriverManager.getConnection(url, userName, userPwd);
			// 创建Statement
			st = conn.createStatement();
			// 执行sql语句,得到查询结果
			st.execute(sqlStr);
			// 关闭资源
			st.close();
			conn.close();
		} catch (Exception ex) {
			// 输出错误信息
			ex.printStackTrace();
		} finally {
			// finally子句总是会执行(就算发生错误),这样可以保证资源的绝对关闭
			try {
				if (st != null)
					st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			try {
				if (conn != null)
					conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}
 
分享到:
评论
7 楼 jwx0925 2010-04-20  
tonyruiyu 写道
初学者真的不适合  误人子弟 

每次操作都会去创建CONNECTION  ,这非常要命

没有连接池 ,  没有反射,  没有动态代理  ,

什么都没有  刚毕业的都可能比这好,

我一大早上看个这贴  ..


确实很悲剧~
6 楼 tonyruiyu 2010-04-20  
初学者真的不适合  误人子弟 

每次操作都会去创建CONNECTION  ,这非常要命

没有连接池 ,  没有反射,  没有动态代理  ,

什么都没有  刚毕业的都可能比这好,

我一大早上看个这贴  ..
5 楼 waywin0512 2010-04-20  
vivia 写道
我是看到标题过来的,结果居然。。。。

我也是。。
4 楼 vivia 2010-04-20  
我是看到标题过来的,结果居然。。。。
3 楼 gwpking8419 2010-04-20  
雏......
2 楼 yunghe 2010-04-20  
一声叹息
1 楼 jsdit 2010-04-20  
建议将数据库建立连接和关闭资源分别写成两个方法。

相关推荐

    JDBC编程!java中的数据库连接!源代码!适合初学者!

    此外,JDBC编程也有一些高级特性,比如连接池、事务处理、批处理等,这些都可以在JDBC编程中使用,以提高程序的性能和效率。 在实际开发中,由于JDBC编程较为繁琐,通常会使用一些框架来简化JDBC编程,比如...

    JDBC简单地工具类.rar

    总之,"JDBC简单地工具类.rar"是一个适合初学者了解和实践JDBC基础操作的资源,通过阅读和理解其中的代码,可以帮助初学者快速掌握JDBC的基本用法和原理,为进一步学习和使用数据库技术打下基础。

    JDBC练习小项目用于java初学者

    **标题解析:** "JDBC练习小项目用于java初学者" 这个标题表明这是一个针对初学者设计的Java编程练习项目,重点在于JDBC(Java Database Connectivity)的应用。JDBC是Java语言中用来规范客户端程序如何连接和操作...

    JDBC CRUD操作的粗略封装DEMO

    这个DEMO对于初学者来说是一个很好的实践,通过它,我们可以了解到JDBC操作的基本流程和最佳实践,如使用PreparedStatement防止SQL注入,以及正确关闭资源以避免内存泄漏。同时,封装工具类和回调函数的设计思路也有...

    初学者项目实训Java-MySQL-JDBC-BBS源码

    初学者可以通过此项目学习Java面向对象编程的基本概念,如类、对象、封装、继承和多态性。同时,还将接触到Servlet和JSP等Java Web技术,了解它们在处理HTTP请求和展示动态网页中的作用。 其次,MySQL是关系型...

    Java初学者JDBC+Servlet+jsp

    Java初学者在学习Web开发时,常常会接触到JDBC、Servlet和JSP这三个核心技术,它们是构建基于Java的动态Web应用程序的基础。以下是对这些技术的详细介绍: 1. JDBC(Java Database Connectivity): JDBC是Java...

    JDBC 数据库连接和操作的封装

    例如,在2005年左右,初学者可能会写出如下代码: ```java // 原始的JDBC操作示例 Connection conn = null; PreparedStatement pstmt = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = ...

    java JDBC包装类

    Java JDBC包装类是一种为了简化Java数据库连接(JDBC)操作而设计的自定义工具类或框架。在传统的JDBC编程中,我们需要手动编写...对于初学者来说,理解和掌握JDBC的封装概念和实现方式,对于提升编程能力非常有帮助。

    jdbc连接oracle11g初次封装.docx

    ### JDBC 连接 Oracle11g ...虽然在实际应用中还需要进一步完善性能优化等方面的工作,但对于初学者来说,这已经是一个很好的起点。通过深入理解并扩展这个框架,开发者可以构建出更加健壮和高效的数据库访问解决方案。

    java初学者应该阅读的书籍

    对于Java初学者来说,选择合适的书籍进行学习是至关重要的一步。好的书籍不仅能够帮助我们打下坚实的基础,还能让我们在编程的道路上少走弯路。根据提供的信息,我们可以推测这三本书分别是Java初学者应该阅读的经典...

    jdbc.rar_JDBC增删改查_java jdbc_jdbc_jdbc 增删改查_jdbc封装

    封装后的JDBC操作通常会更安全、高效,因为它可以处理异常、自动关闭资源,并且通过参数化SQL避免了SQL注入问题。这样的代码不仅简化了开发过程,也使得代码更易于测试和调试。 综上所述,这个“jdbc.rar”压缩包...

    struts2(包括增删改查的实现,及登录实现。jdbc连接。适合struts2初学者)

    这个压缩包文件“StrutsTest”包含了学习Struts2基础功能的实例,特别是对于初学者来说,它提供了增删改查(CRUD)操作以及用户登录功能的实现,同时还涉及了使用JDBC进行数据库连接。 增删改查(CRUD)是任何数据...

    酷炫javaweb后台系统适合初学者【里面有封装 反射内省等】

    JavaWeb后台系统是开发Web应用程序的一种常见方式,尤其适合初学者入门学习。在这个"酷炫javaweb后台系统"中,包含了一些核心的JavaWeb技术和编程理念,如封装、反射和内省等。这些概念是Java编程的重要组成部分,...

    JdbcTemplate,自己封装的jdbc小框架

    综上所述,自封装的JdbcTemplate是一个简化JDBC操作的实用工具,它通过设计模式和面向对象编程,将复杂的数据库交互转化为简单的API调用,降低了开发难度,提高了代码质量。对于初学者而言,这是一个很好的学习和...

    java的通讯录管理系统(适合初学者

    Java的通讯录管理系统是一款非常适合初学者实践编程技能的项目,它可以帮助用户存储、管理联系人的姓名、电话号码、电子邮件等信息。在这个系统中,你将学习到如何利用Java语言进行面向对象编程,以及如何实现数据的...

    java初学者教材,适合初学者应用

    13. **Swing与JavaFX**:基础的GUI编程,包括窗口组件、布局管理器、事件处理等,让初学者能够创建简单的桌面应用。 14. **JDBC数据库编程**:学习如何连接数据库,执行SQL查询,以及处理结果集,理解事务的概念。 ...

    初学者第一个小项目基于JDBC+oracle实现图书管理系统

    【初学者第一个小项目基于JDBC+Oracle实现图书管理系统】是一个经典的编程实践,它涵盖了数据库操作、面向对象设计以及简单的用户交互。在这个项目中,我们将深入理解如何利用Java的JDBC(Java Database ...

    java语言入门(适合初学者)

    随着学习的深入,初学者还可以接触到更高级的主题,如并发编程、JDBC(Java数据库连接)和JavaFX(用于桌面应用开发)等。 总的来说,Java语言入门学习是一个逐步深化的过程,从简单的概念到复杂的框架,都需要时间...

    220个JAVA初学者实例

    2. **面向对象编程**:理解类和对象的概念,学习如何创建和使用类,包括类的封装、继承和多态性。接口也是Java中实现多态的重要方式。 3. **数组与集合**:掌握一维和多维数组的使用,了解ArrayList、LinkedList、...

    适合java 初学者的实例

    Java编程语言是世界上最流行的编程语言之一,尤其适合初学者入门。这个"适合java 初学者的实例"集合,无疑为那些希望通过实践来学习Java的新手提供了宝贵的资源。下面,我们将深入探讨这些实例可能涵盖的知识点,...

Global site tag (gtag.js) - Google Analytics