小编dfb*_*dfb的帖子

让Hibernate和SQL Server与VARCHAR和NVARCHAR一起玩得很好


我目前正在大型数据库的某些表中启用UTF-8字符.这些表已经是MS-SQL类型的NVARCHAR.另外,我还有几个使用VARCHAR的字段.

Hibernate与JDBC驱动程序的交互存在一个众所周知的问题(参见例如,在hibernate中映射到varchar和nvarchar).简而言之,Hibernate/JDBC生成的SQL将所有字符串作为Unicode传递,而不管底层的SQL类型如何.当数据库中的非unicode(varchar)字段与Unicode输入字符串进行比较时,该列的指示与编码不匹配,因此执行全表扫描.在JDBC驱动程序(JTDS和MS版本)中,有一个参数可以将Unicode字符串作为ASCII传递,但这是一个全有或全无的命题,它不允许将国际字符输入到数据库中.

我在这个问题上看到的大多数帖子都提出了两个解决方案中的一个 - 1)将数据库中的所有内容更改为NVARCHAR或2)设置sendStringParametersAsUnicode = false,我的问题是这个 - 是否有任何已知的解决方案来使用VARCHAR和NVARCHAR一起玩得很好?由于下游依赖性和其他外部问题,我的环境将一切都更改为NVARCHAR 是一个巨大的问题.

java sql-server hibernate jdbc

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

为什么大多数语言都无法有效地实现通配符正则表达式?

我获得了以下关于许多现代语言中正则表达式实现的文章的链接.

http://swtch.com/~rsc/regexp/regexp1.html

TL; DNR:某些正则表达式(例如(a?)^na^n固定$ n $)需要与指数时间匹配,例如,a^n因为它在匹配?节时通过回溯字符串实现.通过保留状态列表将这些实现为NFA,可以明显地提高效率

每种语言实际上是如何实现这些细节不是很详细(以及该物品是旧的),但我很好奇:什么,如果有的话,使用的是NFA而不是其他实现技术的缺点.我能想到的唯一的事情是,大多数库的所有花里胡哨或者a)为所有这些功能构建NFA是不切实际的,或者b)上面的表达式和其他表达式之间存在一些冲突的性能问题,可能更多共同的,操作.

regex

12
推荐指数
1
解决办法
415
查看次数

在Eclipse中生成java代理类

Eclipse中有没有办法生成代理类(如代理模式,而不是远程调用)?有点像这样的东西

public class FooBar{
    public int getBiz(){
        return 1234;
    } 
}
Run Code Online (Sandbox Code Playgroud)

生成

public class FooBarProxy{
    protected FooBar foobar;
    public FooBarProxy(FooBar f) {...}
    public int getBiz(){
        return foobar.getBiz()
    } 
}
Run Code Online (Sandbox Code Playgroud)

java eclipse

9
推荐指数
1
解决办法
3536
查看次数

用户期望和unicode规范化

这是一个有点软的问题,如果有更好的地方,请随时告诉我.

我正在开发一些接受需要国际字符的密码的代码 - 所以我需要将输入的unicode字符串与存储的unicode字符串进行比较.很容易.

