`
limingnihao
  • 浏览: 1824530 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring.net + FluorineFx 项目搭建 之 四、Spring.net数据库调用写法

阅读更多

四、数据库调用

4.1 Dao类中的方法

4.1.1新增数据写法

新增一个人员,传入数据为:人员姓名,所属机构key;返回新增人员后的key。

/// <summary>
/// 新建人员,返回key
/// </summary>
/// <returns></returns>
public decimal CreatPersonForPersonName(String personName, decimal unitKey)
{
    return AdoTemplate.Execute<decimal>
        (
             delegate(IDbDataAdapter dataAdapter)
             {

                 if (dataAdapter is OracleDataAdapter)
                 {
                     OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
                     commandToUse.CommandText = CommandSQL.CreatPersonForPersonName;
                     commandToUse.BindByName = true;
                     commandToUse.Parameters.Add(":PERSON_NAME", OracleDbType.NVarchar2, ParameterDirection.Input).Value = personName;
                     commandToUse.Parameters.Add(":UNIT_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = unitKey;

                     commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Output);
                     if (commandToUse.ExecuteNonQuery() != 1)
                     {
                         throw new Exception("Dao内部出现错误");
                     }

                     return commandToUse.Parameters[":PERSON_KEY"].Value.ToDecimal(); ;
                 }
                 else
                 {
                     throw new Exception("Dao内部出现错误");
                 }
             }
        );
}

 

/* Formatted on 2010-5-20 11:22:02 (QP5 v5.114.809.3010) */
INSERT INTO PERSON_TBL PT (PT.PERSON_KEY,
                           PT.PERSON_NAME,
                           PT.PERSON_STATE,
                           PT.UNIT_KEY)
   VALUES   (GLOBAL_SEQUENCE.NEXTVAL,
             :PERSON_NAME,
             1,
             :UNIT_KEY)
RETURNING   PT.PERSON_KEY      INTO   :PERSON_KEY

 
 

4.1.2查询数据写法

/// <summary>
/// 得到person对象,根据key
/// </summary>
/// <param name="personKey"></param>
/// <returns></returns>
public Person GetPersonForPersonKey(decimal personKey)
{
    DataTable dataTable = AdoTemplate.Execute<DataTable>
        (
            delegate(IDbDataAdapter dataAdapter)
            {
                if (dataAdapter is OracleDataAdapter)
                {
                    OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
                    commandToUse.CommandText = CommandSQL.GetPersonForPersonKey;
                    commandToUse.BindByName = true;
                    commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = personKey;
                    DataSet dataSet = new DataSet();
                    dataAdapter.Fill(dataSet);
                    return dataSet.Tables[0];
                }
                else
                {
                    throw new Exception("Dao内部出现错误");
                }
            }
        );
    return (from dataRow in dataTable.AsEnumerable()
            select new Person
            {
                PersonKey = dataRow.Field<decimal?>("PERSON_KEY"),
                PersonName = dataRow.Field<string>("PERSON_NAME").toNullString(),
                PersonNickname = dataRow.Field<string>("PERSON_NICKNAME").toNullString(),
                PersonPhoto = dataRow.Field<byte[]>("PERSON_PHOTO").Base64Encode(),
                PersonState = dataRow.Field<decimal?>("PERSON_STATE"),
                UnitKey = dataRow.Field<decimal?>("UNIT_KEY"),
            }).FirstOrDefault();
}

 

/* Formatted on 2010-5-24 16:53:30 (QP5 v5.114.809.3010) */
SELECT   PT.PERSON_KEY,
         PT.PERSON_NAME,
         PT.PERSON_NICKNAME,
         PT.PERSON_PHOTO,
         PT.PERSON_STATE,
         PT.UNIT_KEY
  FROM   PERSON_TBL PT
 WHERE   PT.PERSON_KEY  = :PERSON_KEY
 

 

4.1.3修改数据写法

/// <summary>
/// 更新用户基本信息
/// </summary>
/// <param name="personKey"></param>
/// <param name="personName"></param>
/// <param name="personNickname"></param>
/// <param name="personState"></param>
/// <param name="personPhoto"></param>
/// <param name="unitKey"></param>
/// <returns></returns>
public Boolean UpdatePersonForPersonKey(decimal personKey, String personName, String personNickname, decimal? personState, byte[] personPhoto, decimal? unitKey)
{
    return AdoTemplate.Execute<Boolean>
        (
             delegate(IDbDataAdapter dataAdapter)
             {
                 if (dataAdapter is OracleDataAdapter)
                 {
                     OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
                     commandToUse.CommandText = CommandSQL.UpdatePersonForKey;
                     commandToUse.BindByName = true;
                     commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = personKey;
                     commandToUse.Parameters.Add(":PERSON_NAME", OracleDbType.NVarchar2, ParameterDirection.Input).Value = personName;
                     commandToUse.Parameters.Add(":PERSON_NICKNAME", OracleDbType.NVarchar2, ParameterDirection.Input).Value = personNickname;
                     commandToUse.Parameters.Add(":PERSON_STATE", OracleDbType.Decimal, ParameterDirection.Input).Value = personState;
                     commandToUse.Parameters.Add(":PERSON_PHOTO", OracleDbType.Blob, ParameterDirection.Input).Value = personPhoto;
                     commandToUse.Parameters.Add(":UNIT_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = unitKey;

                     if (commandToUse.ExecuteNonQuery() != 1)
                     {
                         throw new Exception("Dao内部出现错误");
                     }
                     return true;
                 }
                 else
                 {
                     throw new Exception("Dao内部出现错误");
                 }
             }
        );
}

 

/* Formatted on 2010-5-6 13:28:26 (QP5 v5.114.809.3010) */
UPDATE   PERSON_TBL PT
   SET   PT.PERSON_NAME = :PERSON_NAME,
         PT.PERSON_NICKNAME = :PERSON_NICKNAME,
         PT.PERSON_STATE = :PERSON_STATE,
         PT.PERSON_PHOTO = :PERSON_PHOTO,
         PT.UNIT_KEY = :UNIT_KEY
 WHERE   PT.PERSON_KEY = :PERSON_KEY

 

4.1.4删除数据写法

public Boolean DeleteUserForPersonKey(decimal personKey)
{
    return AdoTemplate.Execute<Boolean>
        (
             delegate(IDbDataAdapter dataAdapter)
             {

                 if (dataAdapter is OracleDataAdapter)
                 {
                     OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
                     commandToUse.CommandText = CommandSQL.DeleteUserForPersonKey;
                     commandToUse.BindByName = true;
                     commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = personKey;

                     if (commandToUse.ExecuteNonQuery() != 1)
                     {
                         throw new Exception("Dao内部出现错误");
                     }

                     return true;
                 }
                 else
                 {
                     throw new Exception("Dao内部出现错误");
                 }
             }
        );
}

 

DELETE   USER_TBL UT
 WHERE   UT.PERSON_KEY = :PERSON_KEY

 
 

0
0
分享到:
评论

相关推荐

    跟我一步步搭建+Flex+FluorineFx+ASP.NET整理.pdf

    搭建Flex+FluorineFx+ASP.NET的整合开发环境是一项技术性的工作,涉及多个关键组件的安装和配置。以下是一步步的详细说明: 一、安装软件与配置 1. **MyEclipse 6.0.1**:这是一款集成开发环境(IDE),用于Java、...

    跟我一步步搭建+Flex+FluorineFx+ASP[1].NET.doc

    搭建Flex+FluorineFx+ASP.NET是一个过程,用于创建富互联网应用程序(RIA),它结合了Adobe Flex的用户界面构建能力、FluorineFx的AMF通信库以及ASP.NET后端服务来实现高效的数据交换。以下是详细的步骤: 一、安装...

    跟我一步步搭建 Flex+FluorineFx+ASP.NET

    在本文中,我们将一起学习如何搭建一个基于Flex、FluorineFx和ASP.NET的开发环境,以及创建一个简单的项目。Flex是Adobe开发的RIA(Rich Internet Application)框架,用于构建富交互式前端应用;FluorineFx是.NET...

    Flex+.Net+Cairngorm+Fluorine的HelloWorld演示

    这个“Flex+.Net+Cairngorm+Fluorine的HelloWorld演示”旨在帮助开发者理解如何将这些技术整合在一起,实现跨平台的通信,并掌握Cairngorm框架的应用。 Flex 是一种基于ActionScript和MXML的开源框架,由Adobe提供...

    flex+fluorinefx access交互测试

    综上所述,"flex+fluorinefx access交互测试"涵盖了从客户端UI设计到服务器端数据库操作的全过程,对于初学者而言,这是一个很好的入门教程,能帮助他们掌握Flex与.NET服务之间的数据交换,以及如何与ACCESS数据库...

    asp.net通过FluorineFx传DataTable到Flex

    1. **安装FluorineFx**: 首先,需要在ASP.NET项目中添加FluorineFx库,可以通过NuGet或其他下载方式获取并安装。 2. **配置FluorineFx**: 在Web.config文件中配置FluorineFx,包括设置Remoting服务端点、AMF通道等...

    在线拍照 c# flex+fluorineFx+webservices

    标题中的“在线拍照 c# flex+fluorineFx+webservices”揭示了这是一个基于C#技术,使用Flex前端和FluorineFx作为SOAP Web服务客户端库的在线拍照系统。让我们详细了解一下这些关键技术点。 **C#(Sharp)**: C#是...

    Flex(PureMVC) asp.net FluorineFx操作数据库

    标题中的“Flex(PureMVC) asp.net FluorineFx操作数据库”表明这是一个关于使用Adobe Flex(一种基于ActionScript的前端开发框架)与后端ASP.NET通过FluorineFx进行数据交互并操作数据库的项目。以下是相关知识点的...

    Flex 4 asp.net VS2010 FluorineFX

    Flex 4、ASP.NET 和 FluorineFX 是用于构建富互联网应用程序(RIA)的强大技术组合。在本教程中,我们将探讨如何使用Visual Studio 2010(VS2010)作为集成开发环境(IDE),结合FluorineFX这一开源的Adobe Flex到...

    c#使用的FluorineFx.net必须dll库,rtmp协议通信相关

    开发的时候,只需要将5个dll导入就可以了,安装程序是从官网上下载的FluorineFx.net安装程序,版号是1.0.0.15。 导入5个dll之后,就可以用c#按照官网上的教程进行rtmp协议进行通信了,不过教程上对于rtmp协议的用法...

    FluorineFx.NET Rtmp服务端.rar

    FluorineFx.NET RTMP服务端是一款专为.NET开发者设计的开源RTMP服务器软件,它使得在.NET平台上构建实时媒体流应用变得简单易行。RTMP(Real-Time Messaging Protocol)是一种广泛应用于在线流媒体传输的技术,常...

    Flex与ASP.Net通信(FluorineFx)程序例子

    3. **配置FluorineFx**:在ASP.NET项目中添加FluorineFx的相关配置,包括设置AMF端点和启用服务。 4. **创建ASP.NET Web服务**:编写C#或VB.NET的Web服务类,实现对应的服务接口,处理数据操作。 5. **连接数据库*...

    FluorineFx C#搭建简单小例子

    FluorineFx是.NET平台上一个开源的Adobe Flash Remoting实现,它允许C#开发者与Flash客户端进行双向通信,使得Flex、Flash等基于ActionScript的应用能够无缝地与服务器端的.NET服务交互。在这个"FluorineFx C#搭建...

    flex与.net通信的FluorineFx模板

    2. 在.NET项目中配置FluorineFx,定义要暴露给Flex的远程服务。 3. 创建Flex应用,并设置相应的Remoting配置,指定服务器地址和要调用的服务。 4. 在ActionScript代码中,通过RemoteObject或WebService组件调用.NET...

    fluorinefx与asp.net结合flex连接数据库

    FluorineFX 是一款强大的 .NET 与 Adobe Flex 之间的集成框架,它允许开发者使用 Flex 客户端与 ASP.NET 服务器端进行交互,实现数据的动态交换和远程调用服务(RPC)。在这个示例中,我们将探讨如何利用 FluorineFX...

    Fluorine网关与ASP.NET类交互 项目代码实现

    在项目中,ASP.NET类通常是公开的业务逻辑层(BLL)或数据访问层(DAL),它们处理Flex客户端发送的请求,执行相应的操作,如数据库查询、业务逻辑计算等,然后将结果返回给客户端。这些类需要使用FluorineFX提供的...

    真正调试可用的FluorineFx+.NET视频聊天室源码

    通过研究和理解这个FluorineFx+.NET视频聊天室源码,开发者不仅可以学习到如何利用FluorineFx搭建服务器和客户端通信,还能掌握实时音视频处理、多用户同步和网络编程等相关技能。对于想要深入.NET与Flash集成,或者...

    fluorineFx实现Flex与.NET交互实例代码

    FluorineFx是.NET平台上一个流行的开源库,它提供了Flex和.NET之间的集成,使得开发人员可以使用ActionScript和Flex来调用.NET服务,实现客户端和服务器端的交互。本实例代码涵盖了Flex与.NET互操作的多个方面,包括...

Global site tag (gtag.js) - Google Analytics