链接数据库出错了,不知道怎么回事??
我在index.jsp上写了一个表单
<form action="/jdbc/servlet/Jdbc" method="post"> ID<input type="text" name="id"> NAME<input type="text" name="user"> <input type="submit" value="submit"> </form>
String id=request.getParameter("id"); String name=request.getParameter("user"); String db="com.mysql.jdbc.Driver"; String dbName="jdbc:mysql://localhost:3306/student"; String dbUser="root",dbPass="itelly"; String sql="INSERT INTO STUDENT VALUES("+id+","+name+")"; Connection connection=null; Statement statement=null; try { Class.forName(db); connection=DriverManager.getConnection(dbName, dbUser, dbPass); statement=connection.createStatement(); statement.executeUpdate(sql); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ try { statement.close(); connection.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1813)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
[解决办法]
这个错很简单
从这代码可以看出 : String sql="INSERT INTO STUDENT VALUES("+id+","+name+")";
如果 我的 id=1,name=adf 那么组合成的字符串就是
INSERT INTO STUDENT VALUES(1,adf ) 你可以尝试去执行这句SQL,肯定会报错
正确的写法应该是 INSERT INTO STUDENT VALUES(1,'adf' ); --数字类型可以不用加单引号
所以
应该是 String sql="INSERT INTO STUDENT VALUES("+id+",'"+name+"')";
[解决办法]
遇见这种数据库语句的问题,考虑到语句有字符串的的拼接,你可以用
System.out.print(sql);先将你的语句输出,这样就很容易发现有没有错误。