我的问题是这样的 - 国际字符集的用户通常期望在这种情况下正常化吗?我的谷歌搜索显示了一些冲突,从"总是这样做"(http://unicode.org/faq/normalization.html)到"不要打扰".没有正常化的利弊吗?(即,不太可能猜出密码等)

unicode user-experience normalization unicode-normalization

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

基于文档的数据存储(例如,Mongo)如何实现与键值存储相比?

我最近一直在阅读基于文档的数据库与键值存储(这里有一个很好的概述基于文档的数据库和基于键/值的数据库之间的差异? ),我在以下方面找不到好的信息.

如果我们使用键(或附加索引)查询其中任何一个,那么机制中没有真正的区别 - 获取值.在查询非索引文档/字段时,我不清楚文档存储与键值存储的区别.如果我要在键值存储的顶部实现文档存储,我会在查询中执行"表扫描"(检查所有键/值对)以获取相应的值 - 文档存储执行的操作不止于此封面?以这种方式考虑文档数据存储是否合适?

这不是一个实际问题(如果我需要做一些有用的事情,我会使用Mongo而不是BDB),而不是一个旨在理解底层技术的问题.只有当它们适用于底层实现时,我才对特定系统的扩展方面感兴趣.

language-agnostic mongodb key-value-store

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

Emacs文件编辑历史记录

是否存在emacs扩展,它在编辑文件时定期拍摄快照(每分钟一次,每次x键击一次),类似于Eclipse中的更改历史记录或Google Docs和其他程序中的编辑历史记录?

我希望有一些能让我轻松浏览我日复一日的变化的东西 - 有没有这样的东西已经写好了?

编辑

我应该更具体 - 我不是在寻找VCS.我正在寻找一个小模式或类似的东西我可以打开并拥有磁盘上的修订版本的硬拷贝.

emacs diff

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

Unicode和性能

我正在迁移大型Web服务以使其与国际字符兼容。它是Tomcat / Spring MVC / SQL Server堆栈。迁移本身是相对简单的,我们在Tomcat中进行了一些设置更改,以强制在响应中默认使用UTF-8,更改了一些Java代码以使用编码,然后将一些VARCHAR列迁移到NVARCHAR,然后进行了一定剂量的迁移单元/功能测试。

我们团队中的另一个人现在希望进行负载测试,以确保所有更改均不会对系统性能产生不利影响。上述过渡的各个组成部分并不能真正暗示任何性能变化,而且坦率地说,基于我的有限知识,我认为这并不是完全必要的。无论如何,我都打算这样做,但是,我的问题是吗?在这种迁移中可能会遇到性能陷阱吗?是否有特定于其他字符编码的特定内容可能会改变系统的性能?

我唯一想到的就是繁重的字符串比较和排序等操作。有什么想法吗?

sql-server unicode tomcat spring-mvc

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

通过global-set-key重新绑定页面

我正在尝试将我的页面向上和向下翻页键重新绑定到我编写的一些函数 global-set-key

(global-set-key [next] 'up-rate)
(global-set-key [previous] 'down-rate)
Run Code Online (Sandbox Code Playgroud)

这似乎适用于页面向下,但不是页面向上(previous) - 键仍然绑定到"缓冲页面".我错过了一些明显的东西吗?我很难相信这是特定的页面,但我不知道在哪里看

emacs elisp

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

使用mod函数的Oracle rownum行为

特定

CREATE TABLE Foo(v1 integer, v2 integer);

INSERT INTO Foo VALUES (1,2);
INSERT INTO Foo VALUES (3,4);
INSERT INTO Foo VALUES (5,6);
Run Code Online (Sandbox Code Playgroud)

SELECT COUNT(*) FROM Foo WHERE mod(rownum,2) = 0;
Run Code Online (Sandbox Code Playgroud)

返回0行,它应返回1

SELECT COUNT(*) FROM (SELECT mod(rownum,2) z FROM Foo) tt WHERE z=0;
Run Code Online (Sandbox Code Playgroud)

返回1行

我在这里错过了什么?我没有在ROWNUM或MOD文档中看到任何暗示任何想法的内容.

sql oracle

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

如何让这个程序运行得更快?

所以这是我用Python编写的第一个程序之一.我正在尝试取一个字符串,并输出所有真正的单词字符串.我已经完成了(我需要找到一个包含更多单词的参考文件)但是它不可扩展,因为我不能输入超过8个字符而没有Python需要很长时间才能返回一些内容.

def lower_and_remove_spaces(fill_string):
    '''
    function takes a string of 2 or more characters and prints out all the permutations
    of words that the characters can make. 
    '''
    lower_string = ''

    for i in fill_string:
        if i.isalpha():
            lower_string += i.lower()

    return lower_string    

def fill_list(input_string):
   iter_list = []
   string_list = []
   this_string = lower_and_remove_spaces(input_string)
   for num in range(2,len(this_string)+1):
      iter_list.append(itertools.permutations(this_string,num))

   for iters in iter_list:
      for lists in iters:
         string_list.append(list(lists))

    return string_list

def word_list(string):
   string_list = fill_list(string)
   a_word_list = []
   a_string = ''
   for …
Run Code Online (Sandbox Code Playgroud)

python algorithm

-1
推荐指数
1
解决办法
145
查看次数