问题列表 - 第19236页

Spring queryForLong - 精度损失

我有一个针对MySql数据库运行的Spring应用程序.我有一个销售表,如:

+-------------------+------------------------------+------+-----+---------+-------+
| Field             | Type                         | Null | Key | Default | Extra |
+-------------------+------------------------------+------+-----+---------+-------+
| Price             | decimal(19,4)                | NO   |     | NULL    |       |
| ItemId            | int(10) unsigned             | NO   |     | NULL    |       |
+-------------------+------------------------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

在我的Spring课程中,我有以下内容:

long price = getSimpleJdbcTemplate().queryForLong("SELECT price FROM sales WHERE itemID = :itemID", params);
logger.info("price: " + price + ");
Run Code Online (Sandbox Code Playgroud)

但是,这将返回1的价格,即使此查询直接在数据库上返回0.8500.如何避免从数据库中的十进制到我的代码中的长度精度损失?

java mysql precision spring

0
推荐指数
1
解决办法
410
查看次数

用PHP 5.3.1传递参考问题

好的,这是一个奇怪的问题,所以请在我解释时请耐心等待.

我们将开发服务器从PHP 5.2.5升级到5.3.1.

在切换后加载我们的代码,我们开始得到如下错误:

Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference, value given in /home/spot/trunk/system/core/Database.class.php on line 105

提到的(105)行如下:

call_user_func_array(Array($stmt, 'bind_param'), $passArray);
Run Code Online (Sandbox Code Playgroud)

我们将该行更改为以下内容:

call_user_func_array(Array($stmt, 'bind_param'), &$passArray);
Run Code Online (Sandbox Code Playgroud)

此时(因为allow_call_time_pass_reference)被关闭,php抛出这个:

Deprecated: Call-time pass-by-reference has been deprecated in /home/spot/trunk/system/core/Database.class.php on line 105

在尝试解决这个问题一段时间之后,我崩溃了并且开始allow_call_time_pass_reference了.

这摆脱了Deprecated警告,但现在Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference每次都会发出警告,无论有没有引用.

我不知道如何解决这个问题.如果目标方法是我自己的,我只会在func声明中引用传入的变量,但它是一个(相对)本机方法(mysqli).

有没有人经历过这个?我怎么能绕过它呢?

谢谢.

php mysqli reference

32
推荐指数
3
解决办法
3万
查看次数

java中的数据类型"char"

为什么这些都不起作用:

 char word = "sds";
 char word = 'sds';
 myDog.bark("voff");
 myDog.bark('voff');
Run Code Online (Sandbox Code Playgroud)

在我输入的myDog对象中:

 void bark(char word) {
      System.out.println(word);
 }
Run Code Online (Sandbox Code Playgroud)

java

2
推荐指数
1
解决办法
2961
查看次数

使用mod_rewrite,我可以在RewriteCond中指定RewriteBase吗?

我想让我的.htaccess文件指定一个不同的RewriteBase,具体取决于.htaccess文件是在我的本地机器上还是在Web服务器上.这是我尝试过的mod_rewrite代码,但它不起作用:

RewriteCond %{HTTP_HOST} ^localhost:8080
RewriteBase /example/
RewriteCond %{HTTP_HOST} ^www.example.com
RewriteBase /
Run Code Online (Sandbox Code Playgroud)

这样可以方便地在我的本地计算机上预览多个网站,然后将这些网站上传到Web服务器以获取单个域名.

mod-rewrite

21
推荐指数
1
解决办法
1万
查看次数

在一个UIViewController中处理多个UITableViews的最佳方法?

我有一个UIViewController应该能够显示tableView多个数据源的s.在UITableView关于屏幕的一半大小跨度,并且有和上下键,使您可以通过不同的数据.每次按下向上和向下按钮,我想最终使用UIViewAnimationTransitionCurlDown或类似的东西来显示下一个UITableView.

问题是:我需要多个UIViewControllers才能做到这一点,tableView每个都嵌入了吗?当我UITableView按下向上或向下按钮时,我应该只创建一个实例并更改其数据源吗?如果它只是一个实例UITableView,我如何设法在屏幕的一部分上进行卷曲过渡,使它看起来像一个新tableView的进入?

iphone core-animation uitableview uikit

5
推荐指数
1
解决办法
3006
查看次数

依赖注入(DI)"友好"库

我正在思考一个C#库的设计,它将有几个不同的高级函数.当然,这些高级功能将尽可能使用SOLID类设计原则来实现.因此,可能存在供消费者定期直接使用的类,以及作为那些更常见的"最终用户"类的依赖性的"支持类".

问题是,设计库的最佳方法是:

  • DI不可知 - 虽然为一个或两个常见的DI库(StructureMap,Ninject等)添加基本的"支持"似乎是合理的,但我希望消费者能够将该库与任何DI框架一起使用.
  • 非DI可用 - 如果库的使用者没有使用DI,那么库应该仍然尽可能容易使用,减少了用户为创建所有这些"不重要"的依赖关系而必须完成的工作量.他们想要使用的"真实"类.

我目前的想法是为常见的DI库提供一些"DI注册模块"(例如,一个StructureMap注册表,一个Ninject模块),以及一个非DI的集合或工厂类,并包含与这几个工厂的耦合.

思考?

c# dependency-injection inversion-of-control

227
推荐指数
2
解决办法
4万
查看次数

在LaTeX中更改Enumerate环境中嵌套列表的编号

我想在LaTeX中生成以下内容:

1. Item
    2. Item
    3a. Item
    3b. Item
    4. Item
5. Item
Run Code Online (Sandbox Code Playgroud)

基本上我已经尝试过使用嵌套enumerate环境,但是我在实现不同的编号时遇到了问题.

我怎样才能在LaTeX中完成上述操作?

latex enumerate

5
推荐指数
1
解决办法
1万
查看次数

无论如何都可以在log4net中以可编程方式刷新缓冲区

我正在使用log4net和AdoNetAppender.似乎AdoNetAppender有一个Flush方法.无论如何我可以从我的代码中调用它吗?

我正在尝试创建一个管理页面来查看数据库日志中的所有条目,我想用bufferSize = 100(或更多)设置log4net,然后我希望管理员能够单击管理员上的按钮页面强制log4net将缓冲的日志条目写入数据库(不关闭log4net).

那可能吗?

log4net buffer flush adonetappender

57
推荐指数
2
解决办法
2万
查看次数

控制反转,依赖注入w/SRP和延迟加载

一位开发人员和我正在交谈(轻描淡写地)对象的属性的Lazy-Loading.

  • 他说要使用静态IoC查找调用来解析和延迟加载对象的对象.
  • 我说这违反了SRP,并使用拥有的服务来解析该对象.

那么,在IoC和SRP之后你将如何处理Lazy-Loading?

你不能单元测试那个延迟加载的属性.他重申那句话说:"你已经为UserStatsService进行了单元测试 - 这是你的代码覆盖率." 有效点,但该物业仍然未经测试,但"完整"覆盖.

设置/代码模式:

  • 项目使用严格的依赖注入规则(注入所有服务,存储库等的ctors).
  • 项目通过Castle使用IoC(但可能是Unity之类的任何东西).

一个例子如下.

public class User
{
  public Guid UserId { get; set; }

  private UserStats _userStats;
  // lazy-loading of an object on an object
  public UserStats UserStats
  {
    get
    {
      if (_userStats == null)
      {
        // ComponentsLookup is just a wrapper around IoC 
        // Castle/Unity/etc.
        _userStats = 
          ComponentsLookup
            .Fetch<UserStatsService>()
              .GetByUserId(this.UserId);
      }
      return _userStats;
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

以上显示了延迟加载对象的示例.我说不要使用它,并从UI层访问任何需要该对象的UserStatsService.

编辑:下面的一个答案让我想起了延迟加载的NHibernate技巧,即虚拟化你的属性,允许NHibernate创建一个懒惰加载本身的过载.光滑,是的,但我们没有使用NHibernate.

没有人真正解决Lazy-Loading的问题.一些好文章和SO问题接近:

我确实看到了延迟加载的好处.不要弄错我,我所做的只是懒惰加载我的复杂类型及其子类型,直到我切换到忍者的DI方式.好处在于UI层,其中用户的统计数据显示在具有100行的列表中.但是使用DI,现在你必须引用几行代码来获取用户统计数据(不违反SRP并且不违反Demeter法则),并且必须走这条长路径的查找次数100次.

是的,添加缓存并确保编写UserStatsService以用作Singleton模式,从而大大降低性能成本.

但我想知道是否有其他人有一个[顽固]开发人员,他们不会完全屈服于IoC和DI规则,并且拥有有效的性能/编码点来证明解决方案的合理性.

lazy-loading single-responsibility-principle inversion-of-control

3
推荐指数
1
解决办法
1732
查看次数

从GUID获取类型

由于各种原因,我需要在C#中实现类型缓存机制.幸运的是,CLR提供Type.GUID了唯一标识类型.不幸的是,我找不到任何方法来查找基于此GUID的类型.有Type.GetTypeFromCLSID(),但根据我的文档(和实验)的理解是,做了非常,非常不同.

是否有任何方法可以获得基于其GUID的类型,而不是循环遍历所有已加载的类型并与其GUID进行比较?

编辑:我忘了提到我真的很喜欢固定宽度的"类型指纹",这就是为什么GUID对我这么有吸引力.当然,在一般情况下,该类型的完全限定名称可以使用.

.net c# reflection types

12
推荐指数
3
解决办法
7699
查看次数