gpt4 book ai didi

mysql - 如何在 TomEE 管理的数据源连接上创建语句?

转载 作者:行者123 更新时间:2023-11-30 22:23:35 24 4
gpt4 key购买 nike

我在 Eclipse 中工作。我已经添加了一个启动良好的 TomEE 服务器,但似乎在创建 MySQL 数据源时出现问题。

我在 TomEE 1.7.2 中定义了以下数据源:

<Resource id="jdbc/WCMDS" type="javax.sql.DataSource">
jdbcDriver com.mysql.jdbc.Driver
jdbcUrl jdbc:mysql://localhost:3306/wcm?useUnicode=yes&amp;characterEncoding=utf8&amp;autoReconnect=true
jtaManaged false
password pass
userName user
InitialSize 50
MaxActive 100
MaxIdle 3
</Resource>

在我的 bean 中,我检索数据源

@PostConstruct
public void postConstruct() {
InitialContext context = new InitialContext();
String dataSourceName="java:/comp/env/"+getDatasourceJndiName();
DataSource dataSource = (DataSource) context.lookup(dataSourceName);
DATASOURCE = dataSource;

在执行查询的 bean 方法中,我使用检索到的 DataSource 来获取连接。

Connection connection = DATASOURCE.getConnection();

然后我构建一个 PreparedStatement

connection.prepareStatement("select * from myTableName");

在准备语句时,我遇到了 javax.el.E​​LException: org.hsqldb.HsqlException: user lacks privilege or object not found: myTableName

============================================= ==============

请注意,这不是数据库方面的问题。当我用手动创建的数据源替换 jndi 查找时,一切正常。

MysqlDataSource datasource = new MysqlDataSource();
datasource.setURL("jdbc:mysql://localhost:3306/wcm?useUnicode=yes&amp;characterEncoding=utf8&amp;autoReconnect=true");
datasource.setUser("user");
datasource.setPassword("pass");
DATASOURCE=datasource;

============================================= ==============

所以我得到的错误一定与 TomEE 管理的数据源有关。为什么来自此类数据源的连接会阻止我创建语句?

最佳答案

资源尚未创建,您获得的是默认的 hsqldb 数据源。

你在conf/tomee.xml中定义了吗?

提示:您可以在openejb中使用JMX控制台检查配置的数据源

关于mysql - 如何在 TomEE 管理的数据源连接上创建语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36002439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com