问题列表 - 第43561页

JDBC使用SELECT FOR UPDATE锁定一行,不起作用

我遇到MySQL的SELECT问题.. FOR UPDATE,这是我试图运行的查询:

SELECT * FROM tableName WHERE HostName='UnknownHost' 
        ORDER BY UpdateTimestamp asc limit 1 FOR UPDATE
Run Code Online (Sandbox Code Playgroud)

在此之后,相关的线程将执行UPDATE并更改HostName,然后它应该解锁该行.

我正在运行一个多线程java应用程序,所以3个线程正在运行这个SQL语句,但是当线程1运行它时,它不会从线程2和3锁定其结果.因此线程2和3得到相同的结果,他们可以更新同一行.

每个线程也都有自己的mysql连接.

我正在使用Innodb,事务隔离= READ-COMMITTED,并且在执行select for update之前自动提交已关闭

我可能会错过什么吗?或许还有更好的解决方案?非常感谢.

代码:

public BasicJDBCDemo()
{
    Le_Thread newThread1=new Le_Thread();
    Le_Thread newThread2=new Le_Thread();
    newThread1.start();
    newThread2.start();         
}
Run Code Online (Sandbox Code Playgroud)

线程:

class Le_Thread extends Thread  
{

    public void run() 
    {
    tring name = Thread.currentThread().getName();
        System.out.println( name+": Debut.");
    long oid=Util.doSelectLockTest(name);
    Util.doUpdateTest(oid,name);        
    }

}
Run Code Online (Sandbox Code Playgroud)

选择 :

