在条件下编写带有无效值的准备好的语句
是否有一种方法可以编写准备好的语句,其中将值与条件中的另一个值进行比较,我不知道该值是否为NULL. SELECT `foo` FROM `bar` WHERE `a1` = :a1 AND `a2` = :a2 如果我使用a1 => null和a2 => 42使用此准备的语句,则结果查询将是: SELECT `foo` FROM `bar` WHERE `a1` = NULL AND `a2` = '42' 这当然不是我想要的.在这种情况下,我需要这个: SELECT `foo` FROM `bar` WHERE `a1` IS NULL AND `a2` = '42' ^^ a1和a2都是无效的.我不想定义4个准备语句: -- I would use this, if both values are not null SELECT `foo` FROM `bar` WHERE `
0 2023-05-27
编程技术问答社区
PHP7中的可置空返回类型
php 7引入返回类型声明.这意味着我现在可以指出返回值是特定类,接口,数组,可召唤或新的可提示标量类型之一,并且可能用于函数参数. function returnHello(): string { return 'hello'; } 通常,一个值并不总是存在,并且您可能会返回某种类型或无效的东西.虽然您可以通过将其默认值设置为null(DateTime $time = null)来使参数nullable,但似乎没有一种用于返回类型的方法.确实是这样,还是我以某种方式找不到该怎么做?这些不起作用: function returnHello(): string? { return 'hello'; } function returnHello(): string|null { return 'hello'; } 解决方案 php 7.1现在支持 nore ="noreferrer"> norlable返回类型.我链接到的第一个RFC是他们去的
0 2023-05-26
编程技术问答社区
Casting (int?)null vs. new int?()--哪一个更好?
i在需要将值加载到类和结构的情况下,当我需要将其加载时,例如从数据库加载可无效的值时(如下示例). 考虑这个代码片段: public class InfoObject { public int? UserID { get; set; } } // Load the ID into an SqlInt32 SqlInt32 userID = reader.GetSqlInt32(reader.GetOrdinal("intUserID")); 当我需要将值加载到可确定的属性中时,有时我会这样做: infoObject.UserID = userID.IsNull ? (int?)null : userID.Value; 有时我会这样做: infoObject.UserID = userID.IsNull ? new int?() : userID.Value; 尽管他们取得了相同的结果,但我想看看是否有人知道在(int?)null>和new i
0 2023-05-23
编程技术问答社区
C# 从SqlDataReader返回Nullable类型的性能增益
我有一个简单的方法,该方法可以从数据标准中返回可无效的INT32,而不是内置的getInt32. 我多次称呼这种方法,并且有一种情况,我可以剃掉它的任何时候都会有益. 谁能提出任何替代方法,更快地从数据标准中获取无效的INT32? private Int32? GetNullableInt32(SqlDataReader dataReader, int fieldIndex) { return !dataReader.IsDBNull(fieldIndex) ? dataReader.GetInt32(fieldIndex) : (Int32?)null; } 解决方案 i 看起来回想起有时可以通过更快地获取值作为对象,然后检查是否是dbnull. private Int32? GetNullableInt32(SqlDataReader dataReader, int fieldIndex) { objec
0 2023-05-23
编程技术问答社区
Java检查布尔值是否为空
您如何检查布尔值是否为空?因此,如果我知道" hideinnav"是无效的.我如何停止 从进一步执行中?下面的事情似乎不起作用,但是为什么呢? boolean hideInNav = parent.getProperties().get("hideInNav", false); String hideNavigation = hideInNav != null ? hideInNav : ""; 解决方案 boolean只能是true或false,因为它是原始数据类型(+ a boolean变量默认值为false).如果要使用null值,则可以使用类Boolean.布尔值是一种参考类型,这就是您可以将null分配给布尔值"变量"的原因.示例: Boolean testvar = null; if (testvar == null) { ...} 其他解决方案 a boolean不能在java中null a Boolean但是,可以是null. 如果未分配boo
2 2023-05-23
编程技术问答社区
使用 "as "和nullable类型的性能惊喜
我只是修改了C#的第4章深入涉及无效类型,我正在添加有关使用" AS"操作员的部分,该部分允许您写入: object o = ...; int? x = o as int?; if (x.HasValue) { ... // Use x.Value in here } 我认为这真的很整洁,它可以改善C#1等效的性能,使用""出一个演员 - 毕竟,我们只需要要求一次动态类型检查,然后就简单的价值检查. 然而,情况似乎并非如此.我在下面包含了一个示例测试应用程序,该应用基本上总结了对象数组中的所有整数 - 但是该数组包含许多空引用和字符串引用以及盒装整数.基准测量您必须在C#1中使用的代码,使用" AS"运算符的代码,而仅用于踢LINQ解决方案.令我惊讶的是,在这种情况下,C#1代码的速度快20倍 - 甚至LINQ代码(考虑到涉及的迭代器,我期望会更慢)击败了" AS"代码. 对于无效类型的.NET实现isinst真的很慢吗?是引起问题的附加unbox.any吗
2 2023-05-23
编程技术问答社区
为什么在语法错误中可在无效的结果上匹配模式?
我喜欢在nullable int上使用pattern-matching,即int?: int t = 42; object tobj = t; if (tobj is int? i) { System.Console.WriteLine($"It is a nullable int of value {i}"); } 但是,这会导致以下语法错误: , cs0103:名称'i'在当前上下文中不存在. 'i)'用红色的线条标记. 使用旧运算符is: 时表达式编译 int t = 42; object tobj = t; if (tobj is int?) { System.Console.WriteLine($"It is a nullable int"); } string t = "fourty two"; object tobj = t; if (tobj is string s) { System.Con
8 2023-05-21
编程技术问答社区
c# .net 4.0:可忽略的输入字符串参数和lambda表达式
我有以下方法: public IQueryable FindAllProfiles(string CountryFrom, string CountryLoc) { return db.Profiles.Where(p => p.CountryFrom.CountryName.Equals(CountryFrom,StringComparison.OrdinalIgnoreCase)); } 现在,它只是按国家/地区过滤,但我也需要按CountryLoc进行过滤. 那么如何修改Where滤镜呢? 此外,乡村可能是无效的,或者乡下可能是无效的.因此,如何将方法的签名修改为所有可无效的输入字符串参数. 我知道如何在SQL中执行此操作,但我不确定lambda表达式或linq. 谢谢 解决方案 您的问题实际上不是LINQ特定的.您可以将任何布尔条件放入所需的lambda中,例如: p => p.CountryFrom.
2 2023-05-19
编程技术问答社区
为什么用AllowNull()向参数传递$null会导致错误?
考虑以下代码: function Test { [CmdletBinding()] param ( [parameter(Mandatory=$true)] [AllowNull()] [String] $ComputerName ) process{} } Test -ComputerName $null 基于 AllowNull> 的正式文档$ComputerName可以是[string]或$null.但是,运行上述代码会导致以下错误: [14,24:test]无法将参数绑定到参数'Computername',因为它是一个空的 字符串. 为什么在这种情况下不通过$ null $ComputerName工作? 解决方案 $null,转换为[字符串],返回空字符串而不是$null: [string]$null -eq $null # False
0 2023-05-19
编程技术问答社区
在方法中检查是否有一些可选参数被传递
如何检查是否将可选的参数传递给方法? public void ExampleMethod(int required, string optionalstr = "default string", int optionalint = 10) { if (optionalint was passed) return; } 另一种方法是使用Nullable.HasValue( msdn a>, msdn示例): int default_optionalint = 0; public void ExampleMethod(int required, int? optionalint, string optionalstr = "default string") { int _optionalint = optionalint ?? default_optionalint; }
4 2023-05-19
编程技术问答社区
改变数据集中可归零列的默认行为的问题
.designer.cs中的datarow for datarow of public partial class Fi_securityRow : global::System.Data.DataRow { [global::system.diagnostics.debuggernonusercodeattribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public override System.DateTime Exp_dt { get { try { return ((global::System.DateTime)(this[th
2 2023-05-15
编程技术问答社区
通用重载方法,参数为空,可调用具体类型
我希望能够调用具有无效参数的通用foo方法.当Foo方法的主体调用foo()时,它会递归,从而导致堆栈溢出(无.com).有没有办法在IF语句中调用与运行时类型的正确过载的通话? 我知道更改名称会做到这一点,我知道为什么会发生递归,但不知道另一种写作方式. 感谢您的查看. class Program { static void Main(string[] args) { int? x = 5; int y = 10; Foo(x, y); } static void Foo(Nullable arg, T defaultValue) where T : struct { if (arg.HasValue) Foo(arg.Value, defaultValue); } static void Foo(int arg, int d
0 2023-05-15
编程技术问答社区
Hibernate默认的多对一的连接是空的
我在productdfn类中有这样的冬眠映射 @ManyToOne( fetch = FetchType.LAZY, optional = true ) @JoinColumn( name = "productTypeFk", nullable = true ) public ProductType getProductType() { return productType; } 请注意,该关系定义为可选(并且列无效). 做类似这样的hql select p.name as col1, p.productType.name as col2 from ProductDfn p 随着Hibernate生成了SeftiT Roing的显式sql Join. 但是,当productType为null(在DB中)时进行上述操作时,由于内部连接而不会返回行.对于这种关系,我想让Hibernate默认进行外部联接(因为关系是可选的),所以我会为Col2获得" nul
4 2023-05-15
编程技术问答社区
Hibernate / JPA -> Nullable values & objects?
我的基本问题是:如何强制冬眠使浮动效果不可用并分别接受浮点,dateTime,blob?我的意思是null,不是(float)0.0. 更糟糕的是,当我尝试以所需的无效字段存储一个对象实际上是无效的,并且使用实体管理器时,我会发现属性的错误,即使在DB表中也可以被Hibernate标记为无效. . 这是我徒劳地尝试的: 考虑此表: +--------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name
2 2023-05-14
编程技术问答社区
Oracle:动态设置所有不在表中的空列以允许null
我有一个带有75列的表. 几乎所有的列都有非零约束. 如果做一个巨大的Alter表修改语句(其中每列),我会遇到一个错误,说明"您无法将此字段设置为null,因为它已经为null" 我必须为几个表进行此操作,因此更希望具有动态解决方案. 我可以动态地找到所有未空的列,并将它们设置为空? 我看过几个类似的问题,但找不到Oracle SQL的解决方案. 将表中的所有列修改为'不管是什么 解决方案 这是一个测试表,有两个非零列,一个空列: create table zzz_mark_test_me ( cust_id varchar2(20) not null, cust_name varchar2(20) null, cust_phone varchar2(20) not null ); table ZZZ_MARK_TEST_ME created. desc zzz_mark_test_me Name
4 2023-05-13
编程技术问答社区
确定Oracle null == null
我希望在可随机列上搜索数据库表.有时我要搜索的价值本身是无效的.由于零等于一无所有,甚至是null,说 where MYCOLUMN=SEARCHVALUE 将失败.现在我必须求助于 where ((MYCOLUMN=SEARCHVALUE) OR (MYCOLUMN is NULL and SEARCHVALUE is NULL)) 有一种更简单的说法吗? (我正在使用Oracle) 解决方案 您可以做ISNULL或NVL的操作,但这只会使引擎做更多的工作.您将调用函数进行列转换,然后必须将结果进行比较. 使用您拥有的东西 where ((MYCOLUMN=SEARCHVALUE) OR (MYCOLUMN is NULL and SEARCHVALUE is NULL)) 其他解决方案 @andy Lester断言查询的原始形式比使用NVL更有效.我决定测试该断言: SQL> DECLARE 2 C
2 2023-05-12
编程技术问答社区
Scala。类似于Option(Some, None),但有三种状态。Some, None, Unknown
我需要返回值,当有人要求一个值时,请告诉他们三件事之一: 这是值 没有价值 我们没有有关此值的信息(未知) 案例2与情况3略有不同.示例: val radio = car.radioType 我们知道值:返回无线电类型,说"先锋" b.没有价值:返回无 c.我们缺少有关这辆车的数据,我们不知道它是否有收音机 我以为我可能会扩展Scala没有并创建一个未知数,但这似乎不可能. 建议? 谢谢! 更新: 理想情况下,我希望能够像这样编写代码: car.radioType match { case Unknown => case None => case Some(radioType : RadioType) => } 解决方案 这是一个准则实现.您可能想查看一些铃铛和哨子的选项类的来源: package example object App extends Application {
0 2023-05-12
编程技术问答社区
获取可选对象的字段或返回null
我有可选对象: Optional newestDetail; 我想返回newestDetail.getId()或如果newestDetail是null return null. 我们有比遵循更复杂的方法吗? return newestDetail.isPresent()?newestDetail.get().getId():null; 解决方案 用ID字段映射值Optional,如果它为空,则将该值映射到null值: : return newestDetail.map(Detail::getId).orElse(null);
0 2023-05-12
编程技术问答社区
Spring中的@RequestParam是如何处理Guava'的Optional的?
@RequestMapping(value = "/contact.html", method = RequestMethod.POST) public final ModelAndView contact( @RequestParam(value = "name", required = false) Optional name) { spring's @RequestMapping如何处理会是: 设置为null 设置为Optional.absent() 可以使用Optional.fromNullable(T)接受请求吗? 解决方案 编辑(2015年10月): Spring 4 Handles java.util.Optional(来自Java 8)开箱即用,保证Optional本身不是null ,但最初的问题是关于在此特定情况下高度劝阻的Guava的com.google.common.base.Optional(因为它 can
4 2023-05-12
编程技术问答社区
当可选为空时如何返回?
我喜欢那个 optionals "> optionals Java标准库现在.但是我一直遇到一个基本问题,我还没有弄清楚如何以最好的方式解决(最容易阅读和理解,最漂亮,最短): 当可选的是空时如何从方法中返回? 我正在寻找一种适用于不同选项数量和代码块的大小组合的通用解决方案. 在以下示例中,我会尝试显示我的意思: void m1() { // When I get an optional: Optional o = getOptional(); // And want to return if it's empty if (!o.isPresent()) return; // In the whole rest of the method I have to call Optional.get // every time I want the value: System.out
0 2023-05-12
编程技术问答社区