これが私の現在のプログラムです:
import java.applet.Applet;
import java.awt.Graphics;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.swing.JComboBox;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.Properties;
public class CodesApplet extends Applet
{
private Properties properties;
private String configFilePath;
private FileInputStream fis;
private String driverName;
private String userName;
private String password;
private String url;
private Connection conn;
private Statement st;
private Timestamp created = new Timestamp(System.currentTimeMillis());
private JComboBox codes1;
private JComboBox codes2;
private JComboBox otherCodes;
public void init()
{
try
{
//Loads the values from the properties file
try
{
properties = new Properties();
configFilePath="C:\\scriptProps.properties";
fis = new FileInputStream(configFilePath);
properties.load(fis);
if (fis != null)
{
fis.close();
}
}
catch (FileNotFoundException e)
{
System.err.println("init(): FileNotFoundException(): " + e.getMessage());
}
driverName=properties.getProperty("driverName");
userName=properties.getProperty("userName");
password=properties.getProperty("password");
url=properties.getProperty("url");
//Establishes the connection to the database
System.out.println("init(): loading OracleDriver for applet created at " + created.toString());
Class.forName(driverName);
System.out.println("init(): getting connection");
conn = DriverManager.getConnection(url, userName, password);
st = conn.createStatement();
//Instantiates the previously declared variables for the drop-downs.
codes1 = new JComboBox();
codes2 = new JComboBox();
otherCodes = new JComboBox();
}
catch (ClassNotFoundException e)
{
System.err.println("init(): ClassNotFoundException: " + e.getMessage());
}
catch (SQLException e)
{
System.err.println("init(): SQLException: " + e.getMessage());
} catch (IOException e)
{
System.err.println("init(): IOException. " + e.getMessage());
}
}
public void start()
{
System.out.println("start(): ");
}
public void stop()
{
System.out.println("stop(): ");
}
//Returns the first drop-down...
public JComboBox getComboBox1()
{
codes1.removeAllItems();
codes1.addItem("Please Select...");
try
{
ResultSet rs = st.executeQuery("select codes from myTable");
while (rs.next())
{
codes1.addItem(rs.getString("codes"));
}
rs.close();
st.close();
}
catch (SQLException sqle)
{
System.out.println(sqle);
}
return codes1;
}
//Returns the second drop-down...
public JComboBox getComboBox2()
{
codes2.removeAllItems();
codes2.addItem("Please Select...");
try
{
ResultSet rs = st.executeQuery("select codes from myTable");
while (rs.next())
{
codes2.addItem(rs.getString("codes"));
}
rs.close();
st.close();
}
catch (SQLException sqle)
{
System.out.println(sqle);
}
return codes2;
}
//Returns the third drop-down...
public JComboBox getComboBox3()
{
otherCodes.removeAllItems();
otherCodes.addItem("Please Select...");
try
{
ResultSet rs = st.executeQuery("select otherCodes from myTable2");
while (rs.next())
{
otherCodes.addItem(rs.getString("otherCodes"));
}
rs.close();
st.close();
}
catch (SQLException sqle)
{
System.out.println(sqle);
}
return otherCodes;
}
public void paint(Graphics g)
{
System.out.println("paint(): creating the drop-downs...");
getComboBox1();
getComboBox2();
getComboBox3();
}
public void destroy()
{
System.out.println("destroy(): closing connection for applet created at " + created.toString());
try
{
conn.close();
}
catch (SQLException e)
{
System.err.println("destroy: SQLException: " + e.getMessage());
}
}
}
基本的に、私がやりたいのは、複数のテーブルからデータをプルし、ドロップダウンボックスにそのデータを入力するこのアプレットを用意することです。1つのドロップダウンでこれを行う方法の例をいくつか見てきました(したがって、codes1を含む1つのreturnステートメントが表示されるのはなぜですか)。
私の主な質問は次のとおりです。
- 一般的に、私はこれを正しく行っていますか?これは、複数のテーブルから複数のフィールドを取得するための最良の方法ですか?
- また、これはコンボボックスにのみ入力されることを理解しています。ドロップダウンから適切な値を選択した後(入力後)にユーザーがボタンを押して、それらの値をデータベースの別のテーブルに保存できるようにするには、どうすればよいですか?