-
用jdbc连接操作mysql 语法问题0
如题
错误代码如下:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?,english_name=?,sex=?,age=?,birthday=?,description=? WHERE id=?' at line 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1049)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3609)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3541)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2002)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2163)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2618)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1749)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1666)
at org.apache.jsp.operatePerson_jsp._jspService(operatePerson_jsp.java:223)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
程序代码如下:
String id = request.getParameter("id");
String sql = "UPDATE tb_person SET name=?,english_name=?,sex=?,age=?,birthday=?,description=? WHERE id=?";
Connection conn = null;
PreparedStatement ps = null;
try {
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/databaseWeb?characterEncoding=UTF-8","root","root");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date d = new java.sql.Date(sdf.parse(birthday).getTime());
ps = conn.prepareStatement(sql);
ps.setString(1, toSQlString(name));
ps.setString(2, toSQlString(englishName));
ps.setString(3, toSQlString(sex));
ps.setInt(4, Integer.parseInt(age));
ps.setDate(5, d);
ps.setString(6, toSQlString(description));
System.out.println(id);
ps.setInt(7, Integer.parseInt(id));
int result = ps.executeUpdate(sql);
2012年7月25日 22:46
5个答案 按时间排序 按投票排序
-
看看这个或许有帮助,应该是你的字段使用了mysql的关键字http://hi.baidu.com/wuguohu/blog/item/873b7c31bdb2931deac4af80.html/cmtid/f9f8bfa1830c269b46106441
2012年7月26日 11:12
-
试试这个:
package com.xawx.db; import java.sql.*; public class DB { private final String DRIVER="com.mysql.jdbc.Driver"; private final String URL="jdbc:mysql://192.168.1.54:3306/weibo"; private final String USERNAME="root"; private final String USERPASS="123456"; private Connection conn=null; public DB(){ try { Class.forName(DRIVER); System.out.println("数据库驱动加载成功!"); } catch (ClassNotFoundException e) { System.out.println("数据库驱动加载失败!"); } } public Connection getConnection(){ try { conn=DriverManager.getConnection(URL, USERNAME, USERPASS); System.out.println("数据库连接成功!"); } catch (SQLException e) { System.out.println("数据库连接失败!"); } return conn; } public void closeConnection(){ if(conn!=null){ try { conn.close(); } catch (SQLException e) { System.out.println("数据库关闭失败!"); }finally{ conn=null; } } } } public int Update(){ DB db=new DB(); int temp=0; String sql = "UPDATE tb_person SET name=?,english_name=?,sex=?,age=?,birthday=?,description=? WHERE id=?"; try { PreparedStatement pps=db.getConnection().prepareStatement(sql); pps.setString(1, toSQlString(name)); pps.setString(2, toSQlString(englishName)); pps.setString(3, toSQlString(sex)); pps.setInt(4, Integer.parseInt(age)); pps.setDate(5, d); pps.setString(6, toSQlString(description)); System.out.println(id); ps.setInt(7, Integer.parseInt(id)); int result = ps.executeUpdate(sql); temp=pps.executeUpdate(); System.out.println("更新成功!"); db.closeConnection(); } catch (SQLException e) { System.out.println("更新失败!"); } return temp; }
2012年7月26日 09:34
-
你这样貌似sql中name是关键字
你先修改部分字段
UPDATE tb_person SET english_name=?,sex=?,age=?,birthday=?,description=? WHERE id=?
在mysql查询分析器中开能正常修改不,如果能,那么就是name关键字的问题了
如果是
UPDATE tb_person SET [name]=?,english_name=?,sex=?,age=?,birthday=?,description=? WHERE id=?2012年7月25日 23:12
相关推荐
MySQL JDBC 连接器,全称...总之,MySQL JDBC连接器是Java开发者不可或缺的工具,它使得我们可以方便地在Java应用中集成MySQL数据库,实现各种复杂的数据库操作,同时也需要我们关注其版本特性、性能优化以及安全实践。
这是一个小型的Web应用,旨在通过JDBC接口与MySQL数据库交互,实现数据的增、删、改操作,而没有使用Servlet作为控制器。下面我们将详细探讨这三个关键点。 **1. JDBC** JDBC是Java平台中用于与各种类型数据库通信...
在PowerBuilder中使用JDBC连接MySQL时遇到无法使用`COUNT(*)`和`MAX()`等问题,通常是由以下几个原因造成的: 1. **MySQL服务器设置问题**:MySQL服务器可能存在某些配置或设置导致了这些问题。例如,如果服务器...
本文将详细解析如何使用JDBC来连接并操作Oracle 11g和MySQL 5数据库,涉及的主要知识点包括参数传递、反射、读取属性文件、预处理语句、批处理、带参数的存储过程、事务管理和可滚动/可更新的结果集。 首先,JDBC...
通过示例代码,开发者可以了解如何使用MySQL Connector/J实现各种数据库操作,包括连接数据库、执行SQL语句、处理存储过程以及获取自增字段值等。 5. 参考信息。文档提供了关于驱动程序/数据源类名、URL语法和配置...
MySQL的JDBC驱动包是Java开发中连接MySQL数据库的关键组件,它允许Java应用程序通过Java Database Connectivity (JDBC) API与MySQL服务器进行交互。在本文中,我们将深入探讨MySQL JDBC驱动的工作原理、安装过程、...
**JDBC for MySQL 5.1.6** ...总结,JDBC for MySQL 5.1.6提供了高效、安全的Java到MySQL数据库的连接方式,通过优化的API和驱动,开发者可以轻松地实现数据操作,同时享受到MySQL 5.1.6版本带来的诸多新特性和改进。
总的来说,MySQL JDBC连接驱动包是Java应用连接MySQL数据库的必备组件,它的正确配置和使用对于基于Java的MySQL数据库应用至关重要。在实际开发中,我们需要确保驱动版本与MySQL服务器版本兼容,同时理解JDBC的基本...
开发者可以通过将这些jar文件添加到项目的类路径中,以便在运行时使用MySQL或Oracle的JDBC驱动进行数据库操作。 综上所述,这些知识点涉及Java数据库编程、JDBC接口、MySQL Connector/J驱动和Oracle JDBC驱动。对于...
### JDBC连接MySQL教程知识点...通过本教程,我们学习了如何使用JDBC连接MySQL数据库,包括环境的配置、驱动的下载与配置、基本的数据库操作以及需要注意的安全性问题。这些知识点对于使用Java进行数据库开发非常关键。
在本文中,我们将深入探讨如何使用JDBC连接Oracle、MySQL和SQLServer这三种常见的数据库。 首先,让我们详细了解一下JDBC连接Oracle数据库的过程: 1. **添加驱动**:为了与Oracle数据库通信,你需要在Java项目中...
MySQL JDBC驱动,全称为MySQL Connector/J,是MySQL官方提供的用于Java应用程序与MySQL数据库进行交互的Java Database Connectivity (JDBC) 驱动程序。这个驱动允许Java开发者通过编写Java代码来执行SQL语句,实现对...
MySQL JDBC Jar包是Java开发者连接MySQL数据库的重要工具,它提供了Java应用程序与MySQL数据库之间的桥梁,使得数据操作变得简单而高效。在Java编程中,JDBC(Java Database Connectivity)是Java平台的标准接口,...
通常,我们使用JDBC来连接和操作关系型数据库,如Oracle、MySQL等。然而,JDBC不仅可以用于传统的关系数据库,还可以通过扩展来连接非关系型数据存储系统,比如LDAP(Lightweight Directory Access Protocol)目录...
本教程将专注于使用Java的JDBC(Java Database Connectivity)接口来实现MySQL数据库之间的迁移,以及分表数据的迁移。 首先,JDBC是Java语言访问数据库的标准API,它允许Java程序与各种数据库进行交互,包括MySQL...
本文将详细解析如何在Java中使用JDBC来连接并操作不同类型的数据库,包括Oracle、DB2、SQL Server、Sybase、Informix、MySQL以及PostgreSQL。 ### 1. Oracle数据库 为了通过JDBC连接到Oracle数据库,首先需要加载...
标题中的“jdbc 连接各种数据库...总的来说,学习JDBC连接各种数据库涉及Java编程基础、SQL语法、数据库理论以及Java的异常处理和资源管理。深入理解这些概念,结合实际的项目练习,可以提升你在数据库开发领域的技能。
当我们要使用JDBC来连接Oracle或MySQL数据库时,需要引入对应的数据库驱动(JDBC Driver)jar包。本篇文章将详细介绍如何使用这些jar包以及它们在数据库连接中的作用。 首先,Oracle数据库的JDBC驱动通常被称为...
连接池在JDBC中扮演着重要的角色,它提高了数据库操作的性能和效率。 一、C3P0连接池 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0的主要特点包括: 1. **自动...
总的来说,`mysql-connector-java-5.1.35`是Java开发者与MySQL数据库交互的重要工具,它的使用涉及到了Java的数据库编程、JDBC规范、数据库连接管理以及数据库操作等多个方面,是Java后端开发的基础技能之一。在使用...