一个通过Java连接MySQL数据库的代码

这次的Java连接MySQL数据库操作,还是用的和那个非常小的数据库管理系统(JSP)一样的MySQL web_data 的数据库。

创新互联致力于互联网品牌建设与网络营销,包括成都网站设计、网站建设、SEO优化、网络推广、整站优化营销策划推广、电子商务、移动互联网营销等。创新互联为不同类型的客户提供良好的互联网应用定制及解决方案,创新互联核心团队十年专注互联网开发,积累了丰富的网站经验,为广大企业客户提供一站式企业网站建设服务,在网站建设行业内树立了良好口碑。

图示如下:

代码如下:

 
 
 
 
  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的标题   
  25. super( "输入SQL语句,按查询按钮查看结果。" );   
  26.  
  27. String url = "jdbc:mysql://localhost:3306/web";   
  28. String username = "inens";   
  29. String password = "inens";   
  30. //加载驱动程序以连接数据库  
  31. try {   
  32. Class.forName( "org.gjt.mm.mysql.Driver" );   
  33. connection = DriverManager.getConnection(   
  34. url, username, password );   
  35. }   
  36. //捕获加载驱动程序异常  
  37. catch ( ClassNotFoundException cnfex ) {   
  38. System.err.println(   
  39. "装载 JDBC/ODBC 驱动程序失败。" );   
  40. cnfex.printStackTrace();   
  41. System.exit( 1 ); // terminate program   
  42. }   
  43. //捕获连接数据库异常  
  44. catch ( SQLException sqlex ) {   
  45. System.err.println( "无法连接数据库" );   
  46. sqlex.printStackTrace();   
  47. System.exit( 1 ); // terminate program   
  48. }   
  49. //如果数据库连接成功,则建立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. //执行SQL语句  
  87. String query = inputQuery.getText();   
  88. statement = connection.createStatement();   
  89. resultSet = statement.executeQuery( query );   
  90. //在表格中显示查询结果  
  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. //定位到达第一条记录  
  102. boolean moreRecords = rs.next();   
  103. //如果没有记录,则提示一条消息  
  104. if ( ! moreRecords ) {   
  105. JOptionPane.showMessageDialog( this,   
  106. "结果集中无记录" );   
  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. //在表格中显示查询结果  
  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. //断开数据库连接  
  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中就不好使了。因为MySQL的驱动程序没有也没能加入到CLASSPATH 当中,但是JSP却可以使用(JSP的98驱动加载详见Jsp与Mysql连接查错文章),所以这次我是在XPServer中测试的。Java连接MySQL成功。

当前题目:一个通过Java连接MySQL数据库的代码
转载来源:http://www.shufengxianlan.com/qtweb/news15/295715.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联