public class DBManager{
private Connection conn=null;
// private ResultSet rs=null;
// private PreparedStatement prepare=null;
private boolean flag=false;

public DBManager(){
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    try {
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databasename=Sing", "sa", "");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void add(SongBean song){
try {
PreparedStatement pre=conn.prepareStatement("insert into song(Song_id,Song_name,Song_sigger1," +
"Song_singger2,Song_type,Song_lan,Song_mode,Song_date,Song_size,Song_house,Song_path) values" +
"(?,?,?,?,?,?,?,?,?,?,?");
pre.setString(1, song.getId());
pre.setString(2, song.getName());
pre.setString(3, song.getSingger1());
pre.setString(4, song.getSingger2());
pre.setString(5, song.getType());
pre.setString(6, song.getLanguage());
pre.setString(7, song.getMode());
pre.setString(8, song.getDate());
pre.setFloat(9, song.getSize());
pre.setString(10, song.getHouse());
pre.setString(11, song.getPath());
int flag=pre.executeUpdate();
System.out.println(flag);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
  try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
}  当我执行添加时报错,怎么回事,我没有用存储过程。。

解决方案 »

  1.   

    错误提示
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: '@P11' 附近有语法错误。
    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
    at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
    at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
    at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
    at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
    at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
    at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)
    at com.microsoft.jdbc.base.BasePreparedStatement.executeUpdate(Unknown Source)
    at com.DB.DBManager.add(DBManager.java:121)
    at com.TianWang.struts.action.AddActionAction.execute(AddActionAction.java:67)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)
      

  2.   

    将sql语句打印出来看看,放到数据库中执行看看...
      

  3.   

    我看到异常时没有找到资源,你是不是没有添加SQLServer驱动。
      

  4.   

    sql语句中的引号和括号好像不匹配,你再检查检查
      

  5.   

    估计还是sql语句的问题,你手工插入一条能成功吗 ?
    你赋值的参数有没有问题?
      

  6.   

    SQL语句的问题,Song_singger2  values();)这两处错误