小编Mar*_*sch的帖子

如何在mysql中获取下一个自动增量id

如何获取mysql中的下一个id以将其插入表中

INSERT INTO payments (date, item, method, payment_code)
VALUES (NOW(), '1 Month', 'paypal', CONCAT("sahf4d2fdd45", id))
Run Code Online (Sandbox Code Playgroud)

mysql sql

102
推荐指数
10
解决办法
21万
查看次数

获得表行计数的最有效方法

我目前有一个超过600万行的数据库,并且还在增长.我目前做SELECT COUNT(id)FROM table; 为了向我的用户显示该号码,但数据库变得越来越大,除了能够显示该号码之外,我不需要存储所有这些行.有没有办法选择要显示的auto_increment值,以便我可以清除数据库中的大多数行?使用LAST_INSERT_ID()似乎不起作用.

mysql sql count

65
推荐指数
4
解决办法
11万
查看次数

什么是斗式旅?

我真的很想实现一个php_user_filter::filter().但是因此我必须知道斗式旅是什么.这似乎是我可以使用这些stream_bucket_*功能操作的资源.但文档并没有真正的帮助.我能找到的最好的是那些例子stream_filter_register().

我特别好奇这些stream_bucket_new()stream_bucket_make_writeable()能做什么.


更新:似乎PHP暴露了Apache内部数据结构.

php php-stream-wrappers

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

Captcha的HTTP状态代码

有时(经常请求资源时)我正在拦截带有验证码的(HTML)资源的呈现.拦截不会产生任何重定向.它发生在同一个URI上.

我现在想知道哪些HTTP状态代码最适合这些要求:

  • 它应该在语义上适合.

  • 谷歌应该明白这个拦截是一个临时条件,不应该影响其索引中的现有资源.

  • Web浏览器将显示带有验证码的响应正文.

这些是我到目前为止确定的候选人:

409冲突

由于与资源的当前状态冲突,无法完成请求.此代码仅在预期用户可能能够解决冲突并重新提交请求的情况下才允许.响应主体应该包含足够的信息供用户识别冲突的来源.

这听起来很完美.冲突状态来自那些经常请求资源的客户端.响应还包括足够的信息来识别冲突的根源并解决冲突.

503服务不可用

由于服务器临时过载,服务器当前无法处理请求.这意味着这是一个暂时的条件[...].如果已知,则可以在Retry-After报头中指示延迟的长度.

这听起来适度.我甚至可能知道延迟的长度并提供这样的标题.但我在这里错过了用户可以解决问题的重点.此外,范围太广(服务器重载与资源过载).

captcha http http-status-codes http-status-code-503 http-status-code-409

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

Foo :: new和() - > new Foo()有什么区别?

我的印象Foo::new只是语法糖() -> new Foo(),他们应该表现得相同.但似乎并非如此.这是背景:

使用Java-8,我使用第三方库,它有一个Optional<Foo> foo和这个违规行:

foo.orElseGet(JCacheTimeZoneCache::new);
Run Code Online (Sandbox Code Playgroud)

JCacheTimeZoneCache在构造函数中使用来自可选JCache库的东西,我没有在我的类路径中.使用调试器我验证了foo不是null,因此它实际上应该永远不会实例化JCacheTimeZoneCache实例,因此丢失的JCache库应该不是问题.然而,它确实爆炸,堆栈跟踪抱怨丢失的JCache库:

Caused by: java.lang.BootstrapMethodError: java.lang.IllegalAccessError: no such constructor: net.fortuna.ical4j.util.JCacheTimeZoneCache.<init>()void/newInvokeSpecial
    at net.fortuna.ical4j.model.TimeZoneLoader.cacheInit(TimeZoneLoader.java:275) ~[ical4j-3.0.0.jar:na]
    at net.fortuna.ical4j.model.TimeZoneLoader.<init>(TimeZoneLoader.java:81) ~[ical4j-3.0.0.jar:na]
    at net.fortuna.ical4j.model.TimeZoneRegistryImpl.<init>(TimeZoneRegistryImpl.java:125) ~[ical4j-3.0.0.jar:na]
    at net.fortuna.ical4j.model.TimeZoneRegistryImpl.<init>(TimeZoneRegistryImpl.java:116) ~[ical4j-3.0.0.jar:na]
    at net.fortuna.ical4j.model.DefaultTimeZoneRegistryFactory.createRegistry(DefaultTimeZoneRegistryFactory.java:48) ~[ical4j-3.0.0.jar:na]
    at net.fortuna.ical4j.data.CalendarBuilder.<init>(CalendarBuilder.java:105) ~[ical4j-3.0.0.jar:na]
    at de.malkusch.trashcollection.infrastructure.schedule.ical.VEventRepository.downloadVEvents(VEventRepository.java:46) ~[classes/:na]
    at de.malkusch.trashcollection.infrastructure.schedule.ical.VEventRepository.<init>(VEventRepository.java:35) ~[classes/:na]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_172]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_172]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_172]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_172]
    at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:170) ~[spring-beans-5.0.7.RELEASE.jar:5.0.7.RELEASE]
    ... 80 common frames omitted
