2016-11-09 96 views
1

我是java的初學者。在java中訪問JDBC連接變量從一個類到另一個類

我想從類test.java訪問變量JDBC數據庫連接變量康恩Test2.javaJDK 1.8。這兩個類都在工具包。數據庫名稱是UOHStudents和表usertest

我的問題是:我可以在其他類對象進行訪問的連接變量?如果是,那麼請檢查代碼我在哪裏做錯了?

test.java

mport java.sql.*; 
public class test 
{ 
    static String USERNAME= "root"; 
    static String CONN_STRING= "jdbc:mysql://localhost:3306/UOHStudents"; 
    public static void main(String args[]) 
    { 
     try 
     { 
      Connection conn; 
      Statement st; 
      ResultSet rs; 
      //get connection 
      conn = DriverManager.getConnection(CONN_STRING,USERNAME,""); 
      st=conn.createStatement(); 
        String sql1="CREATE TABLE if not exists usertest(name varchar(10), surname varchar(10),FatherName varchar(25))"; 
        st.executeUpdate(sql1); 

      System.out.println("table created"); 

        String sql2="INSERT INTO usertest values('preeti', 'singh','Mr shiv kumar singh'),('neha', 'singh','Mr shiv kumar singh'),('anil', 'kumar','Mr shiv kumar singh'),('rahul', 'kumar','Mr shiv kumar singh'),('ankita',  'kumari','Mr shiv kumar singh')"; 

        st.executeUpdate(sql2); 
      System.out.println("record inserted"); 

        String sql3= "SELECT * FROM usertest where surname='kumar'"; 
        st.executeQuery(sql3); 
      rs=st.getResultSet();  
      while(rs.next()) 
      { 
        System.out.println(rs.getString("name")); 
        System.out.println(rs.getString("surname")); 
        System.out.println(rs.getString("FatherName")); 
      } 
     } 

     catch(Exception e) 
     { 
      System.out.println(e); 
     } 


    } 
} 

Test2.java

package Tool; 
import java.sql.*; 
public class Test2 
{ 
    public static void main (String [] args) throws SQLException 
    { 
     Connection conn1; 
     Statement st1; 
     ResultSet rs1; 
     Tool.test ts = new Tool.test(); 
     public Test2() 
       { 
        this.conn1 = ts.conn; 
        this.rs1 = ts.rs; 
        this.st1 =ts.st; 

       } 
     String p = "Select * from usertest where name = 'preeti'"; 
     st1.executeQuery(p); 
     rs1 = st1.getResultSet(); 
     while(rs1.next()) 
      { 
        System.out.println(rs1.getString("name")); 
        System.out.println(rs1.getString("surname")); 
        System.out.println(rs1.getString("FatherName")); 
      }  
    } 
} 

回答

0

有關注冊駕駛員和連接數據庫的代碼存在於test類的main方法。您需要聲明一個構造函數類test並在構造函數中調用main方法。儘量保持以下類別的課程級別變量Connection, Statement, ResultSet;

public class test 
{ 
    Connection conn; 
    Statement st; 
    ResultSet rs; 
    public test() 
    { 
     main() 
    } 
    .... 
}