数据库操作封装

C#数据库操作封装类大全 存储过程是一组为了完成特定功能的SQL语句集,它被编译后存储在数据库服务器中。开发者可以通过指定名称和参数来调用它。存储过程有助于封装和模块化复杂的数据库操作,提高代码的可重用性并减少网络通信量。应用场景广泛,包括但不限于:数据完整性约束的实现复杂的数据查询操作批量数据操作业务逻辑的集中处理例如,一个电子商务平台可能会使用存储过程来管理库存更新、订单处理和支付确认等业务流程。 阅读详情
<?php
/**
 *@desc: 数据库操作辅助文件,包括sql语句的构造、增删修查函数
 *@author:JiaYusheng
 *@time:01.10.2011
 */
include_once("inc/auth.php");			// 如需登录验证则包含,未登录将退出
include_once("inc/utility_all.php");	        // 如需要使用公用函数

/**
 *@desc: 查询表中的所有记录
 *@param: 表名
 *@return: 包含查询结果的记录数组
 */
function queryAll($table)
{
    $sql = "select * from ".$table;
    global $connection;
    $result = exequery($connection,$sql);
    $rows = array(); 
    while($row = mysql_fetch_array($result))
    {
	$rows[] = $row;
    }
    return $rows;
}
/**
 *@desc:依据$cloumns条件查询表$table
 *@param: 表名,条件字段与值构成的数组,开始记录ID,每页显示记录数
 *@return:查询所得的记录构成的数组
 */
function queryByPaging($table,$cloumns,$firstcount,$displaypg)
{
    global $connection;
    $sql = "select * from ".$table;
    $sql .= getConditionClause($cloumns);
    $sql .= " limit $firstcount,$displaypg";
    
    $rows = array();
    $result = exequery($connection,$sql);
    while($row = mysql_fetch_array($result))
    {
	$rows[] = $row;
    }
   // echo $sql;
    return $rows;
}
/**
 *@desc:根据sql进行查询,并将查询结果用二维数组返回
 *@param: sql
 *@return:查询所得的记录构成的数组
 */
function query($sql)
{
    global $connection;
    $rows = array();
    $result = exequery($connection,$sql);
    while($row = mysql_fetch_array($result))
    {
	$rows[] = $row;
    }
    return $rows;
}
/*
 *eg:
 
    $sql="select * from $rtable where sid=$sid order by rid desc limit $firstcount,$displaypg";
    $rows = query($sql);
 */


/**
 *@desc:依据$cloumns条件查询表$table
 *@param: 表名,条件字段与值构成的数组
 *@return:查询所得的记录构成的数组
 */
function queryAllByCondtion($table,$cloumns)
{
    $rows = array();
    global $connection;
    $sql = "select * from ".$table;
    $sql .= getConditionClause($cloumns);
    
    $rows = array();
    $result = exequery($connection,$sql);
    while($row = mysql_fetch_array($result))
    {
	$rows[] = $row;
    }
    //echo $sql;
    return $rows;
}
/*
 *eg:
$table = "xl_teacherinfo";
$cloumns = array(
               // "teacherID" => "s201025006",
               // "username" => "jinyong",
               // "alias" => "xiaojin",
                "gender" => "1",
              //  "role" => "4"
                 );
$rows = queryAllByCondtion($table,$cloumns);

foreach($rows as $row)
{
    echo "username: ".$row['username']."<br>";
    echo "teacherID: ".$row['teacherID']."<br>";
}
 */

/**
 *@desc:查询表的某个字段
 *@param:表名、字段名
 *@return:包含查询结果的数组
 */
function queryCloumns($table,$arrCloumns,$arrCondition)
{
    $sql = getColumns($arrCloumns);
    $sql .= " from ".$table;
    $sql .= getConditionClause($arrCondition);
    
    $rows = array();
    global $connection;
    $result = exequery($connection,$sql);
    $num_rows = mysql_num_rows($result);
    
    //将结果保存到数组$rows中
    $rows = array();
    $result = exequery($connection,$sql);
    while($row = mysql_fetch_array($result))
    {
	$rows[] = $row;
    }
   // echo $sql;
    return $rows;
    
}
/*
 *eg:
$table = "xl_teacherinfo";
$arrCondition= array(
                    "role" => 4,
                    "gender" => 1
                    );
$arrCloumns = array(
                    "teacherID",
                    "teachername",
                    "username"
                       );
echo queryCloumns($table,$arrCloumns,$arrCondition);
 */

