2013-06-12 11 views
0

У меня есть функция Connexion к базе данных и у меня есть код, который у меня есть выбор и отображение элементов в выпадающем списке поэтому я хочу передать класс connexion.java выпадающего список SelectedItem Becaue содержит всего из баз данных, которые у меня есть поэтому я хочу тх Classe связь быть динамической, так передать элемент, выбранный в этом классе я надеваю "знает, как я могу это сделать, пожалуйста, помогите мнеиспользования COMBOBOX SelectedItem на функции

public class Connexion { 
    private static Connection conn; 

    {  
      try { 
Class.forName("com.mysql.jdbc.Driver"); 
} catch (ClassNotFoundException ex) { 
      Logger.getLogger(Connexion.class.getName()).log(Level.SEVERE, null, ex);} 

      try { 
conn = DriverManager.getConnection("jdbc:mysql://localhost/mohammedia", "root", "123456"); 
} catch (SQLException ex) { 
      Logger.getLogger(Connexion.class.getName()).log(Level.SEVERE, null, ex); }   
       } 
public static Connection getconx() 
{ 
    return conn; 
} 
} 
+3

Я читал этот вопрос три раза и до сих пор я не знаю, о чем вы спрашиваете. Я предлагаю вам начать с добавления некоторых точек и заглавных букв, чтобы сделать его более читаемым. Вы также указываете combobox, но это не отображается в коде, который вы опубликовали. Короче говоря, уточните, что вы на самом деле задаете – Robin

+1

