自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一個(gè)通過Java連接MySQL數(shù)據(jù)庫的代碼

開發(fā) 后端
Java連接MySQL終于做好了,雖然功能是簡單了點(diǎn),不過我會(huì)推出復(fù)雜一點(diǎn)的程序,可能以后推出的只用鼠標(biāo)就可以完成絕大部分的數(shù)據(jù)庫操作。

這次的Java連接MySQL數(shù)據(jù)庫操作,還是用的和那個(gè)非常小的數(shù)據(jù)庫管理系統(tǒng)(JSP)一樣的MySQL web_data 的數(shù)據(jù)庫。

圖示如下:

連接圖示 


代碼如下:

  1. ------------------------------------------------------------  
  2.  
  3. import java.sql.*;   
  4. import javax.swing.*;   
  5. import java.awt.*;   
  6. import java.awt.event.*;   
  7. import java.util.*;   
  8.  
  9. public class inensshow extends JFrame {   
  10.  
  11.  
  12. private Connection connection;   
  13. private Statement statement;   
  14. private ResultSet resultSet;   
  15. private ResultSetMetaData rsMetaData;   
  16.  
  17. //GUI變量定義  
  18. private JTable table;   
  19. private JTextArea inputQuery;   
  20. private JButton submitQuery;   
  21.  
  22. public inensshow()   
  23. {   
  24. //Form的標(biāo)題   
  25. super( "輸入SQL語句,按查詢按鈕查看結(jié)果。" );   
  26.  
  27. String url = "jdbc:mysql://localhost:3306/web";   
  28. String username = "inens";   
  29. String password = "inens";   
  30. //加載驅(qū)動(dòng)程序以連接數(shù)據(jù)庫  
  31. try {   
  32. Class.forName( "org.gjt.mm.mysql.Driver" );   
  33. connection = DriverManager.getConnection(   
  34. url, username, password );   
  35. }   
  36. //捕獲加載驅(qū)動(dòng)程序異常  
  37. catch ( ClassNotFoundException cnfex ) {   
  38. System.err.println(   
  39. "裝載 JDBC/ODBC 驅(qū)動(dòng)程序失敗。" );   
  40. cnfex.printStackTrace();   
  41. System.exit( 1 ); // terminate program   
  42. }   
  43. //捕獲連接數(shù)據(jù)庫異常  
  44. catch ( SQLException sqlex ) {   
  45. System.err.println( "無法連接數(shù)據(jù)庫" );   
  46. sqlex.printStackTrace();   
  47. System.exit( 1 ); // terminate program   
  48. }   
  49. //如果數(shù)據(jù)庫連接成功,則建立GUI  
  50. //SQL語句  
  51. String test="SELECT * FROM data";   
  52. inputQuery = new JTextArea( test, 4, 30 );   
  53. submitQuery = new JButton( "查詢" );   
  54. //Button事件  
  55. submitQuery.addActionListener(   
  56. new ActionListener() {   
  57. public void actionPerformed( ActionEvent e )   
  58. {   
  59. getTable();   
  60. }   
  61. }   
  62. );   
  63.  
  64. JPanel topPanel = new JPanel();   
  65. topPanel.setLayout( new BorderLayout() );   
  66. //將"輸入查詢"編輯框布置到 "CENTER"  
  67. topPanel.add( new JScrollPane( inputQuery), BorderLayout.CENTER );   
  68. //將"提交查詢"按鈕布置到 "SOUTH"  
  69. topPanel.add( submitQuery, BorderLayout.SOUTH );   
  70. table = new JTable();   
  71. Container c = getContentPane();   
  72. c.setLayout( new BorderLayout() );   
  73. //將"topPanel"編輯框布置到 "NORTH"  
  74. c.add( topPanel, BorderLayout.NORTH );   
  75. //將"table"編輯框布置到 "CENTER"  
  76. c.add( table, BorderLayout.CENTER );   
  77. getTable();   
  78. setSize( 500, 300 );   
  79. //顯示Form  
  80. show();   
  81. }   
  82.  
  83. private void getTable()   
  84. {   
  85. try {   
  86. //執(zhí)行SQL語句  
  87. String query = inputQuery.getText();   
  88. statement = connection.createStatement();   
  89. resultSet = statement.executeQuery( query );   
  90. //在表格中顯示查詢結(jié)果  
  91. displayResultSet( resultSet );   
  92. }   
  93. catch ( SQLException sqlex ) {   
  94. sqlex.printStackTrace();   
  95. }   
  96. }   
  97.  
  98. private void displayResultSet( ResultSet rs )   
  99. throws SQLException   
  100. {   
  101. //定位到達(dá)第一條記錄  
  102. boolean moreRecords = rs.next();   
  103. //如果沒有記錄,則提示一條消息  
  104. if ( ! moreRecords ) {   
  105. JOptionPane.showMessageDialog( this,   
  106. "結(jié)果集中無記錄" );   
  107. setTitle( "無記錄顯示" );   
  108. return;   
  109. }   
  110. Vector columnHeads = new Vector();   
  111. Vector rows = new Vector();   
  112. try {   
  113. //獲取字段的名稱  
  114. ResultSetMetaData rsrsmd = rs.getMetaData();   
  115. for ( int i = 1; i <= rsmd.getColumnCount(); ++i )   
  116. columnHeads.addElement( rsmd.getColumnName( i ) );   
  117. //獲取記錄集  
  118. do {   
  119. rows.addElement( getNextRow( rs, rsmd ) );   
  120. } while ( rs.next() );   
  121. //在表格中顯示查詢結(jié)果  
  122. table = new JTable( rows, columnHeads );   
  123. JScrollPane scroller = new JScrollPane( table );   
  124. Container c = getContentPane();   
  125. c.remove(1);   
  126. c.add( scroller, BorderLayout.CENTER );   
  127. //刷新Table  
  128. c.validate();   
  129. }   
  130. catch ( SQLException sqlex ) {   
  131. sqlex.printStackTrace();   
  132. }   
  133. }   
  134.  
  135.  
  136. private Vector getNextRow( ResultSet rs,   
  137. ResultSetMetaData rsmd )   
  138. throws SQLException   
  139. {   
  140. Vector currentRow = new Vector();   
  141. for ( int i = 1; i <= rsmd.getColumnCount(); ++i )   
  142. currentRow.addElement( rs.getString( i ) );   
  143. //返回一條記錄   
  144. return currentRow;   
  145. }   
  146.  
  147. public void shutDown()   
  148. {   
  149. try {   
  150. //斷開數(shù)據(jù)庫連接  
  151. connection.close();   
  152. }   
  153. catch ( SQLException sqlex ) {   
  154. System.err.println( "Unable to disconnect" );   
  155. sqlex.printStackTrace();   
  156. }   
  157. }   
  158.  
  159. public static void main( String args[] )   
  160. {   
  161. final inensshow app =   
  162. new inensshow();   
  163. app.addWindowListener(   
  164. new WindowAdapter() {   
  165. public void windowClosing( WindowEvent e )   
  166. {   
  167. app.shutDown();   
  168. System.exit( 0 );   
  169. }   
  170. }   
  171. );   
  172. }   
  173. }   
  174.  