public  static long doSelectLockTest(String threadName)
  {
    System.out.println("[OUTPUT FROM SELECT Lock ]...threadName="+threadName);
    PreparedStatement pst = null;
    ResultSet rs=null;
    Connection …
Run Code Online (Sandbox Code Playgroud)

java sql jdbc

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

log4net在代码中配置SqLite

今天早些时候我问了一个关于从代码配置log4net的问题,并且很快得到了答案,这使我可以将其配置为输出到文本文件.从那以后我的需求发生了变化,我需要使用SqLite作为追加器.所以我创建了以下类来允许这个:

public static class SqLiteAppender
{
    public static IAppender GetSqliteAppender(string dbFilename)
    {
        var dbFile = new FileInfo(dbFilename);

    if (!dbFile.Exists)
    {
        CreateLogDb(dbFile);
    }

    var appender = new AdoNetAppender
                       {
                           ConnectionType = "System.Data.SQLite.SQLiteConnection, System.Data.SQLite",
                           ConnectionString = String.Format("Data Source={0};Version=3;", dbFilename),
                           CommandText = "INSERT INTO Log (Date, Level, Logger, Message) VALUES (@Date, @Level, @Logger, @Message)"
                       };

    appender.AddParameter(new AdoNetAppenderParameter
                              {
                                  ParameterName = "@Date",
                                  DbType = DbType.DateTime,
                                  Layout = new log4net.Layout.RawTimeStampLayout()

                              });

    appender.AddParameter(new AdoNetAppenderParameter
                              {
                                  ParameterName = "@Level",
                                  DbType = DbType.String,
                                  Layout = new log4net.Layout.RawPropertyLayout { …
Run Code Online (Sandbox Code Playgroud)

c# log4net log4net-configuration

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

是浮点==还好吗?

就在今天,我遇到了我们正在使用的第三方软件,在他们的示例代码中,有以下几点:

// Defined in somewhere.h
static const double BAR = 3.14;

// Code elsewhere.cpp
void foo(double d)
{
    if (d == BAR)
        ...
}
Run Code Online (Sandbox Code Playgroud)

我知道浮点数及其表示的问题,但它让我想知道是否有float == float可能会好的情况?我不是在问它什么时候可行,而是在它有意义和有效的时候.

还有,电话foo(BAR)怎么样?它总是比较相同,因为它们都使用相同的static const BAR吗?

c++ floating-point comparison

52
推荐指数
6
解决办法
3026
查看次数

我想将我的XML文件链接到我的HTML页面

我创建了一个XML文件,我希望它可以在我创建的HTML页面中显示.有人能告诉我怎么做.

<?xml version="1.0"?>
<Family>
<Mom>Alison</Mom>
<age>44</age>
<son>Ian</son>
<age>8</age>
<son>Seth</son>
</Family>
Run Code Online (Sandbox Code Playgroud)

我想从我的html页面中读到这个

html xml

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

如何使用猪拉丁"更新"列

想象一下,我有以下表格可供我使用:

A: { x: int, y: int, z: int, ...99 other columns... }
Run Code Online (Sandbox Code Playgroud)

我现在想要对此进行转换,将z其设置为NULLwhere x > y,将结果数据集存储为B.

我想这样做而不必明确提及所有其他列,因为这成为维护的噩梦.

有简单的解决方案吗?

hadoop apache-pig

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

php中逗号分隔的列表

我正在尝试构建一个由逗号分隔的列表,它应该是这样的(绿色、橙色、红色)。

$i=0;
$taxonomy = $form_state[values][taxonomy][5];
foreach ($taxonomy as $key => $value){
  $result = db_query("SQL CODE goes here");
  if (mysql_num_rows($result)){     
  while ($i<mysql_num_rows($result)){
    $resultset = db_fetch_array($result);
    $comma_separated = implode(",", $resultset);
    $i++;      
  }
  form_set_error("Date", t("$comma_separated. cannot be booked more than once "));
}
Run Code Online (Sandbox Code Playgroud)

php mysql drupal

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

定义MenuItem快捷方式

我需要一种简单的方法来设置菜单项的快捷方式.

但这不适用于快捷方式,只需点击:

<MenuItem Header="Editar">
    <MenuItem Header="Procurar" Name="MenuProcurar"
              InputGestureText="Ctrl+F"
              Click="MenuProcurar_Click">
        <MenuItem.ToolTip>
            <ToolTip>
                Procurar
            </ToolTip>
        </MenuItem.ToolTip>
    </MenuItem>
</MenuItem>
Run Code Online (Sandbox Code Playgroud)

我正在使用WPF 4.0

wpf keyboard-shortcuts

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

std,tr1和boost之间有什么区别(作为命名空间和/或库)?

我最初认为他们都是一样的,但事实证明是错的.那么有人可以简单地解释这三者之间的差异吗?例如:

  1. std::bind (最新一代,下一代C++)
  2. std::tr1::bind (旧的,C++ std的扩展)
  3. boost::bind (完全独立的图书馆)

或者std::shared_ptr,std::tr1::shared_ptrboost::shared_ptr,...等

更新

bind,shared_ptr是有助于澄清我的问题的例子.我的目的是了解这三个命名空间之间的一般差异.所有三个名称空间中都有几个库,显然bind是一个例子,以及shared_ptr.

我应该坚持哪些名称空间?我个人更喜欢库,std::因为它将成为C++的下一个标准(C++ 0x).

c++ boost tr1 c++11

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

读取perl中的大文件,按记录记录,使用动态记录分隔符

我有一个逐行读取大文件的脚本.$/我想要使​​用的记录分隔符()是(\n).唯一的问题是每行上的数据都包含CRLF字符(\r\n),该程序不应被视为一行的结尾.

例如,这是一个示例数据文件(写出换行符和CRLF):

line1contents\n
line2contents\n
line3\r\ncontents\n
line4contents\n
Run Code Online (Sandbox Code Playgroud)

如果我设置$/ = "\n",那么它将第三行分成两行.理想情况下,我可以只设置$/到相匹配的正则表达式\n,而不是\r\n,但我不认为这是可能的.另一种可能性是读入整个文件,然后使用split函数拆分所述正则表达式.唯一的问题是文件太大而无法加载到内存中.

有什么建议?

perl performance file-io

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

svn:用同名的本地文件夹替换外部的简洁方法

我在各个地方检查了一个存储库.我有一个文件夹X,它是另一个存储库的外部.我希望X是本地的.还有其他问题,但它们似乎没有遇到我的困难.

我做的是编辑了svn:externals并删除了该行.然后我提交了回购.然后我拿了文件夹,删除了.svn它中的所有条目(使其成为常规文件夹),svn add编辑它,然后提交.这很好.

但是,当我更新回购的另一个结账时,我遇到了问题.第一个错误是这样的:

UUID mismatch: existing directory XXX was checked out from a different repository.
Run Code Online (Sandbox Code Playgroud)

好的,已经svn up失败了,但我尝试删除文件夹并重新更新.现在它管理重新获取所有内容,但现在我收到一个新错误:

Can't remove file XXX: Access is denied
Run Code Online (Sandbox Code Playgroud)

我再次尝试更新,没有任何反应.我删除该文件夹中的文件并从根目录再次更新,没有任何反应.我删除了文件夹X,没有任何反应 - 所以它似乎忘了它!我唯一的办法就是删除X的根目录并svn up从一个级别下来(因为所有这些也发生在一个也是外部的子文件夹中).

不好......我不想在签出此存储库的所有站点上执行某些手动rigamarole.该怎么办?

svn repository svn-externals

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