小编Gop*_*opi的帖子

使用Oracle序列将日志ID从jdbc插入2个表?

我正在使用oracle序列将log id插入tableA,如下所示,

String SQL_PREP_INSERT = "INSERT INTO tableA (LOG_ID,USER_ID,EXEC_TIME) VALUES"
            + " (logid_seq.nextval, ?, ?)";
Run Code Online (Sandbox Code Playgroud)

然后获取最近插入的值,

String SQL_PREP_SEL = "SELECT max(LOG_ID) FROM tableA ";

stmt = con.prepareStatement(SQL_PREP_SEL);
stmt.execute();
ResultSet rs = stmt.getResultSet();
if (rs.next()) {
logid = rs.getInt(1);
}
Run Code Online (Sandbox Code Playgroud)

并将其插入tableB,

String SQL_PREP_INSERT_DETAIL = "INSERT INTO tableB (LOG_ID, RESPONSE_CODE, RESPONSE_MSG) VALUES"
                + " (?, ?)";

        stmt = con.prepareStatement(SQL_PREP_INSERT_DETAIL);
        stmt.setInt(1, logid);
        stmt.setString(2, respCode);
        stmt.setString(3, respMsg);
        stmt.execute();
Run Code Online (Sandbox Code Playgroud)

有没有办法在Java而不是Oracle中生成序列并一次插入到两个表中,而不是从tableA中选择并插入到tableB中?

java oracle sequences jdbc

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

使用replaceAll或Pattern Matcher替换字符串

我需要更换一个字符串,例如"上午8:00 - 下午5:00"和"美国东部时间上午8:00 - 东部时间下午5:00"

我尝试了以下代码,但它不起作用......

time.replaceAll("AM", "AM ET");
time.replaceAll("PM", "PM ET");
convertedTime = time;
System.out.println(convertedTime); // didnt get replaced
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方式和它的工作,但没有得到正确的替换,

Pattern p = Pattern.compile("(AM)");
Matcher m = p.matcher(time);
StringBuffer sb = new StringBuffer(); 
while(m.find()) {
    m.appendReplacement(sb, "AM ET");
    } 
m.appendTail(sb); 
p = Pattern.compile("(PM)");
m = p.matcher(time);
while(m.find()) {
    m.appendReplacement(sb, "PM ET");
    } 
m.appendTail(sb); 

System.out.println("sb: " + sb); // coming as sb: 8:00 AM ET - 5:00 PM8:00 AM - 5:00 PM ET
Run Code Online (Sandbox Code Playgroud)

请让我知道为什么第一种方法不起作用,如果有可能在第二种方法中纠正.

java string replace

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

标签 统计

java ×2

jdbc ×1

oracle ×1

replace ×1

sequences ×1

string ×1