精华内容
下载资源
问答
  • oracle根据条件不同返回不同

    千次阅读 2018-06-08 10:16:06
    decode函数(如果条件=‘等于条件1’,则返回‘返回值1’) decode(条件,‘等于条件1’‘返回值1’,‘等于条件2’‘返回值2’,‘等于条件3’‘返回值3’,)...
    decode函数(如果条件=‘等于条件1’,则返回‘返回值1’)
    decode(条件,‘等于条件1’‘返回值1’,‘等于条件2’‘返回值2’,‘等于条件3’‘返回值3’,)
    展开全文
  • 我们都知道CAS在登录成功后会返回一些我们所需要的来提供给各个客户端,有一种情况就是根据不同的情况我们要查询不同的表来进行反馈信息,比如说 当 是管理员登录的时候返回的可能是从A表中查询的数据,当普通用户...

    我们都知道CAS在登录成功后会返回一些我们所需要的值来提供给各个客户端,有一种情况就是根据不同的情况我们要查询不同的表来进行反馈信息,比如说 当 是管理员登录的时候返回的可能是从A表中查询的数据,当普通用户登录的时候可能返回的是B表中的信息,CAS怎么才能实现这种需求呢?现在我们就实现这种需求,需要修改deployerConfigContext.xml 配置文件,也需要修改源码,现在我们现讲怎么修改配置文件,其实很简单 我们配置返回登录信息的配置如下:

    <property name="credentialsToPrincipalResolvers">
    	<list>
    			<bean class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" >
    				<property name="attributeRepository" ref="attributeRepository" />

                                    <property name="attributeRepository1" ref="attributeRepository1" />
    			</bean>				
                            <bean class="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" />
    	</list>
    </property>
    

    下面是配置的attributeRepsoitory和attributeRepsoitory1两个Bean

    <bean
    		class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao"
    		id="attributeRepository">
    		<constructor-arg index="0" ref="casDataSource" />
    		<constructor-arg index="1"
    			value="select * from A where {0}" />
    		<property name="queryAttributeMapping">
    			<map>
    				<!-- key对应username,value对应数据库用户名字段 -->
    				<entry key="username" value="loginname" />
    			</map>
    		</property>
    		<property name="resultAttributeMapping">
    			<map>
    				<!--key为对应的数据库字段名称,value为提供给客户端获取的属性名字,系统会自动填充值 -->
    				<entry key="A" value="A" />
    				<entry key="AA" value="AA" />
    			</map>
    		</property>
    
    	</bean>
    <bean
    		class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao"
    		id="attributeRepository1">
    		<constructor-arg index="0" ref="casDataSource" />
    		<constructor-arg index="1"
    			value="select * from B where {0}" />
    		<property name="queryAttributeMapping">
    			<map>
    				<!-- key对应username,value对应数据库用户名字段 -->
    				<entry key="username" value="loginname" />
    			</map>
    		</property>
    		<property name="resultAttributeMapping">
    			<map>
    				<!--key为对应的数据库字段名称,value为提供给客户端获取的属性名字,系统会自动填充值 -->
    				<entry key="B" value="B" />
    				<entry key="BB" value="BB" />
    			</map>
    		</property>
    
    	</bean>

    以上就是配置文件部分的修改(该部分修改时基于原来返回信息的配置基础上增加的一个attributeReponsitory1 而已)

    下面讲一下源码怎么修改

    在org.jasig.cas.authentication.principal.AbstractPersonDirectoryCredentialsToPrincipalResolver这个类中有如下代码:


    @NotNull
        private IPersonAttributeDao attributeRepository = new StubPersonAttributeDao(new HashMap<String, List<Object>>());
    
    

    看到上述代码相比就知道了上述配置文件中  <property name="attributeRepository" ref="attributeRepository" />


    这句话的作用了,所以我们就参照这个attributeRepository 的定义,我们也定义一个类似的 attributeRepository1,如下:

    private IPersonAttributeDao attributeRepository1 = new StubPersonAttributeDao(new HashMap<String, List<Object>>());
     public final void setAttributeRepository(final IPersonAttributeDao attributeRepository1) {
            this.attributeRepository1 = attributeRepository1;
        }
    


    这样注入Bean 就完成了,下面就可以具体的应用了,还是在这个类中,找到下面的代码:

     final IPersonAttributes personAttributes = this.attributeRepository.getPerson(principalId);

    这句代码的作用就是根据username查询返回的信息,
    根据配置我们可以这样改造这句话,假定有一个loginrole 参数 为1的时候执行attributRepository1这个bean

    int loginrole = 1;
     final IPersonAttributes personAttributes = loginrole ==1?this.attributeRepository1.getPerson(principalId):this.attributeRepository.getPerson(principalId);
    
    //这样就完成了如果查不同的表返回登录信息


    以上纯属个人应用总结的方法,不一定是最合适的也不一定是最正确的。


    
    展开全文
  • 在gridpanel中,经常碰到这样的情况,返回的记录集中的男的用male表示,女的用female表示,但是你的期望是在显示时显示 男或者女,所以这时候需要做个转换。代码如下:普通的column是{   text: '状态',   ...

    在gridpanel中,经常碰到这样的情况,返回的记录集中的男的用male表示,女的用female表示,但是你的期望值是在显示时显示  男或者女,所以这时候需要做个转换。代码如下:

    普通的column是

    {
                   text: '状态',
                   dataIndex: 'status'

     }

    修改后的column是

    {
                   text: '状态',

                   dataIndex: 'status',

                    //关键代码

                   renderer:function(value, row, column, rowIndex, data, table){
                  if(value==1){
                  return "审核中";
                  }else if(value==2){
                  return "审核后";
                  }else if(value==-1){
                  return "强制终止";
                  }
                 }

     }


             

    展开全文
  • 需求是:以日期作为判断依据,返回价格表中对应的不同进价,与数值表中的进行相乘得出总金额。 形成表3 切片器分别为 摊位负责人, 品名, 以及日期区间的时候, 动态计算对应的商户进价总额。 小白一名...
  • Enumerable.Distinct<TSource>Method(IEnumerable<TSource>, IEqualityComparer<TSource>) 也就是使用的Distinct(参数1,参数2); ...参数1为原数据,参数2为比较...来比较从而返回不同的序列。...

    Enumerable.Distinct<TSource> Method(IEnumerable<TSource>, IEqualityComparer<TSource>)

    也就是使用的Distinct(参数1,参数2);

    参数1为原数据,参数2为比较数据

     

    通过IEqualityComparer<T> 来比较值从而返回不同的序列。

     

    引用的名称空间:System.Linq

    程序集:System.Core (在 System.Core.dll下)

     

    语法:

    public static IEnumerable<TSource> Distinct<TSource>(
        this IEnumerable<TSource> source,
        IEqualityComparer<TSource> comparer
    )

     

    参数:

    原数据:

    类型:System.Collections.Generic.IEnumerable<TSource>
    指的是从中删除重复元素的序列

    比较数据:

    类型 : System.Collections.Generic.IEqualityComparer<TSource>
    这个是与原数据的比较值

    返回数据:

    类型: System.Collections.Generic.IEnumerable<TSource>
    返回原数据中不重复的序列

    当给的参数为空时抛出的异常:

    ArgumentNullException

     

    备注:

    该方法通过使用延迟执行来实现。 立即返回值是存储执行操作所需的所有信息的对象。 通过直接调用其GetEnumerator方法或在Visual C#或Visual Basic中使用foreach进行枚举,直到对象被枚举为止,才执行此方法所表示的查询。
    不同的<TSource>(IEnumerable <TSource>,IEqualityComparer <TSource>)方法返回一个无序的序列,不包含重复的值。 如果comparer为null,则使用默认的等式比较器Default来比较值。

     

    示例:

    以下示例显示如何实现可在Distinct <TSource>方法中使用的等式比较器。

    public class Product
    {
        public string Name { get; set; }
        public int Code { get; set; }
    }
    
    // 产品类的自定义比较器
    class ProductComparer : IEqualityComparer<Product>
    {
        // 如果产品的名称和产品编号相同,则产品相同
        public bool Equals(Product x, Product y)
        {
    
            //检查比较对象是否引用相同的数据
            if (Object.ReferenceEquals(x, y)) return true;
    
            //检查所比较的对象是否为空
            if (Object.ReferenceEquals(x, null) || Object.ReferenceEquals(y, null))
                return false;
    
            //检查产品的属性是否相等
            return x.Code == y.Code && x.Name == y.Name;
        }
    
        // 如果Equals()对一对对象返回true
        // 那么GetHashCode()必须为这些对象返回相同的值。那么GetHashCode()必须为这些对象返回相同的值。
    
        public int GetHashCode(Product product)
        {
            //检查该对象是否为空
            if (Object.ReferenceEquals(product, null)) return 0;
    
            //如果它不为空,获取名称字段的
    hashCode
     int hashProductName = product.Name == null ? 0 : product.Name.GetHashCode(); //获取代码字段的hashCode int hashProductCode = product.Code.GetHashCode(); //计算产品的hashCode return hashProductName ^ hashProductCode; } }

    实现此比较器后,可以使用Distinct <TSource>方法中的一系列Product对象,如以下示例所示。

    Product[] products = { new Product { Name = "apple", Code = 9 }, 
                           new Product { Name = "orange", Code = 4 }, 
                           new Product { Name = "apple", Code = 9 }, 
                           new Product { Name = "lemon", Code = 12 } };
    
    //排除重复
    
    IEnumerable<Product> noduplicates =
        products.Distinct(new ProductComparer());
    
    foreach (var product in noduplicates)
        Console.WriteLine(product.Name + " " + product.Code);
    
    /*
        返回的值如下:
        apple 9 
        orange 4
        lemon 12
    */

     

    转载于:https://www.cnblogs.com/LessIsMoreZ/p/7026091.html

    展开全文
  • 在开发中遇到这样的一个需求...//这里就建了一张表,所以就用表中的字段,在case when的条件查询语句中查询返回flag的如果等于1 则where后执行flag=‘1’的条件,否则执行flag=‘0的条件’ ( CASE WHEN ( SELECT fla
  • 在润乾填报表中,系统提供的自动计算...switchCase函数是润乾报表中内置定义的一个JavaScript函数,可以在报表中直接使用无需用户再定义,它主要完成在不同的匹配返回不同表达式的计算结果,相当于各编程语言的swi
  • Navicat Premium是一个...喜欢的朋友不妨下载试用版感受一下~CASE是一个流控制语句,其作用与IF-THEN-ELSE语句非常相似,可根据数据选择CASE语句通过条件并在满足第一个条件返回一个。因此,一旦条件成立,它...
  • 一致性(C):在分布式系统中的所有数据备份,在同一时刻是同样的。(等同于所有节点访问同一份最新的数据副本) 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求,这里强调的是在...
  • F = PIECEWISE(COND1,DEFN1,...CONDn,DEFNn,DEFAULT) 返回一个可调用的根据提供的应用不同定义的函数 F 使适应。 对于给定的 X,F(X) 将测试 COND1 并在为真时应用 DEFN1, 等等。如果所有条件都失败,则应用 ...
  • 如题,接着说,如果查询数据库返回cursor,要判断记录是否为空,然后根据结果进行不同的操作。应该如何写判断条件呢? 很简单,用这个函数:cursor.getCount() 。 如果记录为空,该函数返回为0 。 欢迎评论,...
  • 9.1 聚集函数(对某些行运行的函数,计算并返回一个) 我们经常需要汇总数据而不用把它们实际检索出来,为此SQL提供了专门的函数。使用这些函数,SQL查询可用于检索数据,以便分析和报表生成。这种类型的检索例子...
  • 1. 运算符 1.1 运算符的概念 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+” 1.2 运算符的分类 ...** 幂运算,求一个的几次幂
  • Egret白鹭 Skin不同状态给组件赋值 ...可以重新getCurrentState方法根据不同条件返回对应的皮肤状态 public getCurrentState():string { let condition = 0; //条件 switch (condition) { case 0:
  • 不同的count用法

    千次阅读 2019-09-09 15:58:55
    不同的count用法 下面的讨论是基于InnoDB引擎的。 这里,首先你要弄清楚count()的语义。count()是一个聚合函数,对于返回的结果集,一行行地判断,如果count函数的参数不是NULL,累计就加1,否则不加。最后返回...
  • MySQL NULL 处理

    2020-12-16 17:19:02
    MySQL NULL 处理 ... : 比较操作符(不同于 = 运算符),当比较的的两个相等或者都为 NULL 时返回 true。 关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找
  • 条件结构

    2019-07-11 16:50:35
    条件结构 条件选择语句-基本的if选择结构 if选择结构是根据条件判断结果选择...//其中(条件)会返回一个boolean进行判断 语法:if-else选择结构 if ( 条件 ) { //执行语句1 }else { //执行语句2...
  • MySQL NULL 处理 我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件...:比较操作符(不同于=运算符),当比较的的两个为NULL时返回true。 关于 NULL 的条件比较运...
  • 连接可以在SELECT 语句的FROM子句或WHERE子句中建立,下面就将...1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列,其查询结果中列出被连接表中的所有列,包括其中的重复列。 2、不等连接: 在连接
  • 重载必须要用参数来区分,传入不同参数,可以实现重载。 可以这样理解,你调用一个方法,如果有多个方法同名,系统必须要知道... 上面两个方法,第一个返回字符串类型,第二个的返回值是整数类型。
  • MySQL NULL 处理 我们已经知道MySQL使用...=>: 比较操作符(不同于=运算符),当比较的的两个为NULL时返回true。 关于 NULL 的条件比较运算是比较特殊的。你不能使用 = NULL 或 != NULL 在列中查找 NULL 。 在My
  • 详解MySQL中的NULL

    2020-12-15 11:03:17
    => 操作符比较不同于=运算符)为ture,即使两个NULL 涉及NULL条件是特殊的。不能使用 =NULL 或 !=NULL 寻找NULL的列。这种比较总是告诉他们是否是真正的失败,因为这是不可能的。即使是NULL=NUL
  • MySQL NULL 处理

    2018-01-05 16:42:23
    MySQL提供了三大运算符来处理NULL:  ·IS NULL:当列的是...:比较操作符(不同于=运算符),当比较的两个为NULL时返回true; 关于NULL的条件比较运算符是比较特殊的。不能使用=NULL或!=NULL在列中查找NULL...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,165
精华内容 466
关键字:

不同条件返回不同值