- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的项目中的连接器有问题。我已将 MySQL 连接器添加到 Tomcat 的库以及 IntellijIDEA 中的项目路径,但问题仍然存在。 stackoverlow 中旧版本的答案在这里不起作用。 以下是项目类:
网络.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/library</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/context.xml</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
</web-app>
上下文.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/myApp" docBase="myApp"
crossContext="true" reloadable="true" debug="1">
<Resource name="jdbc/library"
global="jbc/library"
auth="Container"
type="javax.sql.DataSource"
initialSize="10"
maxTotal="100"
maxIdle="30"
maxWaitMillis="10000"
username="root"
password="admin"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/library" />
</Context>
错误.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Upss</title>
</head>
<body>
<h1>Something is wrong</h1>
<a href="index.jsp">Try again</a>
</body>
</html>
索引.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Library Viewer</title>
</head>
<body>
<h1>Biblioteka viewer</h1>
<form action="BookServlet" method="post">
<input placeHolder="ISBN" type="text" name="isbn">
<br>
<input placeHolder="Tytuł" type="text" name="title">
<br>
<input placeHolder="Opis" type="text" name="description">
<br>
Szukaj: <input type="radio" name="option" value="search"> Dodaj: <input type="radio" name="option" value="add">
Modyfikuj: <input type="radio" name="option" value="update"> Usuń: <input type="radio" name="option" value="delete">
<br>
<input type="submit" value="Wyślij">
</form>
</body>
</html>
结果.jsp
<%@page import="pl.javastart.model.Book"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% Book book = (Book)request.getAttribute("book"); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Wynik zapytania <%= request.getAttribute("option") %></h1>
<p>W wyniku Twojego zapytania otrzymano następujacy wynik:</p>
<p>Title: <%= book.getTitle() %><br>
ISBN: <%= book.getIsbn() %><br>
Descrition: <%= book.getDescription() %></p>
</body>
</html>
书.java
package pl.javastart.model;
public class Book {
private String isbn;
private String title;
private String description;
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Book(){}
public Book(String isbn, String title, String desc){
this.isbn = isbn;
this.title = title;
description = desc;
}
}
BookServlet.java
package pl.javastart.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import pl.javastart.dao.BookDAO;
import pl.javastart.model.Book;
@WebServlet("/BookServlet")
public class BookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String isbn = request.getParameter("isbn");
String title = request.getParameter("title");
String description = request.getParameter("description");
String option = request.getParameter("option");
BookDAO dao = new BookDAO();
Book book = null;
String operation = null;
boolean result = false;
if("search".equals(option)) {
book = dao.read(isbn);
result = book!=null? true:false;
operation = "search";
} else if("add".equals(option)) {
book = new Book(isbn, title, description);
result = dao.create(book);
operation = "add";
} else if("update".equals(option)) {
book = new Book(isbn, title, description);
result = dao.update(book);
operation = "update";
} else if("delete".equals(option)) {
book = new Book(isbn, title, description);
result = dao.delete(book);
operation = "delete";
}
if(book != null && result) {
request.setAttribute("option", operation);
request.setAttribute("book", book);
request.getRequestDispatcher("result.jsp").forward(request, response);
} else {
request.getRequestDispatcher("error.jsp").forward(request, response);
}
}
}
BookDAO.java
package pl.javastart.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import pl.javastart.model.Book;
import pl.javastart.util.ConnectionProvider;
public class BookDAO {
private final static String CREATE = "INSERT INTO book(isbn, title, description) VALUES(?, ?, ?);";
private final static String READ = "SELECT isbn, title, description FROM book WHERE isbn = ?;";
private final static String UPDATE = "UPDATE book SET isbn=?, title=?, description=? WHERE isbn = ?;";
private final static String DELETE = "DELETE FROM book WHERE isbn=?;";
public boolean create(Book book) {
Connection conn = null;
PreparedStatement prepStmt = null;
boolean result = false;
try {
conn = ConnectionProvider.getConnection();
prepStmt = conn.prepareStatement(CREATE);
prepStmt.setString(1, book.getIsbn());
prepStmt.setString(2, book.getTitle());
prepStmt.setString(3, book.getDescription());
int rowsAffected = prepStmt.executeUpdate();
if (rowsAffected > 0) {
result = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
releaseResources(prepStmt, null, conn);
}
return result;
}
public Book read(String isbn) {
Connection conn = null;
PreparedStatement prepStmt = null;
ResultSet resultSet = null;
Book resultBook = null;
try {
conn = ConnectionProvider.getConnection();
prepStmt = conn.prepareStatement(READ);
prepStmt.setString(1, isbn);
resultSet = prepStmt.executeQuery();
if(resultSet.next()) {
resultBook = new Book();
resultBook.setIsbn(resultSet.getString("isbn"));
resultBook.setTitle(resultSet.getString("title"));
resultBook.setDescription(resultSet.getString("description"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
releaseResources(prepStmt, resultSet, conn);
}
return resultBook;
}
public boolean update(Book book) {
Connection conn = null;
PreparedStatement prepStmt = null;
boolean result = false;
try {
conn = ConnectionProvider.getConnection();
prepStmt = conn.prepareStatement(UPDATE);
prepStmt.setString(1, book.getIsbn());
prepStmt.setString(2, book.getTitle());
prepStmt.setString(3, book.getDescription());
prepStmt.setString(4, book.getIsbn());
int rowsAffected = prepStmt.executeUpdate();
if (rowsAffected > 0) {
result = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
releaseResources(prepStmt, null, conn);
}
return result;
}
public boolean delete(Book book) {
Connection conn = null;
PreparedStatement prepStmt = null;
boolean result = false;
try {
conn = ConnectionProvider.getConnection();
prepStmt = conn.prepareStatement(DELETE);
prepStmt.setString(1, book.getIsbn());
int rowsAffected = prepStmt.executeUpdate();
if (rowsAffected > 0) {
result = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
releaseResources(prepStmt, null, conn);
}
return result;
}
private void releaseResources(PreparedStatement prepStmt, ResultSet res,
Connection conn) {
try {
if (prepStmt != null && !prepStmt.isClosed()) {
prepStmt.close();
}
if (res != null && !res.isClosed()) {
res.close();
}
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
ConnectionProvider.java
package pl.javastart.util;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class ConnectionProvider {
private static DataSource dataSource;
public static Connection getConnection() throws SQLException {
return getDSInstance().getConnection();
}
private static DataSource getDSInstance() {
if(dataSource == null) {
try {
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
dataSource = (DataSource) envContext.lookup("jdbc/library");
} catch (NamingException e) {
e.printStackTrace();
}
}
return dataSource;
}
}
道.iml
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<descriptors>
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" />
</descriptors>
<webroots>
<root url="file://$MODULE_DIR$/web" relative="/" />
</webroots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="PROVIDED" name="Tomcat 9.0.0.M9" level="application_server_libraries" />
<orderEntry type="library" name="mysql-connector-java-5.1.39-bin" level="project" />
</component>
</module>
最佳答案
在 context.xml 中
<Resource name="jdbc/library"
global="jbc/library"
...
看起来 global
键的值可能缺少一个字母。
换句话说,我在网上找到的所有 getConnection()
示例都有一个字符串参数作为 url,例如this Mkyong article ,但在您的代码中没有任何地方看起来像那样。当您调试 ConnectionProvider.getConnection()
时,它实际上返回任何内容吗?
关于JavaEE/Tomcat 9.0.0/IntellijIdea 2016.2 : java. sql.SQLException:无法为连接 URL '' 创建类 'null' 的 JDBC 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39398893/
当我在 IntellijIDEA 中工作时,我如何告诉它忽略可能有问题的类文件并且我想暂时 hibernate ? 当我编译我正在处理的任何类时它都会抛出错误,直到我修复第一个“hibernate ”
Intellij Idea scala 插件会自动以灰色显示方法的返回类型,这在大多数情况下很烦人。 如何抑制此功能 最佳答案 此功能已在 IntelliJ IDEA 2018.1 中添加 The e
我尝试从 bin 文件夹运行 idea 批处理文件,它成功了。但我不想通过批处理文件打开。 最佳答案 欢迎来到 Stack Overflow。 请确保JAVA_HOME变量在环境变量中定义。看起来当前
我使用的是 IntellijIDEA 终极版。浏览从 java 源代码编译的 .class 文件很容易:我只需双击 .class 文件,IDEA 就会反编译它。 但是,对于从 scala 源代码编译的
对于我的一些模块,Intellij IDEA 没有导入依赖项和插件。只是导入实时循环。 当我在命令行上编译时,poms 是有效的。我删除了模块并重新导入了它们。我删除了他们的项目并重新导入。 所以我想
我想在我现有的 python django 项目中使用 Intellij Idea,该项目是在 ubuntu 的虚拟环境中构建的。如何配置 Intellij Idea 以使用虚拟环境的库? 最佳答案
过去几年我一直在使用 XCode 和 Objective-C 工作,但我知道一旦我必须转向 Eclipse 或类似的 Java 项目。案例是,我并不是特别喜欢Eclipse,这导致我使用了一个新的开发
有没有人知道 IntelliJ IDEA 的插件,它可以设计 UML 图,同时考虑 hibernate/jpa 注释? 我知道 Ctrl+ShifAlt+U 可以创建数据分类图,但它不会向您显示一对多
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在从 Eclipse 迁移到 Intellij Idea。当我在 Intellij Idea 中而不是在 Eclipse 中运行测试时,我得到了图像中显示的错误。测试在 Eclipse 中运行良好
我只是想尝尝 Kotlin 协程。不幸的是,我一直无法使用图书馆 kotlinx在 IntelliJ .我已通过 Maven 下载了该库. 尝试使缓存无效。 重建项目。 尝试在新项目中使用它。 偶In
我创建了一个新的 Intellij 项目。但我无法在我的项目中使用第三方jar。我的目录结构如下: repository/commons-logging/commons-logging-1.0.4.j
我正在寻找类似于 RStudio-server ( r-studio ) 的东西,但用于 Java/Scala 编程。通过网页访问的 RStudio-server 与桌面版本相同。 考虑到我的问题是运
我正在尝试在intellij上运行JavaFX应用程序,但无论我尝试什么,我都无法让它工作,并且已经尝试了几个小时。我现在正处于这个阶段,每当我尝试运行时都会收到此错误。 Error: Could n
Intellij Idea 无法识别 Play Framework 依赖项,因此我的项目可以正常运行。我已经为我的 intellij idea 13 安装了 Play 2.0 support 插件。我
我的 IDE Idea 2016.1 遇到问题 它说: Error running run spring: Cannot load /home/sergei-rudenkov/.IntelliJIde
我已经有一段时间没有使用 Java 了,今天我想重新开始使用它。所以我将我的 IDE (IntellijIDEA) 更新为 2019.1.3 version 1,我下载了Java 12 .然后我继续卸
我想在安装了 Resharper8 的 VS2012 Debug模式下在运行时评估表达式。 IntellijIdea 在 JAVA Debug模式下提供此功能。因为我们可以选择一个有意义的完整代码表达
我有大 chalice 项目(五个模块 + 2 个自定义无预编译插件)。 起初 - 由于 javac 内存不足,编译失败。我添加为参数: -J-Xmx1024m -J-Xms512m -J-XX:M
我创建了一个 IntelliJIdea 插件,使用 plugin.xml 中的 Action 条目,例如 使用此设置
我是一名优秀的程序员,十分优秀!