/**
 *@desc: 向表table的columns字段中插入值values
 *@param: 表名,要插入记录的字段,字段值构成的数组
 *@return: 包含查询结果的数组
 */
function insert($table,$cloumns)
{
    $count = 0;
    $sql = "insert into ".$table."(";
    foreach($cloumns as $key => $value)
    {
        if(0==$count)
            $sql .= $key;
        else
            $sql .= ",".$key;
        $count++;
    }           
    $sql .=") values(";  
    
    $count = 0;
    foreach($cloumns as $key => $value)
    {
        if(0==$count)
        {
            if(is_string($value))
            {
                $sql .= "'".$value."'";
            }
            else
                $sql .=$value;
        }
        else
        {
            if(is_string($value))
                $sql .= ",'".$value."'";
            else
                $sql .= ",".$value;
        }
        $count++;
    }
    $sql .= ") ";
    //echo $sql;//test@@@@
    global $connection;
    $result = exequery($connection,$sql);
    $num_rows = mysql_affected_rows();
    return $num_rows;
}
/*
 *eg
$table = "xl_dict_role";
$cloumns = array(
                "name" => "jys",
                "serial" =>99
                );
echo insert($table,$cloumns);
 */

/**
 *@desc: 向表table的columns字段中插入值values
 *@param: 表名,要插入记录的字段数组,字段值数组
 *@return: 包含查询结果的数组
 */
function insertCV($table,$cloumns,$values)
{
    $count = 0;
    //update xl_dict_role(name,seiral) values('xinlilaoshi',10) where id = 1;
    $sql = "insert into ".$table."(";
    foreach($cloumns as $item)
    {
        if(0==$count)
            $sql .= $item;
        else
            $sql .= ",".$item;
        $count++;
    }
    $sql .=") values(";
    
    $count = 0;
    foreach($values as $item)
    {
        if(0==$count)
        {
            if(is_string($item))
            {
                $sql .= "'".$item."'";
            }
            else
                $sql .=$item;
        }
        else
        {
            if(is_string($item))
                $sql .= ",'".$item."'";
            else
                $sql .= ",".$item;
        }
        $count++;
    }
    $sql .= ") ";
    
    global $connection;
    $result = exequery($connection,$sql);
    $num_rows = mysql_affected_rows();
    return $num_rows;
}
/*
 *eg $table = "xl_dict_role";
$cloumns = array("name","serial");
$values = array("xinlilaoshi",10);
echo insertCV($table,$cloumns,$values);
*/


/**
 *@desc: 删除table中cloumn字段为value的记录
 *@param: 表名,字段,字段值
 *@return: 影响的记录数目
 */
function deleteByCloumn($table,$condCloumns)
{
    $sql = "delete from ".$table;
    //"where ".$cloumn."='".$value."'";
    $sql .= getConditionClause($condCloumns);

    global $connection;
    $result = exequery($connection,$sql);
    $num_rows = mysql_affected_rows();
    return $num_rows;
}

/*
 *eg
   $delID = "7";
   $table = "xl_teacherinfo";
   $cloumns = array("tid"=>$delID);
   echo deleteByCloumn($table,$cloumns);
*/

/**
 *@desc: 修改table中condCloumn字段为condValue的记录,
 *将cloumns字段修改为值values
 *@param: 表名,被修改字段,被修改字段值,条件字段与条件字段值构造的数组
 *@return: 影响的记录数目
 */
function update($table,$cloumns,$condCloumns)
{
    $count = 0;
    //update xl_dict_role(name,seiral) values('xinlilaoshi',10) where id = 1;
    $sql = "update ".$table." set ";
    foreach($cloumns as $key => $value)
    {
        if(0==$count)
        {
            if(is_string($value))
            $sql .= $key."='".$value."'";
            else
                $sql .= $key."=".$value;
        }
        else
        {
            if(is_string($value))
            $sql .= ",".$key."='".$value."'";
            else
                $sql .= ",".$key."=".$value;
        }
        $count++;        
    }
  
    $sql .= getConditionClause($condCloumns);
    //echo "<br>update sql: ".$sql."<br>";
    global $connection;
    $result = exequery($connection,$sql);
    $num_rows = mysql_affected_rows();
    return $num_rows;
}
/*
 *eg
$table = "xl_dict_role";
$cloumns = array("name"=>"心理",
                 "serial"=>"88");
$condCloumns = array("id"=>11);
echo update($table,$cloumns,$condCloumns);
 */

/*
function update($table,$cloumns,$values,$condCloumns)
{
    $count = 0;
    //update xl_dict_role(name,seiral) values('xinlilaoshi',10) where id = 1;
    $sql = "update ".$table;

    $sql .= getConditionClause($condCloumns);
    
    global $connection;
    $result = exequery($connection,$sql);
    $num_rows = mysql_num_rows($result);
    return $num_rows;
}
*/

/*
 *eg
$table = "xl_dict_role";
$cloumns = array("name","serial");
$values = array("xinlilaoshi",10);
$condCloumns = array("id"=>1);
echo update($table,$cloumns,$values,$condCloumns);
 */

/**
 *@desc: 构造select 语句的被选择字段语句
 *@param: 被选择字段的数组
 *@return: "select clo1, clo2"
 */
function getColumns($arrCloumns)
{
   $count = 0;
   $sql = "select ";
   foreach($arrCloumns as $item)
   {
     if(0==$count)
     {
        $sql .=$item;
     }
     else
     {
        $sql .=", ".$item;
     }
      $count++;
   }
  return $sql;
}
/*
 *eg:
 *
$arr = array('leo','jia');
//echo getColumns($arr);
 */

/**
 *@desc:根据数组queryItems构造SQL语句中的AND条件子句
 *@param:条件字段的数组
 *@return:sql语句的条件语句
 */
function getConditionClause($queryItems)
{

    $count = 0;
    $where = "";
    //根据数组,循环生成条件子句
    foreach($queryItems as $key => $value)
    {
        
        if ($count == 0)
                $where = " where ";
        else
                $where .= " and ";
        
        //根据查询列的数据类型,决定是否加单引号
        if(is_numeric($value))
        {
            $where .= $key."=".$value;
        }
        else if(!is_numeric($value))
        {
            $where .=  $key." Like '%".$value."%'";
        }
        $count++;    
    }
    return $where;
}
/*
 *eg:
$arr1 = array("id" => 1);
echo getConditionClause($arr1);
 */

/**
 *@desc:利用包含条件字段的数组构造条件子句
 *@param:包含条件字段的数组,与还是或查询,取值={"and","or"}
 *@return:条件子句
 */
function getConditionClauseByType($queryItems,$type)
{

    $count = 0;
    $where = "";
    
    foreach($queryItems as $key => $value)
    {
        
        if ($count == 0)
            $where = " where ";
        else
            $where .= " ".$type." ";

        //根据查询列的数据类型,决定是否加单引号
        if(is_numeric($value))
        {
            $where .= $key."=".$value;
        }
        else if(!is_numeric($value))
        {
            $where .=  $key." Like '%".$value."%'";
        }
        $count++;      
    }
    return $where;
}
?>

 
对数据库操作进行封装的java代码 通过jdbc的方式访问数据库: 1.程序是整理的韩顺平oracle教学视频中的一个例子。 2.假设本机安装了oracle数据库,并在orcl的数据库中建立了基于scott用户的emp表。 3.把数据库的驱动信息、用户、密码、url写到外部文件dbinfo.properties中,在类的静态块中读入这些配置信息。 4.程序对数据库操作进行了一定程度的封装,封装函数放在SQLHelper类中,在TestOracleCrud中对函数进行测试。 立即下载

相关推荐

数据库操作API封装

数据库操作库(mysql,redis、memcache API 封装可直接调用)

封装数据库的两种方式

实现C++访问Mysql数据库

weixin_45151866的博客 824

数据库封装

对Android数据库的封装,简化了各种操作,值得学习

SQLite数据库简单封装和使用

【代码】SQLite数据库简单封装和使用。

huang525437的博客 682

数据库的封装操作

数据库的封装操作实例的源代码 博文链接:https://ohgrateboy.iteye.com/blog/99076

具身智能四大技术路线:VLA、大小脑、世界模型与强化学习

