Advertisement
Guest User

Untitled

a guest
May 27th, 2016
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.19 KB | None | 0 0
  1. package dbutils;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.SQLException;
  6.  
  7. public class DBConnection {
  8. public final static String URL = "jdbc:mysql://localhost:3306/";
  9. public final static String DB = "northwind";
  10. private static Connection conn;
  11. public static Connection connect(String user, String password) throws SQLException
  12. {
  13. Connection c = DriverManager.getConnection(URL + DB, user, password);
  14. return c;
  15. }
  16. }
  17.  
  18. package myp;
  19.  
  20. import java.util.Calendar;
  21. import java.util.GregorianCalendar;
  22. import javax.swing.table.AbstractTableModel;
  23.  
  24. public class TableData extends AbstractTableModel
  25. {
  26. public static Object[][] values = new Object[100][3];
  27.  
  28. private final String[] Headers =
  29. {
  30. "ID", "Name", "Price"
  31. };
  32.  
  33. @Override
  34. public int getRowCount()
  35. {
  36. return values.length;
  37. }
  38. @Override
  39. public int getColumnCount()
  40. {
  41. return values[0].length;
  42. }
  43. @Override
  44. public Object getValueAt(int rowIndex, int columnIndex)
  45. {
  46. return values[rowIndex][columnIndex];
  47. }
  48. //--------------------------------------------------------------------------
  49. @Override
  50. public String getColumnName( int column)
  51. {
  52. return Headers[column];
  53. }
  54. //--------------------------------------------------------------------------
  55. @Override
  56. public boolean isCellEditable( int row, int column)
  57. {
  58. return false;
  59. }
  60. }
  61.  
  62. package myp;
  63.  
  64. import javax.swing.SwingUtilities;
  65. import javax.swing.JList;
  66. import javax.swing.JFrame;
  67. import javax.swing.JScrollPane;
  68. import javax.swing.event.ListSelectionEvent;
  69. import javax.swing.event.ListSelectionListener;
  70. import javax.swing.JTable;
  71. import javax.swing.table.TableColumn;
  72. import javax.swing.table.TableColumnModel;
  73. /* Компоненти на awt */
  74. import java.awt.Dimension;
  75. import java.awt.GridLayout;
  76. import java.awt.Container;
  77. import java.awt.BorderLayout;
  78. import java.awt.event.MouseAdapter;
  79. import java.awt.event.MouseListener;
  80. import java.awt.event.MouseEvent;
  81. import java.awt.Color;
  82. import javax.swing.table.DefaultTableCellRenderer;
  83.  
  84. /*import java.sql.Connection;
  85. import java.sql.DriverManager;
  86. import java.sql.SQLException;
  87. import java.sql.ResultSet;
  88. import java.sql.ResultSetMetaData;*/
  89. import java.sql.*;
  90. import dbutils.DBConnection;
  91.  
  92. public class Main
  93. {
  94. public static void main(String[] args)
  95. {
  96. String[] labels = new String[10];
  97. final int[] categoryID = new int[10];
  98.  
  99. String user = "root";
  100. String password = "";
  101. String query1 = "SELECT CategoryName, CategoryID FROM categories";
  102.  
  103. try
  104. ( Connection connection = DBConnection.connect(user, password);
  105. Statement statement = connection.createStatement();
  106. ResultSet resultSet = statement.executeQuery(query1);
  107. )
  108. {
  109. System.out.println("Connection to db accomplished.");
  110. resultSet.beforeFirst();
  111. while(resultSet.next())
  112. {
  113. labels [resultSet.getRow()] = resultSet.getString("CategoryName");
  114. categoryID [resultSet.getRow()] = Integer.parseInt(resultSet.getString("CategoryID"));
  115. }
  116. }
  117. catch(SQLException ex)
  118. {
  119. System.err.println("SQL Code:" + ex.getErrorCode());
  120. System.err.println("SQL State:" + ex.getSQLState());
  121. System.err.println("Message:" + ex.getMessage());
  122. }
  123.  
  124. final JFrame frame = new JFrame("Product Explorer");
  125. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  126. Container contentPane = frame.getContentPane();
  127. JList jlist = new JList(labels);
  128.  
  129. JScrollPane scrollPane1 = new JScrollPane(jlist);
  130. contentPane.add(scrollPane1, BorderLayout.EAST);
  131.  
  132. TableData tableData = new TableData();
  133. JTable table = new JTable(tableData);
  134. table.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN);
  135. table.setBackground(new Color(0, 0, 0));
  136.  
  137. table.setDefaultRenderer(Float.class, new DefaultTableCellRenderer());
  138.  
  139. JScrollPane scrollPane2 = new JScrollPane(table);
  140. contentPane.add(scrollPane2, BorderLayout.WEST);
  141.  
  142. /**********************************************************************/
  143. MouseListener mouseListener = new MouseAdapter()
  144. {
  145. public void mouseClicked(MouseEvent mouseEvent)
  146. {
  147. JList theList = (JList) mouseEvent.getSource();
  148. int index = theList.locationToIndex(mouseEvent.getPoint());
  149.  
  150. if (index >= 0)
  151. {
  152. TableData.values = new Object[100][3];
  153.  
  154. String user = "root";
  155. String password = "";
  156. String query = "SELECT ProductID, ProductName, UnitPrice FROM products WHERE CategoryID = " + index;
  157.  
  158. try
  159. (
  160. Connection connection = DBConnection.connect(user, password);
  161. Statement statement = connection.createStatement();
  162. ResultSet resultSet = statement.executeQuery(query);
  163. )
  164. {
  165. resultSet.beforeFirst();
  166. while(resultSet.next())
  167. {
  168. int i = resultSet.getRow();
  169. TableData.values[i-1][0] = resultSet.getString("ProductID");
  170. TableData.values[i-1][1] = resultSet.getString("ProductName");
  171. TableData.values[i-1][2] = resultSet.getString("UnitPrice");
  172. frame.validate();
  173. frame.repaint();
  174. }
  175. }
  176. catch(SQLException ex)
  177. {
  178. System.err.println("SQL Code:" + ex.getErrorCode());
  179. System.err.println("SQL State:" + ex.getSQLState());
  180. System.err.println("Message:" + ex.getMessage());
  181. }
  182. }
  183. }
  184. };
  185.  
  186. jlist.addMouseListener(mouseListener);
  187.  
  188. frame.setSize(640, 480);
  189. frame.setVisible(true);
  190. }
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement