小编JSc*_*Ced的帖子

MySQL InnoDB SELECT ... LIMIT 1 FOR UPDATE Vs UPDATE ... LIMIT 1

我在带有InnoDB引擎的MySQL中有一个表v_ext:
- id:主键
- 代码:预生成的代码列表(比如1000个代码随机生成)
- user_id:initial NULL

当用户购买商品时,他们会收到代码.我需要更新表以填充user_id列.我有两个选择:

START TRANSACTION;
SELECT id FROM v_ext WHERE user_id IS NULL LIMIT 1 FOR UPDATE; -- return id 54 for ex.
UPDATE v_ext SET user_id=xxx WHERE id=54;
COMMIT;
Run Code Online (Sandbox Code Playgroud)

要么

UPDATE v_ext SET user_id=xxx WHERE user_id IS NULL LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

如果我有数千名用户同时购买,第二种选择是否安全?如果是这样,假设第二个选项对性能更好是否正确,因为它只需要一个查询?

mysql sql-update

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

Gambler在Java中的废墟ASCII图

|  * |
| *  |
|  * |
| *  |
|  * |
| *  |
|  * |
|  * |
| *  |
| *  |
|  * |
| *  |
|*   |
Run Code Online (Sandbox Code Playgroud)

我需要为Gambler's Ruin问题打印类似上面的ASCII图.利益和目标被视为args.最左边的 代表0美元,最右边| 代表目标,*代表现金.我的计划如下:

  public class RuinPath {

  public static void main(String[] args) {
        // TODO - Your solution

    int stake = Integer.parseInt(args[0]);    // gambler's stating bankroll
    int goal = Integer.parseInt(args[1]);    // gambler's desired bankroll

    {
      int i = 0;
      if (i …
Run Code Online (Sandbox Code Playgroud)

java ascii

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

如何删除(复制)X-Powered-By:JSF/2.0

在我的例子中,我有Glassfish 3.1.1/Mojarra 2.1.3

我可以在网络侦听器中删除Glassfish管理控制台中的X-Powered-By(因此它不会显示长文本:

Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1.1 Java/Sun Microsystems Inc./1.6)
Run Code Online (Sandbox Code Playgroud)

但它仍然显示(是的,两次):

X-Powered-By: JSF/2.0
X-Powered-By: JSF/2.0
Run Code Online (Sandbox Code Playgroud)

我使用Jersey和JAXB来公开一些Web服务,并使用@WebServlet Annotation部署了一些servlet,但我不认为它们会添加任何内容.

它不是由mod_jk或Apache生成的,因为即使直接连接到应用程序端口,我也会获得这些头文件(localhost:8080)

是否有典型的模块可以在Glassfish中执行此操作?如何删除这些标题?

谢谢

http-headers jsf-2 glassfish-3

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

SQL Server存储过程更新和返回单值

我需要调用一个存储过程,给它一个报告id(int)并让它更新一个带有确认号(varchar)的报告表(确认#在存储过程中生成)并返回确认号(我将需要它将其返回到Web服务/网站).

我的存储过程代码:

DECLARE PROCEDURE [dbo].[spUpdateConfirmation]
@ReportID int
AS
BEGIN
   Declare @Confirmation varchar(30) = replace(replace(replace(convert(varchar(16),CURRENT_TIMESTAMP,120),'-',''),' ',''),':','')+convert(varchar(24),@ReportID)
   PRINT @Confirmation

   UPDATE Report
   SET  Confirmation = @Confirmation
   WHERE ReportID = @ReportID;

   RETURN @Confirmation
END
Run Code Online (Sandbox Code Playgroud)

我对存储过程的调用:

execute [spUpdateConfirmation] 2
Run Code Online (Sandbox Code Playgroud)

我在表中确认已插入值但是我收到此错误消息:

2013050219072

(1 row(s) affected)
Run Code Online (Sandbox Code Playgroud)

消息248,级别16,状态1,过程spUpdateConfirmation,第12行
varchar值'2013050219072'的转换溢出了一个int列.
'spUpdateConfirmation'过程尝试返回NULL状态,这是不允许的.将返回状态0.

问题:我做错了什么?

我理解溢出是什么,对于int来说值太大了,但是我使用了convert to varchar,insert to table column typevarchar(30)

我还在SQL中测试了这个语句,它运行正常:

print replace(replace(replace(convert(varchar(16),CURRENT_TIMESTAMP,120),'-',''),' ',''),':','')+convert(varchar(24),2)
Run Code Online (Sandbox Code Playgroud)

它返回:2013050219162

sql sql-server stored-procedures

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

如何限制Ruby字符串显示的单词数量?

Ruby代码如下:

<%= product.advert_text -%>
Run Code Online (Sandbox Code Playgroud)

什么脚本可以限制单词的数量?

ruby ruby-on-rails

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

如何获得%CD%的父路径

如何获取当前%CD%的父路径.

例如:

ECHO %CD%
Run Code Online (Sandbox Code Playgroud)

结果: C:\Windows\System32

(这不起作用)

ECHO %CD%..\
Run Code Online (Sandbox Code Playgroud)

期望的结果: C:\Windows

dos batch-file

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

如何将 PHP 中的字符串传递到 html 标签中?

我有一个字符串,一个 img url,位于名为 $str 的 php 块中。我想将该字符串设置为 img src 中的 img src 但它不起作用。

<img src="<?php $str ?>" height="50px" width="50px">
Run Code Online (Sandbox Code Playgroud)

我还能如何将 src 设置为 $str 字符串?

html php

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