繁体   English   中英

Java EE-无法通过IntelliJ上的JDBC连接到数据库

[英]Java EE - Can't connect to database via JDBC at IntelliJ

我在尝试通过Java EE Web应用程序中的JDBC连接到PostgreSQL数据库时遇到问题。 我将显示的相同代码适用NetbeansEclipse ,但不适用于IntelliJ。

我的Java EE应用程序具有以下servlet:

PrintWriter writer = response.getWriter();
writer.println("<!DOCTYPE HTML>");
writer.println("<html>");
writer.println("<body>");
writer.println("<h1>TEST H1</h1>");
writer.println("<ul>");
writer.println("<li>TESTE LI</li>");
writer.println("<p>" + ConexaoBD.getName() + "</p>");
writer.println("</ul>");
writer.println("</body>");
writer.println("</html>");

我正在使用方法getName()链接到名为“ ConexaoBD”的类,该方法从数据库表返回一个字符串(仅用于测试)。

这是我的方法getName()。 它适用于控制台应用程序,但不适用于Java EE。

Connection con = null;
Class.forName("org.postgresql.Driver");
Properties props = new Properties();
String url = "jdbc:postgresql://localhost/customers";
props.setProperty("user","postgres");
props.setProperty("password","pass");
props.setProperty("ssl","true");
con = DriverManager.getConnection(url, props);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from table limit 1");
return rs.getString(2);

这不是您连接到Java EE应用程序中的数据库的方式。

通常,您将拥有类似于以下内容的代码:

 public class SomeService {

      @Resource(name="java:global/jdbc/myDataSource")
      private DataSource ds;

      public String performSomeQuery(...) {

          try (Connection con = ds.getConnection();
               Statement st = con.createStatement()) {
              ResultSet rs = st.executeQuery("select * from table limit 1");
              return rs.getString(2);
          }

      }

 }

name="java:global/jdbc/myDataSource"的数据源是根据其文档在应用程序服务器中配置的。 此配置将包括诸如JDBC URL和身份验证信息之类的内容。

您可以发布错误堆栈跟踪。 同时检查驱动程序jar是否已适当地添加到classpath(Lib文件夹)中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM