java---JDBC--mysql

阿拉斯猪饲养员 2016-04-29 12:06:42
package com.test2;
/**
* 连接数据库的类
* @author lenovo
*
*/
import java.sql.*;
public class JDBCConn {
public static Connection ct=null;
public static Statement st=null;
public static ResultSet rs=null;
public static PreparedStatement ps=null;
String driver="com.mysql.jdbc.Driver";
String url="jdbc:mysql://127.0.0.1:3306/pet";
String user="root";
String passwd="123456";
public ResultSet query(){
try {

//加载驱动
Class.forName(driver);

//得到连接
ct=DriverManager.getConnection(url,user,passwd);
System.out.println("****************************");
//创建st
st=ct.createStatement();
//执行操作
String sql="select * from pets";
rs=st.executeQuery(sql);


} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}

public boolean updateData(String sql,String[] paras){
boolean b=true;
try {
//加载驱动
Class.forName(driver);

//得到连接
ct=DriverManager.getConnection(url,user,passwd);
System.out.println("****************************");
//创建st
ps=ct.prepareStatement(sql);

for(int k=0;k<paras.length;k++){
ps.setString(k+1, paras[k]);
}
if(ps.executeUpdate(sql)!=1){
b=false;
}
} catch (Exception e) {
b=false;
e.printStackTrace();
}
return b;
}


}



//测试类
package com.test2;

import java.sql.*;

public class JdbcC {
public static void main(String[] args) {
JDBCConn j=new JDBCConn();
String sql="insert into pets values(?,?,?,?,?)";
String[] paras={"5","溜溜","100","100","狗"};
if(j.updateData(sql, paras)){
System.out.println("添加成功!!!!");
}
}
}




、、、
///报错
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 '?,?,?,?,?)' at line 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3170)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1316)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1235)
at com.test2.JDBCConn.updateData(JDBCConn.java:55)
at com.test2.JdbcC.main(JdbcC.java:31)

//



加断点调试,结果显示
执行完

直接异常???

...全文
164 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
默默a20 2016-04-30
  • 打赏
  • 举报
回复
String sql="insert into PERSON values(?,?,?,?,?,?)"; Connection cnn=Conn(); try { PreparedStatement preStmt=cnn.prepareStatement(sql); preStmt.setString(1,"8"); preStmt.setString(2,"lal"); preStmt.setString(3,"sa"); preStmt.setInt(4,32); preStmt.setString(5,"sda"); preStmt.setInt(6,124353); preStmt.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } 这样试试
默默a20 2016-04-30
  • 打赏
  • 举报
回复
String sql="insert into PERSON values(?,?,?,?,?,?)"; Connection cnn=Conn(); try { PreparedStatement preStmt=cnn.prepareStatement(sql); preStmt.setString(1,"8"); preStmt.setString(2,"lal"); preStmt.setString(3,"sa"); preStmt.setInt(4,32); preStmt.setString(5,"sda"); preStmt.setInt(6,124353); i=preStmt.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } 这样试试
  • 打赏
  • 举报
回复
sql问题。。。。
lanseyanlei1 2016-04-29
  • 打赏
  • 举报
回复
sql语句错误,可以重点检查下sql,初步怀疑是跟数据库表的字段对不上
小新s23 2016-04-29
  • 打赏
  • 举报
回复
for(int k=0;k<paras.length;k++){
ps.setString(k+1, paras[k]);
}
第一个问号的角标是0还是1?我忘了,报错就是说的'?,?,?,?,?)'插入数据的时候出错,应该和数据对应的关系有关吧
小灰狼 2016-04-29
  • 打赏
  • 举报
回复
错误提示很清楚了,你的 sql 语法错误,这是执行插入语句失败,错误来自数据库 当然也可能是别的错误,不一定是语法错,mysql 的错误提示没有 sql server/oracle 那些数据库那么精准
tangxheng 2016-04-29
  • 打赏
  • 举报
回复
把sql语句打印出来,到数据库工具执行一下。 这个是你sql语句本身的问题吧

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