------------------------------------------------------------

這次在WIN98中就不好使了。因?yàn)镸ySQL的驅(qū)動(dòng)程序沒有也沒能加入到CLASSPATH 當(dāng)中,但是JSP卻可以使用(JSP的98驅(qū)動(dòng)加載詳見Jsp與Mysql連接查錯(cuò)文章),所以這次我是在XPServer中測試的。Java連接MySQL成功。

【編輯推薦】

  1. Java連接MySQL中文亂碼處理
  2. 如何用Java通過ODBC鏈接MySQL
  3. Java虛擬機(jī)內(nèi)部構(gòu)成淺析
  4. 淺談Java線程的生命周期
  5. 關(guān)于Java繼承的一些復(fù)習(xí)
責(zé)任編輯:張燕妮 來源: jspcn
相關(guān)推薦

2011-07-20 13:40:00

SQLite數(shù)據(jù)庫查詢數(shù)據(jù)

2020-09-22 15:56:31

Java

2010-06-07 15:24:34

Java連接MYSQL

2010-05-27 10:10:00

連接MySQL數(shù)據(jù)庫

2012-02-03 10:32:46

Java

2011-08-18 18:18:05

MySQL數(shù)據(jù)庫優(yōu)化

2011-07-20 12:55:17

SQLite數(shù)據(jù)庫插入數(shù)據(jù)

2010-05-25 18:21:28

MySQL連接數(shù)據(jù)庫

2011-07-21 16:28:20

MySQL數(shù)據(jù)庫帶游標(biāo)的存儲(chǔ)過程

2011-07-20 14:57:47

SQLite數(shù)據(jù)庫ORDER BYGROUP BY

2010-05-26 15:43:37

連接MySQL數(shù)據(jù)庫

2010-06-01 10:47:21

連接MySQL數(shù)據(jù)庫

2011-07-20 13:18:01

SQLite數(shù)據(jù)庫修改和刪除數(shù)據(jù)

2010-02-02 17:27:16

C++連接MySqL數(shù)

2021-06-10 13:50:55

代碼開發(fā)數(shù)據(jù)庫

2018-01-04 10:43:43

OracleMysqlJava

2010-05-25 09:47:05

2011-05-26 13:42:50

MFC連接MySql數(shù)據(jù)庫

2011-08-02 13:26:38

JavaBeanSQL Server

2010-05-17 17:54:39

MySQL 數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)