先看小段代码:
public class a
{
     private int Team_Id;
     public int getTeam_Id() 
     {
return Team_Id;
     }
     public void setTeam_Id(int team_Id) 
     {
Team_Id = team_Id;
     }
     public String execute() throws Exception
     {
         System.out.println(Team_Id);
String sql="select * from Team where Team_Id='Team_Id'";
ResultSet rs=dao.executeQuery(sql);
     }
}
类中Team_Id是int型,表Team中的Team_Id也是int型的。
通过传值可以得到Team_Id=9,后台输出正常。但是在执行上面execute()中的查询时,sql语句就出错。请问应该怎么写那个语句。我已经试过Team_Id='Team_Id'、Team_Id='"+Team_Id+"'、Team_Id=Team_Id。但是都不行。有谁知道吗?谢谢!

解决方案 »

  1.   

    ResultSet rs=dao.executeQuery(sql); 
    --------------------------------------
    dao是什么?
      

  2.   

    String sql="select * from Team where Team_Id="+Team_Id; 
      

  3.   

    String sql="select * from Team where Team_Id="+Team_Id; 
      

  4.   

    执行是的语句应该是主函数:
    public static void main(string[]args){}加上你想实现的内容你可以试试!
      

  5.   

    dao是个类对象,上面没有写出来,是我专门写的操作数据库的类。
    String sql="select * from Team where Team_Id="+Team_Id; 这样有错吧!
      

  6.   

    JDBC  基础题呀,    看看.....sql 语句String sql="select * from Team where Team_Id='"+Team_Id+"'"; Connection conn = null;
    Statement sta = null;
    ResultSet rs = null;
    try {
    conn = JDBCAccess.getConnection(); // 得到一个连接
    sta = DriverManager.getConnection("url","user","youpassword");
    rs = JDBCAccess.searchSQL(sta, sql);

    if(rs!=null){

       while (rs.next()) {
      // 你要得到的列
       
       }
       }
    } catch (Exception e) {
    e.printStackTrace();
    }finally{
    if(rs!=null){
    try {
    rs.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    if(sta!=null){
    try {
    sta.close();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    try {
    if(conn!=null && !conn.isClosed()){
    conn.close();
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }试试
      

  7.   

    conn = JDBCAccess.getConnection(); 将这改 成你得到链接的方法
     
      

  8.   

    晕菜,忘记改了点东西rs = sta .executeQuery(sql);呵呵....
      

  9.   


    这样写结果就是:
    ResultSet rs=dao.executeQuery("select * from Team where Team_Id=9");
    没明白你DAO是类对象的含义
      

  10.   

    Connection  cn;
    cn=Dbconect.Getcon();
    String str="select * from Team where Team_Id=?";
    PreparedStatement ps=cn.prepareStatement(str);
    ps.setString(1, Team_Id);
    ResultSet rs=ps.executeQuery();
    ------------------------------------------------
    自己看去!
      

  11.   

    回7楼,这个我知道,我在另外的文件中专门写成了实现这些的类。而且在其他地方可以正确运行,不过一般是
    public String a(int a)
    {
        String sql="select * from Team where Team_Id='"+a+"'"; 
        return "ssss";
    }
    这种类型的就可以!回10楼:
    那样还是有错,和写成String sql="select * from Team where Team_Id='"+Team_Id+"'"; 一样的错。错误提示:
    com.microsoft.sqlserver.jdbc.SQLServerException: ????????? 
        com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
        com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetHasCurrentRow(Unknown Source)
        com.microsoft.sqlserver.jdbc.SQLServerResultSet.getterGetColumn(Unknown Source)
        com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(Unknown Source)
        com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(Unknown Source)
      

  12.   

    public String a(int a) 

        String sql="select * from Team where Team_Id='"+a+"'"; 
        return "ssss"; 

    --------------------------------------------------------------------
    没执行sql语句怎么写都是返回SSSS,根本没用.
    String sql="select * from Team where Team_Id="+Team_Id;
    怎么不试上面这条。
      

  13.   

    回13楼,当然我本来的类中是写了执行的,还去结果了,我只是为了方便看,把其他的都省略了。
    String sql="select * from Team where Team_Id="+Team_Id; 这句我也试过了,和
    String sql="select * from Team where Team_Id='"+Team_Id+"'"; 这句是一样的错误提示。
      

  14.   

    String sql="select * from Team where Team_Id="+Team_Id; 或是
    String sql="select * from Team where Team_Id='"+Team_Id + "'"; 
      

  15.   

    String sql="select * from Team where Team_Id="+Team_Id+"";
      

  16.   

    String sql="select * from Team where Team_Id='Team_Id'"; 电脑执行的是  select * from Team where Team_Id ='Team_Id';改成: String sql="select * from Team where Team_Id ="+Team_Id;电脑执行的才是  :  select * from Team where Team_Id = 9;
      

  17.   

    晕死,
    com.microsoft.sqlserver.jdbc.SQLServerException: ????????? 
        com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source) 
    这个错误你怎么知道是那句SQL的问题。。
    把你的所有错误信息贴出来吧
      

  18.   


    'Team_Id'这个在数据库是字符串,当然执行select * from Team where Team_Id ='Team_Id';如果你想select * from Team where Team_Id ='9';
    那写成String sql="select * from Team where Team_Id='"+Team_Id+"'";
      

  19.   

    我在后台做了输出标记,就是执行到那句时,下面的输出标记都没有输出,所以觉得是那句出错了。错误提示:
    com.microsoft.sqlserver.jdbc.SQLServerException: ????????? 
        com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
        com.microsoft.sqlserver.jdbc.SQLServerResultSet.verifyResultSetHasCurrentRow(Unknown Source)
        com.microsoft.sqlserver.jdbc.SQLServerResultSet.getterGetColumn(Unknown Source)
        com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(Unknown Source)
        com.microsoft.sqlserver.jdbc.SQLServerResultSet.getInt(Unknown Source)
        entertainment.game.action.JoinEmTeamAction.execute(JoinEmTeamAction.java:66)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        java.lang.reflect.Method.invoke(Unknown Source)
        com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
        com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
        com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
        com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
        org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
        com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
        com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
        com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
        com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
        com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
        org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
        org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
        org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
        org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
        org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
        java.lang.Thread.run(Unknown Source)
      

  20.   

    dao   的代码是这样的。package dao;import java.sql.*;
    import java.util.*;import news.entity.*;public class DAO 
    {
    Connection conn=null;
    Statement stmt=null;
    ResultSet rs=null;
    public void DriverDB()
    {
    try
    {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    }
    catch(Exception e)
    {
    System.out.println("000");
    e.printStackTrace();
    }
    }

    public ResultSet executeQuery(String sql)
    {
    try
    {
    conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=Struts2_scu","sa","111");
             stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
             rs=stmt.executeQuery(sql);
    }
    catch(SQLException e)
    {
    e.printStackTrace();
    }
    return rs;
    }

    public void executeUpdate(String sql)
    {
    try
    {
    conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=Struts2_scu","sa","111");
             stmt=conn.createStatement();
             stmt.executeUpdate(sql);
    }
    catch(SQLException e)
    {
    e.printStackTrace();
    }
    }

    public void close()
    {
    try {
    rs.close();
    } catch (Exception e) {
    e.printStackTrace();
    }

    try {
    stmt.close();
    } catch (Exception e) {
    e.printStackTrace();
    }

    try {
    conn.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }}
      

  21.   

    String sql="select * from Team where Team_Id="+Team_Id
      

  22.   

    entertainment.game.action.JoinEmTeamAction.execute(JoinEmTeamAction.java:66)
    JoinEmTeamAction的66行
    这里是什么东西?
      

  23.   

    另外这里
    static{
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=Struts2_scu","sa","111"); 
    }
    写一个静态块,没必要每个方法都写