具身智能是机器人实现感知-决策-执行闭环的核心范式,其本质在于物理世界中的具身化交互能力。技术演进围绕如何高效建模环境、理解指令并生成鲁棒动作展开,衍生出四大主流路径:视觉-语言-动作(VLA)端到端学习、大小脑分层控制、世界模型驱动预测,以及强化学习原生策略优化。VLA强调多模态对齐与泛化能力,适合语义理解优先场景;大小脑架构兼顾实时性与可解释性,是工业落地的高可靠选择;世界模型追求内在物理模拟,代表长期认知跃迁方向;强化学习则扎根仿真试错,在力控、抓取等连续控制任务中展现强鲁棒性。本文聚焦这四大路线的技

weixin_32181267的博客 291

(原创)数据库的使用以及简单的工具类封装

安卓中数据库的使用是很常见的,今天在介绍的基础上,去做一个简单的封装。 把数据库的表作为一个类,同时封装一个工具类,用来操作数据库的这个表。 实现基础的增删改查功能。

Android_xiong_st的博客 960

ArcGIS新手必看:用Landsat 8数据计算植被覆盖度的完整流程(附DEM裁剪技巧)

本文为ArcGIS新手提供了使用Landsat 8数据计算植被覆盖度的完整流程指南。详细讲解了从数据预处理、NDVI计算到基于像元二分模型反演植被覆盖度的核心步骤,并重点分享了利用DEM进行精确裁剪的实用技巧,帮助用户高效完成地表信息提取与分析。

weixin_29279047的博客 237

Android 项目实践(三)——数据库封装

上一节博客《Android 项目实践(二)——网络连接 》中讲解了网络连接的封装,这一节就要开始数据库封装了。一、为什么封装数据库?  其实封装数据库的原因和封装网络连接的原因是相同的。在这我们就简单的说一下原因:类似于网络连接,数据库创建和操作的方式也是很多了:不同数据库有不同的API,像MySQL,SQLite等,在Xutils框架中也给我们封装了数据库的操作方法。假设在开发应用时,我们使用的是

To_be_Designer 7981

Intel Mobileye EyeQ Ultra:RISC-V架构的L4自动驾驶芯片解析

RISC-V作为开源指令集架构,凭借其模块化设计和可定制特性,正在重塑高性能计算领域。其精简指令集带来的确定性执行时序,特别适合自动驾驶等实时性要求严苛的场景。在异构计算架构中,RISC-V与专用加速器(如NPU、GPU)的协同设计,能显著提升能效比和算力密度。Mobileye EyeQ Ultra采用12核RISC-V集群,结合176TOPS AI加速器和5nm工艺,实现了L4级自动驾驶所需的实时感知与决策能力。这种架构为车载计算平台提供了可扩展的解决方案,同时降低了系统复杂度和BOM成本。

weixin_33245447的博客 425

步进电机原理及梯形加速算法

步进电机重理解与梯形加速算法

weixin_39912966的博客 1320

【学习前端第五十二课】数据库操作的封装

roomInfoService.js -----继承-----> baseService.js -------继承------> DButils.js。3、stu_info 学生表 ------------------------> stuInfoService.js。2、room_info 房间表 -----------------------> roomInfoService.js。我们在中间添加一层baseService,提供一个基础服务,以达到项目的低耦合状态。

weixin_65729202的博客 905

[RK3588-Android12] 深入解析USB Type-C PD充电功能的DTS配置与内核驱动修改

本文深入探讨了在RK3588 Android12平台上禁用USB Type-C PD充电功能的实现方法。通过分析设备树(DTS)配置与内核驱动(TCPM框架)的联动修改,详细解读了如何通过添加`pd-disable`属性及修改`tcpm.c`驱动代码,使Type-C端口绕过PD协议协商,仅工作在传统电源模式,以满足工控等特定场景对供电稳定性和成本控制的需求。

9o8p7i6u5y的博客 992

封装Java数据库操作的类

/** Created on 2005-7-27** To change the template for this generated file go to* Window&gtreferences>Java>Code Generation>Code and Comments*/package db;import java.sql.Connection;import java.

SL_SAY0601的专栏 3532

雷达仿真:FMCW TDMA-MIMO 3D点云获取方法

2 信号建模摘要:通过设置时分复用(TDMA)波形结合FMCW毫米波雷达仿真获取目标的距离、速度和方位角3D点云信息。在本案例中,首先通过发射天线交替发射FMCW波形并通过接收天线依次接收回波信号从而得到雷达原始数据,其次对获取的原始数据依次经行距离、速度、角度估计从而输出目标的3D点云。阅读本文档,你将对TDMA-MIMO雷达的基本原理、毫米波雷达距离估计、速度估计以及角度估计的基本原理有所了解,另外CA-CFAR恒虚警以及MUSIC-DOA估计在本案例中也有所涉及。1 TDMA-MIMO原理。

