我有一个针对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.如何避免从数据库中的十进制到我的代码中的长度精度损失?
好的,这是一个奇怪的问题,所以请在我解释时请耐心等待.
我们将开发服务器从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).
有没有人经历过这个?我怎么能绕过它呢?
谢谢.
为什么这些都不起作用:
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) 我想让我的.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服务器以获取单个域名.
我有一个UIViewController应该能够显示tableView多个数据源的s.在UITableView关于屏幕的一半大小跨度,并且有和上下键,使您可以通过不同的数据.每次按下向上和向下按钮,我想最终使用UIViewAnimationTransitionCurlDown或类似的东西来显示下一个UITableView.
问题是:我需要多个UIViewControllers才能做到这一点,tableView每个都嵌入了吗?当我UITableView按下向上或向下按钮时,我应该只创建一个实例并更改其数据源吗?如果它只是一个实例UITableView,我如何设法在屏幕的一部分上进行卷曲过渡,使它看起来像一个新tableView的进入?
我正在思考一个C#库的设计,它将有几个不同的高级函数.当然,这些高级功能将尽可能使用SOLID类设计原则来实现.因此,可能存在供消费者定期直接使用的类,以及作为那些更常见的"最终用户"类的依赖性的"支持类".
问题是,设计库的最佳方法是:
我目前的想法是为常见的DI库提供一些"DI注册模块"(例如,一个StructureMap注册表,一个Ninject模块),以及一个非DI的集合或工厂类,并包含与这几个工厂的耦合.
思考?
我想在LaTeX中生成以下内容:
1. Item
2. Item
3a. Item
3b. Item
4. Item
5. Item
Run Code Online (Sandbox Code Playgroud)
基本上我已经尝试过使用嵌套enumerate环境,但是我在实现不同的编号时遇到了问题.
我怎样才能在LaTeX中完成上述操作?
我正在使用log4net和AdoNetAppender.似乎AdoNetAppender有一个Flush方法.无论如何我可以从我的代码中调用它吗?
我正在尝试创建一个管理页面来查看数据库日志中的所有条目,我想用bufferSize = 100(或更多)设置log4net,然后我希望管理员能够单击管理员上的按钮页面强制log4net将缓冲的日志条目写入数据库(不关闭log4net).
那可能吗?
一位开发人员和我正在交谈(轻描淡写地)对象的属性的Lazy-Loading.
那么,在IoC和SRP之后你将如何处理Lazy-Loading?
你不能单元测试那个延迟加载的属性.他重申那句话说:"你已经为UserStatsService进行了单元测试 - 这是你的代码覆盖率." 有效点,但该物业仍然未经测试,但"完整"覆盖.
设置/代码模式:
一个例子如下.
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
由于各种原因,我需要在C#中实现类型缓存机制.幸运的是,CLR提供Type.GUID了唯一标识类型.不幸的是,我找不到任何方法来查找基于此GUID的类型.有Type.GetTypeFromCLSID(),但根据我的文档(和实验)的理解是,做了非常,非常不同.
是否有任何方法可以获得基于其GUID的类型,而不是循环遍历所有已加载的类型并与其GUID进行比较?
编辑:我忘了提到我真的很喜欢固定宽度的"类型指纹",这就是为什么GUID对我这么有吸引力.当然,在一般情况下,该类型的完全限定名称可以使用.
c# ×2
java ×2
.net ×1
buffer ×1
enumerate ×1
flush ×1
iphone ×1
latex ×1
lazy-loading ×1
log4net ×1
mod-rewrite ×1
mysql ×1
mysqli ×1
php ×1
precision ×1
reference ×1
reflection ×1
single-responsibility-principle ×1
spring ×1
types ×1
uikit ×1
uitableview ×1