В дополнение к совету Робин, рассмотрите возможность размещения хорошо отформатированного и правильно отпечатанного кода. Для лучшей помощи раньше, отправьте сообщение [SSCCE] (http://sscce.org) –

+0

Okey извините, потому что я не очень хорошо говорю по-английски –

ответ

0

JComboBox принимает любой вид объекта, поэтому вы можете просто сделать что-то вроде этого.

Connection con = new Connection(); 
JComboBox box = getBox(); 
box.addItem(con); 

И извлечь значение:

JComboBox box = getBox(); 
Connection con = (Connection)box.getSelectedItem(); 

Однако в своем классе Connection вы должны переопределить функцию toString(), потому что это используется, чтобы отобразить окно.

class Connection 
{ 
    public String toString() 
    { 
     return "BoxItemDisplayvalue"; <--- here you must put something meaningfull which is displayed in the box. 
    } 
} 

Таким образом, вы можете создать экземпляр соединение, представляющее соединение, которое вы хотите, и когда пользователь выбирает элемент из выпадающего списка, вы будете иметь связь он представляет.

+0

Я хочу добавить переменную selectedItem здесь public static Connection getconx (String dbase) { return conn; } –

+0

Okey but thet сообщите мне ошибку о getBox() –

+0

Connection conn = Connexion.getconx(); Строка box = jComboBox1.getActionCommand(); –

0

Используйте этот класс

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

import javax.naming.NamingException; 

import org.apache.commons.dbcp.BasicDataSource; 

import sun.jdbc.rowset.CachedRowSet; 

public class SQLConnection { 

    private static Connection con = null; 

    private static BasicDataSource dataSource; 


    //we can enable and disable connection pool here 
    //true means connection pool enabled,false means disabled 
    private static boolean useConnectionPool = true; 

    private static int count=0; 

    private SQLConnection() { 

     /* 
     Properties properties = new Properties(); 
     properties.load(new FileInputStream("")); 
     maxActive = properties.get("maxActive"); 
     */ 
    } 

    public static String url = "jdbc:mysql://localhost:3306/schemaname"; 
    public static String password = "moibesoft"; 
    public static String userName = "root"; 
    public static String driverClass = "com.mysql.jdbc.Driver"; 
    public static int maxActive = 20; 
    public static int maxIdle = 10; 

    private static final String DB_URL = "driver.classs.name"; 
    private static final String DB_USERNAME = "database.username"; 
    static { 
    /*Properties properties = new Properties(); 
     try { 
     properties.load(new FileInputStream("D:\\CollegeBell\\properties\\DatabaseConnection.properties")); 
      //properties.load(new FileInputStream("E:\\vali\\CollegeBell\\WebContent\\WEB-INF")); 
      //properties.load(new FileInputStream("D:\\DatabaseConnection.properties")); 
      url = properties.getProperty(DB_URL); 
      System.out.println(url); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     }*/ 
     dataSource = new BasicDataSource(); 
     dataSource.setDriverClassName(driverClass); 
     dataSource.setUsername(userName); 
     dataSource.setPassword(password); 
     dataSource.setUrl(url); 
     dataSource.setMaxActive(maxActive); 
     dataSource.setMinIdle(maxIdle); 
     dataSource.setMaxIdle(maxIdle); 

    } 

    //public static Connection getConnection(String opendFrom) throws SQLException, 
    public static Connection getConnection(String openedFrom) { 
     count++; 
      System.out.println("nos of connection opened till now="+count); 
     System.out.println("Connection opended from "+openedFrom); 
    // System.out.println("Connection Opended "); 
     try { 

      if (useConnectionPool) { 
       con = dataSource.getConnection(); 
       System.out.println(dataSource.getMinEvictableIdleTimeMillis()); 
       //dataSource.setMaxWait(15000); 
       System.out.println(dataSource.getMaxWait()); 
       System.out.println(count); 
      } else { 
       Class.forName("com.mysql.jdbc.Driver"); 
       con = DriverManager.getConnection(url, userName, password); 
      } 
     } 

      //System.out.println("Connection : " + con.toString()); 
      catch (SQLException e) { 
      e.printStackTrace(); 
     } 
     catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return con; 
    } 

    public static void closeConnection(Connection con, String closedFrom) 
      { 

     //System.out.println("Connection closed from: " + con.toString()); 
    // System.out.println("Connection closed from: " + closedFrom); 
     //log.info("Connection closed from: " + closedFrom); 
     if(con != null){ 
      count--; 
      System.out.println("Connection count value after closing="+count); 
     System.out.println("Connection closed from: " + closedFrom); 
     try { 
      con.close(); 
     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     } 
    } 
    //added by nehal 
    public static void closeStatement(Statement ps, String closedFrom) 
    { 
if(ps != null){ 
System.out.println("Statement closed from: " + closedFrom); 
try { 
    ps.close(); 
} catch (SQLException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
} 
} 


    public static void closePreparedStatement(PreparedStatement ps, String closedFrom) 
    { 
if(ps != null){ 
System.out.println("Statement closed from: " + closedFrom); 
try { 
    ps.close(); 
} catch (SQLException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
} 
} 

    public static void closeResultSet(ResultSet rs, String closedFrom) 
    { 
if(rs != null){ 
System.out.println("ResultSet closed from: " + closedFrom); 
try { 
    rs.close(); 
} catch (SQLException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
} 
} 
    //added by nehal 

    /*public static ResultSet executeQuery(String query) throws Exception { 
     Connection con = null; 
     Statement stmt = null; 
     ResultSet rs = null; 
     CachedRowSet crset = null; 
     try { 
      con = getConnection(); 
      stmt = con.createStatement(); 
      rs = stmt.executeQuery(query); 
      crset = new CachedRowSet(); 
      crset.populate(rs); 
     } catch (Exception e) { 
      throw e; 
     } finally { 
      if (rs != null) { 
       rs.close(); 
      } 
      if (stmt != null) { 
       stmt.close(); 
      } 
      if (con != null && !con.isClosed()) { 
       con.close(); 
      } 
     } 
     return crset; 
    } 

    public static int executeUpdate(String query) throws Exception { 
     Connection con = null; 
     Statement stmt = null; 
     ResultSet rs = null; 
     int rows = -1; 
     try { 
      con = getConnection(); 
      stmt = con.createStatement(); 
      rows = stmt.executeUpdate(query); 
     } catch (Exception e) { 
      throw e; 
     } finally { 
      if (rs != null) { 
       rs.close(); 
      } 
      if (stmt != null) { 
       stmt.close(); 
      } 
      if (con != null && !con.isClosed()) { 
       con.close(); 
      } 
     } 
     return rows; 
    } 

    public static boolean execute(String query) throws Exception { 
     Connection con = null; 
     Statement stmt = null; 
     ResultSet rs = null; 
     boolean rowsreturned = false; 
     try { 
      con = getConnection(); 
      stmt = con.createStatement(); 
      rowsreturned = stmt.execute(query); 
     } catch (Exception e) { 
      throw e; 
     } finally { 
      if (rs != null) { 
       rs.close(); 
      } 
      if (stmt != null) { 
       stmt.close(); 
      } 
      if (con != null && !con.isClosed()) { 
       con.close(); 
      } 
     } 
     return rowsreturned; 
    }*/ 

    /* 
    * public static void closeConnection(Connection con) { try { con.close(); 
    * con=null; } catch (SQLException e) { // TODO Auto-generated catch block 
    * e.printStackTrace(); } } 
    */ 

} 
+0

Но где же отношение к элементам ComboBox –

+0

используйте это соединение obj, получите все значения из db и отобразите их в поле со списком. –

+0

добавить элементы в поле со списком –

0

Для того, что я понимаю, у вас есть 2 классов .. One с графическим интерфейсом, где у вас есть выпадающий с именем схемы, где и хотите подключиться. Итак, вы должны иметь EventListener для «прослушивания» при нажатии кнопки отправки.

Например:

Connection con = null; 
JButton submitButton = new JButton("Confirm db"); 
submitButton.addActionListener(new MyConnectionListener()); 

.. 
//Could be inner class 
class MyConnectionListener implements ActionListener { 

@Override 
public void actionPerformed(ActionEvent evt){ 
     if(cmb.getSelectedItem() != null){ 
      con = Connection.getConx(cmb.getSelectedItem().toString()); 
     } 

} 

} 

И в ваших Connexion класса

public class Connexion { 

public static Connection getconx(String schema) 
{ 
Connection conn = null; 
      try { 
Class.forName("com.mysql.jdbc.Driver"); 
} catch (ClassNotFoundException ex) { 
      Logger.getLogger(Connexion.class.getName()).log(Level.SEVERE, null, ex);} 

      try { 
conn = DriverManager.getConnection("jdbc:mysql://localhost/"+schema, "root", "123456"); 
} catch (SQLException ex) { 
      Logger.getLogger(Connexion.class.getName()).log(Level.SEVERE, null, ex); }   
       } 


    return conn; 
} 
} 
+0

Да, спасибо, даже если я делаю это по-другому, но этот код кажется лучше моего. –

+0

@ cisco.nat подумайте о принятии любого ответа и о том, чтобы помочь им, кто поможет вам – nachokk