我使用spring有多个数据源(适应多个mysql dbs)和使用tomcat dbcp.我得到一些奇怪的例外,比如
我觉得可能是这个问题,需要大家的投入:
我jdbcTemplate在我的spring.xml每个查询中定义了一个对象,我需要触发,我调用jdbcTemplate.setDataSource()设置适当的数据源然后simplejdbccall(jdbctemplate)用来执行proc.
我是否应该同时定义多个jdbcTemplate对象,即每个定义的数据源一个.我在其上设置数据源jdbctemplate并执行存储过程的bean 被定义为prototype.
我有一张发票表和一张与钥匙有关的相关数据的子表.特别是,对于每个发票,我只对子表中的第一个相关行感兴趣.鉴于我希望每个发票密钥都有一个相关的行 - 我该如何做到这一点?
Select i.[Invoice Number],
c.[Carrier Name]
From Invoice i
Left Join Carriers c on i.[InvoiceKey] = c.[InvoiceKey]
Where -- what?
Run Code Online (Sandbox Code Playgroud)
我想在语义上讲,我正在寻找类似于概念的东西Top 1 c.CarrierName Group by InvoiceKey(或者如果在T-SQL中可能的话那将是什么概念.)
我考虑过在子查询上进行左连接,但这看起来效率不高.有没有人有任何T-SQL技巧来有效地实现这一目标?
编辑:对不起,伙计们,我忘了提到这是SQL Server 2000,所以虽然我将放弃当前SQL Server 2005/2008响应的投票,但我不敢接受它们.
Windows 7(可能还有Windows Vista)使用文件中的LocalizedResourceName条目显示本地化的文件夹名称desktop.ini.对于我的Documents文件夹,这看起来像
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21770
IconResource=%SystemRoot%\system32\imageres.dll,-112
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-235
Run Code Online (Sandbox Code Playgroud)
(见这个问题)
这样,资源管理器在德语Windows上将路径"C:\ Users\Username\Documents"显示为"C:\ Benutzer\Username\Dokumente".
我想知道,如果有任何内置shell函数来自动获取这个本地化名称,或者更好的是,将整个路径转换为其本地化形式(最好是.NET中的任何内容)?
这更有趣,因为该LocalizedResourceName条目仅针对Windows CE进行了记录(请参阅此处).
谢谢
马丁
我的系统:物理内存:3GB
Windows XP Service Pack 3(32位)交换文件大小:30gb
目标:找到我可以在我的机器上分配的最大可能内存映射大小.
当我运行以下代码来分配2gb内存映射文件时,调用失败.
手柄=的CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE | SEC_COMMIT,0,INT_MAX,NULL);
我一直很困惑,因为我可以通过不断地一次调用100mb的CreateFileMapping来分配一个内存映射文件,直到系统交换文件大小为30gb.
重新启动计算机后,重新运行请求2gb内存映射文件到CreateFileMapping的应用程序,它可以工作,并返回一个有效的句柄.所以这让我有点困惑,在窗户的引擎盖下到底是怎么回事?
所以情况就是这样,我可以使用所有系统页面文件(30gb)创建许多小内存映射文件,但是当要求单个分配2gb时,调用失败.重新启动机器并运行相同的应用程序时,呼叫成功!
一些注意事项:
1)内存映射文件没有加载到proccess虚拟地址空间,还没有查看该文件.
2)操作系统可以将小的100mb内存映射文件分配给30gb的系统页面文件!
现在我唯一可以得出的结论是,Windows XP SP3(32位)虚拟内存管理器无法在系统页面文件中成功保留所请求的2gb,然后由于系统内存碎片而失败(似乎它需要保留内存的连续分配,即使页面文件是4kb).重新启动后,我假设系统内存碎片较少,因此允许相同的调用成功并分配大小为2gb的内存映射文件.
我运行了一些实验,在运行机器一天后,我启动了一个小应用程序,它将分配一个300mb的内存载文件然后释放它.然后它将增加1mb的大小并再试一次.最后它停在700mb并报告(系统资源不足).然后我会通过并关闭每个应用程序,这将反过来停止错误消息,它最终继续分配大小为3.5gb的内存映射文件!
所以我的问题是这里发生了什么?虚拟内存管理器必须在内部发生某种类型的内存碎片,因为分配100mbs内存映射文件将消耗最多30gb的系统页面文件(提交限制).
更新
结论是,如果你要创建与INVALID_HANDLE_VALUE系统页面文件支持大内存映射文件,那么系统页面文件(交换文件)需要调整到所需要的尺寸,并在非支离破碎的状态大分配> 2gb!虽然在IO负载很重的情况下它仍然会失败.要解决所有这些问题,您可以创建自己的文件,其中包含所需的大小(我做了1tb)和内存映射到该文件.
最终更新
我在Windows 7机器上运行了相同的测试,令我惊讶的是它每次都可以工作(直到系统页面文件大小)而不会触及任何东西.所以我想这只是一个错误,大型内存分配在Windows XP上可能比Windows 7更频繁地失败.
我一直在努力研究是否可以使用SSMS这样的GUI来管理(即添加表,修改它们,创建存储过程)SQL Azure数据库,并且我不断遇到不同的答案.
我在2009年底发现了一篇帖子,说它会在SSMS中得到支持,但我不确定是否包含Express版本?有人知道快递版本的最新更新是什么以及它是否支持它?
我认为我说它在Visual Web Developer 2010中无法完成(而且我买不起全胖的VS2010).
我准备考虑替代方案,但是如果有人知道任何与SQL azure一起使用的完整功能GUI工具,并且我不介意支付商业许可证,如果它不是太昂贵.
谢谢.
我有一个字符串:
s="123--abc,123--abc,123--abc"
Run Code Online (Sandbox Code Playgroud)
我尝试使用Ruby 1.9的新功能"命名组"来获取所有命名的组信息:
/(?<number>\d*)--(?<chars>\s*)/
Run Code Online (Sandbox Code Playgroud)
是否有像Python这样的API findall返回一个matchdata集合?在这种情况下,我需要返回两个匹配,因为123并abc重复两次.每个匹配数据都包含每个命名捕获信息的详细信息,因此我可以使用它m['number']来获取匹配值.
我想知道在ruby 1.9中是否有更规范的方法可以做到这一点
我有一个包含大量对象的数组,我想使用数组中每个对象的属性将它们分组为Hash.
很简单的例子:
> sh = {}
=> {}
> aers = %w(a b c d ab bc de abc)
=> ["a", "b", "c", "d", "ab", "bc", "de", "abc"]
> aers.each do |aer|
> sh[aer.size] = [] if sh[aer.size].nil?
> sh[aer.size] << aer
> end
=> ["a", "b", "c", "d", "ab", "bc", "de", "abc"]
> sh
=> {1=>["a", "b", "c", "d"], 2=>["ab", "bc", "de"], 3=>["abc"]}
Run Code Online (Sandbox Code Playgroud)
我试过这个,但它的输出是错误的(你可以看到):
sh = Hash.new([])
=> {}
> aers.each do |aer|
> sh[aer.size] << …Run Code Online (Sandbox Code Playgroud) 刚开始使用RSpec.除了一个带有嵌套控制器的规范外,一切都很顺利.
我正在尝试确保当使用无效参数更新"评论"资源(嵌套在"帖子"下)时,它会呈现"编辑"模板.我很难让rspec识别出:update_attributes => false trigger.如果有人有任何建议,他们将非常感激.尝试过以下代码:
def mock_comment(stubs={})
stubs[:post] = return_post
stubs[:user] = return_user
@mock_comment ||= mock_model(Comment, stubs).as_null_object
end
describe "with invalid paramters" dog
it "re-renders the 'edit' template" do
Comment.stub(:find).with("12") { mock_comment(:update_attributes => false) }
put :update, :post_id => mock_comment.post.id, :id => "12"
response.should render_template("edit")
end
end
Run Code Online (Sandbox Code Playgroud)
和控制器:
def update
@comment = Comment.find(params[:id])
respond_to do |format|
if @comment.update_attributes(params[:comment])
flash[:notice] = 'Post successfully updated'
format.html { redirect_to(@comment.post) }
format.xml { head :ok }
else
format.html { render :action => "edit" } …Run Code Online (Sandbox Code Playgroud) 我正在阅读Gilad Bracha撰写的"Java编程语言中的泛型",我对一种声明风格感到困惑.以下代码位于第8页:
interface Collection<E>
{
public boolean containsAll(Collection<?> c);
public boolean addAll(Collection<? extends E> c);
}
interface Collection<E>
{
public <T> boolean containsAll(Collection<T> c);
public <T extends E> boolean addAll(Collection<T> c);
// hey, type variables can have bounds too!
}
Run Code Online (Sandbox Code Playgroud)
我的困惑来自第二次宣言.我不清楚<T>声明在以下行中的用途是什么:
public <T> boolean containsAll(Collection<T> c);
Run Code Online (Sandbox Code Playgroud)
该方法已经有一个与之关联的类型(布尔值).
为什么要使用它<T>以及它对编码器有什么作用?
我认为我的问题需要更具体一些.
你为什么要写:
public <T> boolean containsAll(Collection<T> c);
Run Code Online (Sandbox Code Playgroud)
VS
public boolean containsAll(Collection<T> c);
Run Code Online (Sandbox Code Playgroud)
<T>在containsAll的第一个声明中,我不清楚,目的是什么.
假设我有一个方法,session.get(str: String): String但你不知道它是否会返回一个字符串或null,因为它来自Java.
有没有更简单的方法来处理Scala而不是session.get("foo") == null?也许有些魔法适用ToOption(session.get("foo")),然后我可以像Scala一样对待它
ToOption(session.get("foo")) match {
case Some(_) =>;
case None =>;
}
Run Code Online (Sandbox Code Playgroud) java ×3
ruby ×2
sql-server ×2
.net ×1
arrays ×1
c++ ×1
declaration ×1
generics ×1
hash ×1
localization ×1
memory ×1
regex ×1
rspec ×1
scala ×1
scala-option ×1
spring ×1
spring-jdbc ×1
sql ×1
t-sql ×1
windows-7 ×1