现在想往 数据库中插入一项 数据 
表的形式是这样(char ,float)
只有两个属性 
现在想往表中插入新数据。
插入现有数据可以,但是我想插入的是自变量代替的数据怎么办???简单的代码如下:
import java.sql.*;
import javax.swing.*; 
import java.util.*;
import java.lang.String.*;
import java.awt.event.*;
import java.awt.*;
import java.lang.*;
import java.io.*;
public class AccessDB
{
  Connection con;         
  Statement  sta;
  public AccessDB() throws SQLException        
{             
    init();         
}
public void init() throws SQLException
{                 
        try
        {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                      
         System.out.println("Access : ok");                     
con = DriverManager.getConnection("jdbc:odbc:test","","");                      
System.out.println("Access : ok");  
System.out.println("---------------------------");                   
sta = con.createStatement(); 
                  String s1 = "布";
                  String s2 = "123.45";
                  float num = Float.parseFloat(s_2);
                  String query = "insert into stock values('布',123.45)";
                  String query1 = "insert into stock values(" + s1 + "," + num + ")";//用自变量怎么实现
                  sta.executeUpdate(query);    
                  sta.executeUpdate(query1); 
        }     
        catch(java.lang.Exception ex)
        {
         ex.printStackTrace();
        }    
                                                                                
}  
public static void main(String args[]) throws SQLException 
{
AccessDBd = new AccessDB();
}}

解决方案 »

  1.   

    String query1 = "insert into stock values(" + s1 + "," + num + ")";改为: String query1 = "insert into stock values("'"+s1+"'",num);
      

  2.   

    用PreparedStatement 
     pstmt=con.prepareStatement("insert into stock(filed1,filed2)values(?,?)")
      

  3.   

    import java.sql.*;
    import javax.swing.*; 
    import java.util.*;
    import java.lang.String.*;
    import java.awt.event.*;
    import java.awt.*;
    import java.lang.*;
    import java.io.*;
    public class AccessDB
    {
      Connection con;         
      Statement  sta;
      public AccessDB() throws SQLException        
    {             
        init();         
    }
    public void init() throws SQLException
    {                 
            try
            {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");                     
             System.out.println("Access : ok");                     
    con = DriverManager.getConnection("jdbc:odbc:test);                     
    System.out.println("Access : ok");  
    System.out.println("---------------------------");                  
    sta = con.createStatement(); 
                      String s1 = "布";
                      String s2 = "123.45";
                      float num = Float.parseFloat(s_2);
                      String query = "insert into stock values('布',123.45)";
                      String query = "insert into stock values('"+s1+"',"+s2+")";//用自变量怎么实现
                      sta.executeUpdate(query);    
                      sta.executeUpdate(query1); 
            }     
            catch(java.lang.Exception ex)
            {
            ex.printStackTrace();
            }    
                                                                                   
    }  
    public static void main(String args[]) throws SQLException 
    {
    AccessDBd = new AccessDB();
    }}