注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Search的博客

不断学习中!

 
 
 

日志

 
 

java连接sql数据库  

2012-07-28 21:15:29|  分类: java web开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

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. }   


  评论这张
 
阅读(82)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017