2016-11-09 92 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() 
    } 
    .... 
}