Java JDBC,连接正常,但不执行查询
我正在用mysql连接编写一个小程序。我必须把数据插入数据库。连接正常,但当我尝试执行查询时,它不起作用。executeQuery()语句之后的所有语句都不起作用Java JDBC,连接正常,但不执行查询,java,mysql,servlets,jdbc,Java,Mysql,Servlets,Jdbc,我正在用mysql连接编写一个小程序。我必须把数据插入数据库。连接正常,但当我尝试执行查询时,它不起作用。executeQuery()语句之后的所有语句都不起作用 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException { response.setCon
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, SQLException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
Connection connect=null;
PreparedStatement preparedStatement;
String JDBC_DRIVER="com.mysql.jdbc.Driver";
String DB_URL="jdbc:mysql//localhost/jarvis";
String USER = "test";
String PASS = "test";
try{
Class.forName(JDBC_DRIVER);
connect = DriverManager.getConnection(DB_URL, USER, PASS);
}
catch(ClassNotFoundException e){
out.println("Errore: "+e);
} catch (SQLException ex) {
Logger.getLogger(Prova.class.getName()).log(Level.SEVERE, null, ex);
}
out.println();
out.println("qui");
String query = "INSERT INTO users(Nome, Cognome, Username, Password) values(?, ?, ?, ?)";
try (PreparedStatement insert = connect.prepareStatement(query)) {
insert.setString(1, "name");
insert.setString(2, "sur");
insert.setString(3, "gvhgv");
insert.setString(4, "qfwe");
insert.executeUpdate();
}
catch(Exception e){
out.println("Errore "+e);
}
out.println("Fine");
}
在executeQuery上,它停止工作,不会将值插入数据库
附言:对不起我的英语
首先,您的JDBC连接URL错误,应该是这样的
String DB_URL = jdbc:mysql://localhost/jarvis
与此相反:
String DB_URL = jdbc:mysql//localhost/jarvis
当你对任何事情有疑问时,你都可以遵循规则
请注意,如果跳过该端口,则不必提及该端口,它将默认为MySQL的默认端口3306
其次,使用executeUpdate()
方法代替executeQuery
方法。最好是分块测试代码,比如数据库连接成功,能够从底层数据库检索数据,然后插入数据库
或者更好的方法是调试代码,至少提供您现在所得到的NullPointerException
的位置
编辑:
如果您使用IDE(然后在其构建路径中)和CLASSPATH全局变量(用于不使用IDE时的引用),则必须使JDBC连接器/J jar可供代码访问。如果您不打算经常更改这些依赖项,那么最好将其放在类路径上
希望这有帮助 检查错误消息,确保您的用户有权插入指定的目标。如果有效,您可以手动执行此操作吗?必须引发异常@
stmt.executeQuery
。是的,查询在mysql standalone中有效,但在程序中无效。如何查看错误消息?我正在使用netbeansTry使用executeUpdate
而不是executeQuery
。还要添加提交。端口在url中是可选的,因此jdbc:mysql://localhost/jarvis
(mysql后面加冒号,不带端口)也是有效的。是@MarkRotteveel,我在回答中确实提到了这一点!我看到的问题是它偏离了真正的问题:如果还有5个字符的差异,那么很容易忽略这个冒号。@francescopioGaglione,你的问题用答案解决了吗!