Poulen的博客 6958

中文翻译《ASPICE in practice》之“SUP.8 配置管理”

一般来说,自动化程度越低,负责 CM 的个人就必须花费越多的精力,例如,检查基线的正确性和完整性,或确保在归档系统上正确完成手动版本控制。必须防止未经许可的访问。为了唯一地标识基线,许多 CM 工具提供了一种“标记”基线的机制,即为受影响的 CM 项目的所有版本分配相同的标签,例如“第 3 次交付状态”。此选择必须允许绘制合格的基线(参见 BP5),即确保实际上所有描述特定开发阶段的元素(需求和设计文档、开发环境、变更请求、测试用例、测试文档,也可能是重要的中间工作产品等)都可以在 CM 系统中进行基线。

Smith_Chai的博客 1583

将数据库操作封装到Javabean

封装数据库操作,目的就是为了隐藏java.sql包内的类,在编码中去掉核心的数据库操作代码。以杜绝直接数据库操作容易带来的资源未释放问题。同时也减少了数据库操作的编码量。但是很多网友在封装时,却喜欢返回结果集(ResultSet对象),那么这个封装就没有意义了。1. 又是直接操作核心数据库类,跟封装前几乎没什么变化。2. 结果集总是依赖于它使用的连接(Connection)对象。因此当连接对象在方

小P的专栏 1万+

MicroChip的SmartFusion2的M2S090芯片的全流程开发环境搭建和Demo设计

MicroChip的SmartFusion2的M2S090芯片的全流程开发环境搭建和Demo设计

qq_45806640的博客 454

PHP封装数据库操作类

封装数据库操作类: 因为目前所使用的mysqli扩展实现数据库的操作还比较零散,如果想要高效的使用,就必须要进行二次加工 在面向对象编程中,所有操作都应该是由类来实现完成 封装的完整程度是根据业务的需求来定 步骤 1、确定要封装的业务:基于mysqli的数据库底层实现,完成数据库操作的基本诉求 简化初始化操作 实现错误处理 实现增删改查 2、明确封装的类的作用,确定内部实现机制 ...

仗剑天涯,从摘要开始 733

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

封装数据库操作类

封装数据库操作类,简单小运用

俗人世界 1124

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

php精辟代码欣赏,数据库操作类,封装所有数据库操作

php数据库操作类,封装所有数据库操作

Jamie2012的专栏 1698

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

php封装的数据库操作文件夹,PHP中对数据库操作的封装_php

现在我们把其封装在dbfz.inc中,其设计如下:$#@60;?class dbInterface{ var $dbID=1; //用于确定当前操作的数据库,当dbID为1代表mysql,当为 2代表 SQL Server,为3时为ODBC或其它。var $dbHost; //数据库所在主机域名var $dbUsername; //数据库用户名var $dbPassword; //用户密码http...

weixin_31514917的博客 97

php mysql封装_PHP中对数据库操作的封装

现在我们把其封装在dbfz.inc中,其设计如下:$#@60;?class dbInterface{ var $dbID=1; //用于确定当前操作的数据库,当dbID为1代表MySql,当为 2代表 SQL Server,为3时为ODBC或其它。var $dbHost; //数据库所在主机域名var $dbUsername; //数据库用户名var $dbPassword; //用户密码//设置...

weixin_36272668的博客 241

JAVA基础:将数据库操作封装

封装数据库操作,目的就是为了隐藏java.sql包内的类,在编码中去掉核心的数据库操作代码。以杜绝直接数据库操作容易带来的资源未释放问题。同时也减少了数据库操作的编码量。   但是很多网友在封装时,却喜欢返回结果集(ResultSet对象),那么这个封装就没有意义了。   1. 又是直接操作核心数据库类,跟封装前几乎没什么变化。   2. 结果集总是依赖于它使用的连接(Connection)

hy2011034628的专栏 789
上一篇: 八皇后及n皇后问题
下一篇: IDEA 右键 new 没有 Java Class 选项
生无涯
博客等级 码龄16年 62粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值