DBUtials的实现

元数据Meata data:描述数据的数据 String sql ,描述这份SQL字符串的数据叫做元数据
数据库元数据:DatabaseMetaData
参数元数据:ParameterMetaData
届国际原数据:ResultSetMetaData

	/**
	 * DBUtials的实现
	 * @param sql
	 * @param args
	 */
	public void update(String sql , Object ... args){
		Connection conn =null;
		PreparedStatement ps = null;
		try {
			conn = JDBCUtil.getConn();
			ps = conn.prepareStatement(sql);
//			根据参数设置
//			for(int i =0 ;i< args.length ; i++){
//				ps.setObject(i+1, args[i]);
//			}
//			根据问号的个数设置参数
			ParameterMetaData metaData = ps.getParameterMetaData();
			int count = metaData.getParameterCount();
			for(int i =0 ;i< count ; i++){
				ps.setObject(i+1, args[i]);
			}
			ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			JDBCUtil.release(conn, ps);
		}
		
	}
	/**
	 * DBUtials的实现
	 * @param sql
	 * @param args
	 */
	public T query(String sql ,ResultSetHandler handler, Object ... args){
		Connection conn =null;
		PreparedStatement ps = null;
		ResultSet rs= null;
		try {
			conn = JDBCUtil.getConn();
			ps = conn.prepareStatement(sql);
//			根据参数设置
//			for(int i =0 ;i< args.length ; i++){
//				ps.setObject(i+1, args[i]);
//			}
//			根据问号的个数设置参数
			ParameterMetaData metaData = ps.getParameterMetaData();
			int count = metaData.getParameterCount();
			for(int i =0 ;i< count ; i++){
				ps.setObject(i+1, args[i]);
			}
			rs = ps.executeQuery();
//			定义一个接口,通过实现类去实现方法,参数为实现类;通过new接口,并且实现接口的方法;方法名handle,在接口定义时传入泛型T,由T来定义方法的返回类型,从而实现方法的通用性
			T t = (T)handler.handle(rs);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			JDBCUtil.release(conn, ps);
		}
		
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值