Caused by: java.lang.IllegalAccessError: no such constructor: net.fortuna.ical4j.util.JCacheTimeZoneCache.<init>()void/newInvokeSpecial
    at java.lang.invoke.MethodHandleNatives.linkMethodHandleConstant(MethodHandleNatives.java:483) ~[na:1.8.0_172]
    ... 93 …
Run Code Online (Sandbox Code Playgroud)

java lambda method-reference

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

使用Servlet 2.5测试Spring Framework 4

我在使用Servlet 2.5让Spring Framework 4与我现有的项目一起工作时遇到了问题.我的web项目实际上运行正常,但我的测试用例失败并且它是由引起MockHttpServletRequest此异常引起的: -

java.lang.NoClassDefFoundError: javax/servlet/AsyncContext
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
Run Code Online (Sandbox Code Playgroud)

我尝试添加任一依赖项,但我会得到其他与Servlet 3.0相关的异常: -

<dependency>
 <groupId>javax</groupId>
 <artifactId>javaee-api</artifactId>
 <version>6.0</version>
 <scope>test</scope>
</dependency>

<dependency>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>servlet-api</artifactId>
  <version>3.0.20090124</version>
  <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

基于Spring Framework网站,它可以与Servlet 2.5一起使用.但是,Spring 4MockHttpServletRequest似乎依赖于Servlet 3.0.

我该如何解决这个问题?谢谢.

java spring spring-test

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

为什么PHP认为依赖系统的时区是个坏主意?

我对保持PHP的时区更新感到有点恼火.我真的很喜欢我的系统上的其他所有内容都相信我正在维护系统的时区.也许可能存在以不同方式配置PHP可能有用的用例,但为什么PHP警告我依赖我的时区是不安全的?

警告:date():依赖系统的时区设置是不安全的.您需要使用date.timezone设置或date_default_timezone_set()函数.

php timezone

15
推荐指数
2
解决办法
786
查看次数

是否有一种可移植的方法来为flock()设置超时?

flock()是PHP的便携式咨询文件锁定功能.他们明确宣传它甚至可以在windows下运行:

flock()允许您执行一个简单的读/写模型,几乎可以在每个平台上使用(包括大多数Unix衍生产品甚至Windows).

我想在阻塞上设置一个便携式超时flock()(并且没有忙于等待处理该LOCK_NB选项).在UNIX中,这可以简单地通过设置警报来实现,该警报将发送SIGALRM:

pcntl_signal(SIGALRM, function() {});
pcntl_alarm(3);
try {
    if (!flock($handle, LOCK_EX)) {
        throw new \Exception("Timeout");
    }
} finally {
    pcntl_alarm(0);
    pcntl_signal_dispatch();
    pcntl_signal(SIGALRM, SIG_DFL);
}
Run Code Online (Sandbox Code Playgroud)

是否有可移植的方法来阻止阻塞flock()?如果是这样,怎么样?

php timeout flock

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

MySQL事务以及Rollback如何工作?

我刚刚遇到交易,我想知道

  1. 使用它的利弊是什么,
  2. 回滚如何工作,旧的值保存在内存中,如果更大,会发生什么?

对于1.我知道你必须将它用于银行转账,但是将它用于一切都不是更好吗?!?

mysql rdbms transactions

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

如何减少Spring内存占用

我想问你如何(或IF)可以减少Spring框架的RAM占用空间.

我创建了一个简单的helloworld应用程序来演示这个问题.只有两个类和context.xml文件:

  • Main - 使用main方法的类
  • Test - 用于模拟某些"工作"的类(无限循环中的printig Hello)

context.xml 只包含这个:

<context:component-scan base-package="mypackage" />
Run Code Online (Sandbox Code Playgroud)

测试类只包含调用的metod init,在构造后调用:

@Component
public class Test{

    @PostConstruct
    public void init() {
        Thread t = new Thread(new Runnable() {

            @Override
            public void run() {
                try {
                    while (true) {
                        System.out.println("Hello " + Thread.currentThread().getName());
                        Thread.sleep(500);
                    }
                } catch (InterruptedException ex) {
                    ex.printStackTrace();
                }
            }
        });
        t.start();
    } 
}
Run Code Online (Sandbox Code Playgroud)

我准备了两个场景,在这两个场景中,main方法只包含一行.

在第一个场景中,main方法执行此操作:(new Test()).init(); App在没有Spring的情况下工作,仅消耗aprox.8MB的RAM.

在第二个场景中,main方法包含以下内容:new ClassPathXmlApplicationContext(new String[]{"spring/context.xml"}); 因此,应用程序通过Spring容器初始化并消耗aprox.45MB内存!

有没有办法如何减少(在最好的情况下完全摆脱)这个额外的内存?到目前为止,我无法找到任何合适的解决方案.

我不介意启动时是否有额外的内存消耗 - 这很好,但在那之后,我需要我们的应用程序来减少它.

(这个问题背后的故事有点复杂,但这对我来说现在是核心问题.)

谢谢

java ram spring

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