如何从命令行调用存储过程?
我有一个程序:
CREATE DEFINER=`root`@`localhost` PROCEDURE `insertEvent`(IN `dateTimeIN` DATETIME)
NO SQL
BEGIN
SET @eventIDOut = NULL;
IF EXISTS(SELECT * FROM `events` WHERE `eventDate` = dateTimeIN) THEN
SELECT `eID` INTO @eventIDOut FROM `events` WHERE `eventDate` = dateTimeIN LIMIT 1;
ELSE
INSERT INTO `events` (`eventDate`) VALUES(dateTimeIN);
SET @eventIDOut = last_insert_id();
END IF;
SELECT CONCAT(@eventIDOut);
END
Run Code Online (Sandbox Code Playgroud)
我试过这个: mysql> CALL insertEvent(2012.01.01 12:12:12);
结果:
错误1064(42000):您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在第1行的".01 12:12:12"附近使用正确的语法
还有这个: mysql> CALL insertEvent
-> 2012.01.01 12:12:12;
结果:
错误1064(42000):您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第2行的"2012.01.01 12:12:12"附近使用正确的语法
我有一个站点,它成功地将第一个斜杠后的内容传递给指定的.php文件.(优雅地:删除".php")
site.com/azamat to site.com/azamat.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC]
Run Code Online (Sandbox Code Playgroud)
如何向这些规则添加其他参数,以便我可以传递"页面"参数,例如:
site.com/azamat/bagatov to site.com/azamat.php?page=bagatov
要么
site.com/thisisthefile/andparams to site.com/thisisthefile.php?page=andparams
想象一下这样的情况:我有一个HashMap<Integer, String>,我在其中存储连接的客户端。是的HashMap,因为顺序无关紧要,我需要速度。它看起来像这样:
{
3: "John",
528: "Bob",
712: "Sue"
}
Run Code Online (Sandbox Code Playgroud)
大多数客户端断开连接,所以这就是为什么我有很大的差距。如果我想添加一个新客户端,我需要一个密钥,显然_map.size()获取密钥的用法是不正确的。
所以,目前我使用这个函数来获取最低可用键:
private int lowestAvailableKey(HashMap<?, ?> _map) {
if (_map.isEmpty() == false) {
for (int i = 0; i <= _map.size(); i++) {
if (_map.containsKey(i) == false) {
return i;
}
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在某些情况下,这真的很慢。有没有更快或更专业的方法来获得 a 的最低自由键HashMap?
我想为我网站上的某个“/interface” URL 启用 POST 请求。我已经成功地通过存在Class<?>[] getRootConfigClasses()的指定 CSP 标头加载了该类HttpSecurity http。
每当我向 提出请求时/interface,我都会得到HTTP 403。
@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter
{
@Override
protected void configure(HttpSecurity http) throws Exception
{
http
.authorizeRequests().antMatchers(HttpMethod.POST, "/interface").permitAll().and()
.headers()
.contentTypeOptions().and()
.cacheControl().and()
.httpStrictTransportSecurity().and()
.frameOptions().and()
.contentSecurityPolicy("the csp header. it is present on every response.");
}
}
Run Code Online (Sandbox Code Playgroud) 我有以下 Dockerfile
FROM gradle:jdk13 AS appbuild
WORKDIR "/home/gradle/"
COPY --chown=gradle:gradle "./build.gradle" "/home/gradle/"
RUN gradle dependencies
COPY --chown=gradle:gradle "./src/" "/home/gradle/src/"
RUN gradle build --info
FROM openjdk:13
ENV LANG en_US.UTF-8
COPY --from=appbuild "/home/gradle/build/libs/frontend.jar" "/frontend.jar"
CMD ["java", "-jar", "-Dspring.profiles.active=default", "/frontend.jar"]
Run Code Online (Sandbox Code Playgroud)
我的目标是在每次构建 docker 镜像时防止 gradle 下载依赖项。
该命令会gradle dependencies下载所有必需的 Java 库,以防它们丢失。
在第一个gradle dependencies命令之前,我只复制了 build.gradle 以便只下载依赖项并缓存它们。
当我运行gradle build命令时,它为什么要再次下载所有文件?它们已经存在于其中一层中。
我试过用RUN gradle clean build --info || return 0而不是gradle dependencies,都是一样的。
我有一个时间戳:200212312359
我怎么能把它拆分成2012.12.31.23.59
简单的方法是.split("(?<=\\G.{2})"),然后结合阵列的前2个元素,但我想知道是否有任何更专业的解决方案.
java ×3
.htaccess ×1
build ×1
call ×1
command-line ×1
dependencies ×1
docker ×1
gradle ×1
hashmap ×1
http ×1
key ×1
multistage ×1
mysql ×1
php ×1
procedure ×1
query-string ×1
regex ×1
rewrite ×1
split ×1
spring ×1