`
jiangduxi
  • 浏览: 457042 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JDBC的一个基本的封装

阅读更多
  最近在学习JDBC的时候,编写了一个封装程序,此外用于记录。
  import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import java.sql.Connection;

/**
 * JDBC辅助类
 * 
 * @author jiangduxi
 * 
 */
public final class JdbcUtils {
	private static String url = "jdbc:mysql://localhost:3306/jdbc"; //连接数据库连接
	private static String use = "root"; // 登陆数据库用户名
	private static String password = "123456"; //登陆数据库密码

	private JdbcUtils() {

	}

	/**
	 * 使用静态模块来进行注册驱动
	 */
	static {
		// 1. 注册驱动
		try {
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			throw new ExceptionInInitializerError(e);
		}
	}

	/**
	 * 建立数据库连接
	 * 
	 * @return 返回数据库连接
	 * @throws SQLException
	 */
	public static Connection getConnection() throws SQLException {
		return DriverManager.getConnection(url, use, password);
	}

	/**
	 * 释放数据资源
	 * 
	 * @param rs
	 * @param st
	 * @param conn
	 */
	public static void free(ResultSet rs, Statement st, Connection conn) {
		try {
			if (rs != null)
				rs.close();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (st != null)
					st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			} finally {
				if (conn != null)
					try {
						conn.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
			}
		}
	}

}

下面看看怎么在Add操作中使用该上面的封装类吧!
该AddData方法是用于对user表进行简单的添加操作
 public static void AddData() throws SQLException{
   Connection conn = null
   Statement st = null;
   ResultSet rs = null;
   try{
        //建立连接
        conn = JdbcUtils.getConnection();
        //创建sql语句
        st = conn.createStatement();
        String sql = "INSERT INTO user(name,birthday,money)VALUES('XXXXX','1985-05-19','500.99')";
        //执行SQL语句
       int i = st.executeUpdate(sql);

    }finally {
      JdbcUtils.free(rs, st, conn);
   }
 }

其他的Update、Delete、Search方法都类似。就不给出方法了。
一般的JDBC的步骤是
引用

1. Class.forName()进行注册驱动
2. getConnection() 获取连接
3. 创建SQL语句
4. 执行SQL语句
5. 释放资源

在上述的步骤中尤其要注意释放资源。而且在释放资源的时候尤其要注意,当参数传过来的含有未释放的参数。这个释放资源一般属于慢性病。如果你忘记了,那么系统会慢慢的死掉。
分享到:
评论
24 楼 likeblood 2010-07-15  
1、学习是个过程
2、lz是个动脑筋的人 继续努力
3、楼下回帖的人 99%+都不厚道 你忘了你当学徒是什么样子了么?
23 楼 hli1314 2010-07-15  
学生练习吧。。嘻嘻
22 楼 panzs 2010-03-23  
没啥技术含量
21 楼 javazeke 2010-03-19  
我,从来处来,向去处去
20 楼 zjmazh 2010-03-11  
一般这种代码是在学习JDBC后期的时候,老师为了方便讲学才会用的一个工具类。属于菜鸟级别。
19 楼 xiaoyiz 2010-03-11  
treblesoftware 写道
连接池都没得,这样的代码也好意思拿出来分享?

觉得别人的写的不好,就把你自己写得好的写出来 。。。~囧。。 javaeye貌似都喜欢这样?装的人太多了。。。就算你牛又怎么样?你就没有初学的时候么?难道你一出生就知道java?知道JDBC?SSH? 最鄙视的就是你这种人!
18 楼 caoyangx 2010-03-11  
这样封装没有什么用,使用没有方便,性能没有提升,连连接池都没有用。
建议你用一下commons工具包的dbutils,他的源码你可以参考一下。
17 楼 liangexiang 2010-03-11  
别误导人了,这样的代码。

建议去学习spring的jdbc封装。
16 楼 oakeye 2010-03-11  
新手贴吧  
15 楼 fory 2010-03-11  
恩,这是封装
14 楼 jiangduxi 2010-03-11  
beeke 写道
javaeye这么下去都不如csdn了

不好意思啊!请不要因为我的不才而去迁责到javaeye。请也不要因为个人不才去谴责学校不好!谢谢你的批评!我会更认真的学习的。请问你能多多指教!
13 楼 jiangduxi 2010-03-11  
   谢谢各位的拍砖!本人也是初来咋到!非常欢迎各位强力拍。本人很好的学习下,各位有什么好的建议或者意见本人照单接受。请不要更Javaeye联系起来。正如本人不才,不能说本人学校不才。谢谢各位
12 楼 randyyao 2010-03-11  
free 方法中的几个try的嵌套貌似显得代码结构不怎么D...
11 楼 rentianchou 2010-03-11  
本故事纯属搞笑
10 楼 freish 2010-03-11  
DBUtils不是很好么,又造轮子
9 楼 mabinwodejava 2010-03-11  
学习用还可以吧。
8 楼 treblesoftware 2010-03-11  
连接池都没得,这样的代码也好意思拿出来分享?
7 楼 beeke 2010-03-11  
javaeye这么下去都不如csdn了
6 楼 pk3589 2010-03-11  
难道没有审查的吗
5 楼 dandan_5956 2010-03-11  
以上我为现在的项目写的封装,虽然用了Spring,改动下,也可以用于不用Spring的情况

相关推荐

    java JDBC 连接sql server封装

    以上就是一个基本的Java JDBC连接SQL Server的封装示例。通过这种方式,你可以轻松地在多个地方重用相同的连接逻辑,同时保持代码的整洁。记住,对于生产环境,最好使用连接池(如HikariCP、C3P0等)来管理和复用...

    java增删改查JDBC封装类(泛型封装)

    - `SqlServerConn`可能是一个针对SQL Server数据库的连接类,封装了JDBC连接和操作的方法。 - 可能包含如`getConnection()`获取数据库连接,`executeQuery(String sql, ResultSetHandler<T> handler)`执行查询并...

    自己封装的JDBC

    封装JDBC主要是对以上步骤进行抽象和封装,例如创建一个`DBUtil`类,提供以下功能: - 静态方法用于加载驱动和建立连接,如`getConnection(String url, String username, String password)`。 - 创建一个`...

    有关于jdbc的基本封装

    JDBC是Java平台上的一个API,允许Java开发者与各种类型的数据库进行交互。它提供了一组接口和类,使得程序员可以编写数据库独立的代码,从而不必关心底层数据库的具体实现。 2. 基本CRUD操作: - 创建(Create)...

    JDBC数据操作封装

    针对"JDBC数据操作封装",我们可以设计一个通用的DAO(Data Access Object)层,提供增删查改的接口。例如,一个简单的CRUD接口如下: ```java public interface Dao<T> { void insert(T entity); void update(T ...

    对jdbc的封装的总结

    在封装的JDBC代码中,可以设计一个方法读取这个文件,逐条执行其中的SQL,方便数据库的初始化和测试。 总结起来,对JDBC的封装是提高Java应用数据库操作效率和质量的关键步骤。通过引入连接池、使用...

    原创的JDBC封装可支持各种数据库

    封装一个方法接收SQL语句数组,一次性执行多个SQL。 10. **连接关闭**: 使用连接池时,不需要手动关闭连接,但在不使用连接池的情况下,需要确保在操作完成后关闭连接、Statement和ResultSet。 通过以上步骤,...

    通用JDBC基本操作封装源代码

    简单易用的数据库封装操作,包含数据库连接池的基本实现,数据库连接可重用,所有的操作都脱离源生JDBC操作,开发人员只需要熟悉Java集合的用法,会写Sql即可轻松的使用该封装好的JDBC API写出合理的代码。...

    自己封装的jdbc工具类

    给学生讲课课上写的jdbc封装类,对基本的增删改查和事务做了封装。例子中用的是oracle 11g数据库,如果换其他数据库直接改连库字符串就行,其他的不用动,适合初学者学习。查询的时候会省掉很多工作量,不需要一个一...

    mysql JDBC C3P0 封装类

    4. 封装JDBC操作:创建一个数据库操作类,如`DBUtil`,提供获取连接、释放连接、执行SQL等方法。在获取连接时,从数据源中借用连接;执行完SQL后,将连接归还到数据源。 ```java public class DBUtil { private ...

    jdbc封装(实现对实体的增删改查[分页]).zip

    code-access实现 是用access实现的,本意是access方便,就一个文件,方便部署。但access有好多不支持,就写成这样.主要是可参考Dao这一层的代码 JdbcUtils是jdbc封装的工具, JdbcCRUDUtils借助JdbcUtils实现对实体...

    JDBC封装.rar

    "JDBC封装方式"可能是包含上述封装策略的源代码文件,如`DBUtil.java`,`UserDAO.java`,`UserDAOImpl.java`等,这些文件共同构成了一个完整的JDBC封装体系。 通过以上介绍,我们可以理解JDBC封装是Java开发中提升...

    JDBC通用封装类

    本资源是对JDBC的封装,方便在项目中使用,其中BaseDao.java是对JDBC操作的封装,使用时让自己的Dao类继承即可,然后调用其中的executeQuery和executeOthe分别执行DQL和DML操作。dbinfo.properties属性文件存储基本...

    JDBC轻量型封装实例

    本资源属于基本的JDBC操纵数据库增删改查代码的轻量型封装的实现,具体的使用过程大家可以参照以下博文的讲解: http://blog.csdn.net/songdeitao/article/details/17484635

    封装过的jdbc包

    对jdbc简单封装,实现基本增删改查,使用时请用编译器导入继承BaseDao类即可

    封装jdbc,采用Map方式快速增删改数据库例子

    在Java的数据库编程中,JDBC(Java Database Connectivity)是一个重要的接口,用于连接Java应用程序与各种类型的数据库。本文将深入探讨如何通过封装JDBC来提高数据库操作的效率,特别是使用Map数据结构实现快速的...

    jdbc-增删改查和封装增删改查.docx

    Statement接口是一个基本的接口,使用它可以执行不带参数的SQL语句。PreparedStatement接口是Statement接口的子接口,使用它可以执行带参数的SQL语句。CallableStatement接口是Statement接口的子接口,使用它可以...

    jdbc连接oracle11g初次封装.docx

    本文档提供了一个使用 JDBC 连接 Oracle 11g 数据库的基本框架,并进行了初步的封装。虽然在实际应用中还需要进一步完善性能优化等方面的工作,但对于初学者来说,这已经是一个很好的起点。通过深入理解并扩展这个...

    DB.rar_jdbc封装

    本压缩包“DB.rar_jdbc封装”显然是一个关于如何使用Java JDBC进行数据库连接封装的示例或教程。下面我们将详细探讨JDBC以及如何进行封装。 首先,JDBC是Java平台上的一个接口,它允许Java应用程序与各种数据库进行...

    JDBC CRUD操作的粗略封装DEMO

    本示例“JDBC CRUD操作的粗略封装DEMO”提供了一个基础的JDBC操作数据库的代码实例,旨在简化常见的数据库操作流程。我们可以通过分析这个DEMO来学习如何利用JDBC进行数据处理。 首先,我们需要理解JDBC的基本步骤...

Global site tag (gtag.js) - Google Analytics