自已动手写ORM框架(3)——封装JdbcUtil

自已动手写ORM框架(3)——封装JdbcUtil

    在阐述了ORM思想后,我们就可以真正的动手写自已的简易ORM框架了,ORM层是解决类的对像的数据表中记录的映射关系问题的,本章要解决的JdbcUtil是封装底层SQL语句执行的操作的。在ORM层构建好SQL语句后直接扔给JdbcUtil层来执行。
    
    思考一下,JdbcUtil需要提供哪些方法呢?
    我们按照PreparedStatement提供的两个方法来封装出JdbcUtil的两个方法:executeUpdate和executeQuery,其中前者用于执行DML语句(insert, delete, update),后者用于查询(select)。
    
    1. DML语句的执行接口
	/**
	 * 执行一条需要Connection的SQL语句
	 * @param conn		数据库连接
	 * @param sql		SQL语句
	 * @param params	SQL语句的参数
	 * @return			执行语句后影响的记录的行数
	 * @throws SQLException 
	 */
	public static int executeUpdate(Connection conn,String sql,Object...params) 
			          throws SQLException{
		
		PreparedStatement pstmt = null;
		int rows = 0;
		//重组SQL语句执行
		try
		{
			pstmt = conn.prepareStatement(sql);
			for(int i=0; i<params.length; i++){
				pstmt.setObject(i+1, params[i]);
			}
			rows = pstmt.executeUpdate();
		}finally{
			IOUtil.close(pstmt);
		}
		
		return rows;
	}
    2. 查询语句的执行接口     
/**
	 * 执行需要Connection的查询语句
	 * @param conn			数据库连接
	 * @param sql			SQL语句
	 * @param params		SQL语句参数列表
	 * @return				查询结果集
	 * @throws SQLException
	 */
	public static ResultSet executeQuery(Connection conn,String sql,Object...params) 
						    throws SQLException{
		
		PreparedStatement pstmt = null;
		try
		{
			//执行SQL语句预编译
			pstmt = conn.prepareStatement(sql);
			//赋值参数
			for(int i=0; i<params.length; i ++){
				pstmt.setObject(i+1, params[i]);
			}
			//执行查询
			return pstmt.executeQuery();
		}catch(SQLException e){
			IOUtil.close(pstmt);
			throw new RuntimeException("SQL查询出错!",e);		
		}	
	}

    3. IOUtil的封装
    Connection,PreparedStatement,ResultSet对像的关闭,类似如下:     
/**
	 * 关闭数据库连接
	 * @param conn 需要关闭的数据库连接对像
	 */
	public static void close(Connection conn)
	{
		if(conn != null)
		{
			try
			{
				conn.close();
			} catch (SQLException e)
			{
				e.printStackTrace();
			}
		}
	}
    
    当然,在JdbcUtil里面还要处理从配置文件得到数据库的drivername,username,password,url等,这些放在静态初始化块里面。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自己动手框架是一种非常有挑战性的任务,尤其是对于 ORM(对象关系映射)、MVC(模型-视图-控制器)和IOC(控制反转)这三个框架而言。以下是对这三个框架的简要介绍,以及它们的实现过程。 首先,ORM(对象关系映射)框架是用于将数据库中的表映射为对象的一种技术。在实现ORM框架时,需要定义对象和表之间的映射关系,并提供相应的API来进行数据库的增删改查操作。还需要处理对象之间的关联关系(如一对一、一对多等),并提供事务管理、缓存等功能。 其次,MVC(模型-视图-控制器)框架是一种用于开发Web应用程序的架构模式,将应用程序分为模型、视图和控制器三层。在实现MVC框架时,需要定义模型、视图和控制器的接口,并提供相应的实现。模型负责处理数据逻辑,视图负责展示用户界面,而控制器则负责接收用户请求并进行处理,最后将结果返回给视图进行展示。 最后,IOC(控制反转)框架是一种通过依赖注入来管理对象之间的依赖关系的技术。在实现IOC框架时,需要定义依赖注入的规则,并提供相应的实现。可以使用反射机制来自动实例化对象,并将依赖的对象注入到目标对象中。还需要提供对象的生命周期管理(如单例模式、原型模式等)和对象的配置方式(如XML配置、注解配置等)。 总结来说,自己动手实现ORM、MVC和IOC框架需要掌握相关的技术和知识,并具备良好的设计和编码能力。除了理论知识外,还需要具备实际项目的经验,以便能够更好地设计和实现这些框架。同时,也需要不断学习和改进,跟上技术的发展潮流,以确保框架的高效和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值