class test1 {
          public test1(){
          String url = "jdbc:oracle:thin:@stardust:1521:orcl";
          //theUser为数据库用户名
          String username = "scott";
          //thePw为数据库密码
          String password = "abc123";
          //几个数据库变量
          Connection connection=null;
          Statement st =null;
          ResultSet rs=null; 
         
          try {
         
          System.out.println("test");
          Class.forName("oracle.jdbc.driver.OracleDriver");
          //与url指定的数据源建立连接
          connection = DriverManager.getConnection(url, username, password);
          st=connection.createStatement();
          st.execute("insert into nk (id,local,towhere,price,time) values('1','珠江路','迈皋桥','2元','2010/01/03')");
          connection.close();
          }catch (Exception e) {
          e.printStackTrace();
          }
         
          }
          }
     new test1();
values中的五个值可以是变量吗,比如是java中某个int型的全局变量,在values这行应该怎么写?

解决方案 »

  1.   

    可以的
    insert into nk (id,local,towhere,price,time) values(:arg0,:arg1,:arg2,:arg4,:arg4)
    agrx.. 为java变量
      

  2.   

    楼主可以搜一下preparedstatement的用法。
    使用PreparedStatement操作Oracle数据库:
    1.定义预处理SQL语句;
    2.为每一个“?”设置对应的值;
    3.使用PreparedStatement操作数据库。TestPreparedStmt.java:
    view plaincopy to clipboardprint?
    import java.sql.*;   
      
      
    public class TestPreparedStmt {   
           
        public static void main(String[] args) {   
            Connection conn = null;   
            PreparedStatement pstmt = null;   
            String sql = null;   
            int id = 0;   
            String name = null;   
            if (args.length != 2) {   
                System.exit(-1);   
            } else {   
                id = Integer.parseInt(args[0]);   
                name = args[1];   
            }   
            try {   
                Class.forName("oracle.jdbc.driver.OracleDriver");   
                conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:mgc", "system", "admin");   
                sql = "Insert INTO member(id,name) VALUES(?,?)";   
                pstmt = conn.prepareStatement(sql);   
                pstmt.setInt(1, id);   
                pstmt.setString(2, name);   
                pstmt.executeUpdate();   
            } catch (ClassNotFoundException e) {   
                e.printStackTrace();   
            } catch (SQLException e) {   
                e.printStackTrace();   
            } finally {   
                try {   
                    if (pstmt != null) {   
                        pstmt.close();   
                        pstmt = null;   
                    }   
                    if (conn != null) {   
                        conn.close();   
                        conn = null;   
                    }   
                } catch (SQLException e) {   
                    e.printStackTrace();   
                }   
            }   
        }   
      
    }