当SQLEXCEPTION发生时,如何在MySQL存储过程中获取错误文本?
我需要这样的东西:
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
INSERT INTO my_log (error_message)
VALUES (SQLEXCEPTION.message);
END;
Run Code Online (Sandbox Code Playgroud) 如何在多个数据库上授予?MySQL的.
就像是
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE
ON 'databasesprefix%'.*
TO testuser@localhost IDENTIFIED BY 'testpasswd';
Run Code Online (Sandbox Code Playgroud) 在相同的数据上有时会抛出异常java.sql.SQLException:ORA-01002:fetch不按顺序,但在大多数尝试中一切正常.
在Glassfish 3.1.2.2上运行的Java应用程序.任何人都可以解释一下,问题出在哪里?
@Singleton
@LocalBean
@Startup
@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
public class MarketCodesSingleton {
@Resource(mappedName="jdbc/sss")
private DataSource source;
private volatile static Map<Interval, String> marketCodes;
@PostConstruct
@Schedule(minute="*/10", hour="*")
public void fillMarketCodes() {
try(Connection conn = source.getConnection()) {
Map<Interval, String> marketCodesInt = new TreeMap<>();
DaoFactory.getMarketCodesDao().fillMarketCodes(marketCodesInt, conn);
marketCodes = Collections.unmodifiableMap(marketCodesInt);
Logger.getLogger(getClass().getName()).log(Level.FINE, "MarketCodes updated");
} catch (SQLException e) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, "fillMarketCodes exception",e);
throw new EJBException("fillMarketCodes exception",e);
}
}
public String getMarketCode(Long msisdn) {
Interval interval = new Interval(msisdn);
return marketCodes.get(interval);
}
}
Run Code Online (Sandbox Code Playgroud)
DaoFactory.getMarketCodesDao()fillMarketCodes:
private static final String …Run Code Online (Sandbox Code Playgroud) 我不明白,为什么下面的代码打印0.0.9.229而不是127.0.0.1.任何人都可以告诉我,热门解决这个问题吗?
String ha = InetAddress.getLocalHost().getHostAddress();
System.out.println(ha);
Run Code Online (Sandbox Code Playgroud)
UPD:在Ubuntu上运行的代码
/ etc/hosts文件
127.0.0.1 localhost
127.0.1.1 2533
Run Code Online (Sandbox Code Playgroud) 我在Netbeans中创建名为TestA的新war-app.然后,我创建了新的Glassfish部署描述符glassfish-web.xml,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
<context-root>/new_context_root</context-root>
</glassfish-web-app>
Run Code Online (Sandbox Code Playgroud)
然后我将我的应用程序部署到GF.Context Root Still/TestA,而不是/ new_context_root.为什么?
Glassfish版本是3.1.2.2
UPD
如果我通过autodeploy文件夹进行部署,则上下文根目录会正常更改,但不会从Web管理员更改
@Singleton
@LocalBean
@Startup
@ConcurrencyManagement(ConcurrencyManagementType.BEAN)
public class DeliverersHolderSingleton {
private volatile Map<String, Deliverer> deliverers;
@PostConstruct
private void init() {
Map<String, Deliverer> deliverersMod = new HashMap<>();
for (String delivererName : delivererNames) {
/*gettig deliverer by name*/
deliverersMod.put(delivererName, deliverer);
}
deliverers = Collections.unmodifiableMap(deliverersMod);
}
public Deliverer getDeliverer(String delivererName) {
return deliverers.get(delivererName);
}
@Schedule(minute="*", hour="*")
public void maintenance() {
init();
}
}
Run Code Online (Sandbox Code Playgroud)
单例用于存储数据。数据每分钟更新一次。从不可修改的映射中读取是否有可能会出现同步问题?是否有可能在 init 方法中发生重新排序,并且将发布到集合的链接,但集合未完全填充?
java ×3
glassfish ×2
mysql ×2
concurrency ×1
database ×1
grant ×1
host ×1
inetaddress ×1
ip ×1
jakarta-ee ×1
java-ee ×1
jdbc ×1
localhost ×1
oracle ×1
transactions ×1
unmodifiable ×1
war ×1