一个通过Java连接MYSQL数据库的代码
一个通过Java连接MYSQL数据库
的代码
发布时间:2006.06.28 08:26来源:jspcn作者:
Java的数据库连接终于做好了,虽然功能是简单了点,不过我会推出复杂一点的程序,可能以后推出的只用鼠标就可以完成绝大部分的数据库操作,好了,这次的数据库还是用的和那个非常小的数据库管理系统(JSP)一样的Mysql web_data的数据库。
图示如下:
代码如下:
--
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class inensshow extends JFrame{
private Connection connection;
private Statement statement;
private ResultSet resultSet;
private ResultSetMetaData rsMetaData;
//GUI变量定义
private JTable table;
private JTextArea inputQuery;
private JButton submitQuery;
public inensshow()
{
//Form的标题
super("输入SQL语句,按查询按钮查看结果。"); String url="jdbc:mysql://localhost:3306/web"; String username="inens";
String password="inens";
//加载驱动程序以连接数据库
try{
Class.forName("org.gjt.mm.mysql.Driver"); connection=DriverManager.getConnection(
url,username,password);
}
//捕获加载驱动程序异常
catch(ClassNotFoundException cnfex){
System.err.println( "装载JDBC/ODBC驱动程序失败。");
cnfex.printStackTrace();
//terminate program System.exit(1);
}
//捕获连接数据库异常
catch(SQLException sqlex){ System.err.println("无法连接数据库"); sqlex.printStackTrace();
System.exit(1);//terminate program }
//如果数据库连接成功,则建立GUI
//SQL语句
String test="SELECT*FROM data";
inputQuery=new JTextArea(test,4,30);
submitQuery=new JButton("查询");
//Button事件
submitQuery.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
getTable();
}
}
);
JPanel topPanel=new JPanel();
topPanel.setLayout(new BorderLayout()); //将"输入查询"编辑框布置到"CENTER" topPanel.add(new JScrollPane(inputQuery),BorderLayout.CENTER);
//将"提交查询"按钮布置到"SOUTH" topPanel.add(submitQuery,BorderLayout.SOUTH); table=new JTable();
Container c=getContentPane();
c.setLayout(new BorderLayout());
//将"topPanel"编辑框布置到"NORTH" c.add(topPanel,BorderLayout.NORTH); //将"table"编辑框布置到"CENTER" c.add(table,BorderLayout.CENTER);
getTable();
setSize(500,300);
//显示Form show();
}
private void getTable() {
try{
//执行SQL语句
String query=inputQuery.getText(); statement=connection.createStatement(); resultSet=statement.executeQuery(query); //在表格中显示查询结果
displayResultSet(resultSet);
}
catch(SQLException sqlex){ sqlex.printStackTrace();
}
}
private void displayResultSet(ResultSet rs)
throws SQLException {
//定位到达第一条记录
boolean moreRecords=rs.next();
//如果没有记录,则提示一条消息
if(~moreRecords){
JOptionPane.showMessageDialog(this,
"结果集中无记录");
setTitle("无记录显示");
return;
}
Vector columnHeads=new Vector();
Vector rows=new Vector();
try{
//获取字段的名称
ResultSetMetaData rsmd=rs.getMetaData(); for(int i=1;i=rsmd.getColumnCount();++i) columnHeads.addElement(rsmd.getColumnName(i)); //获取记录集
do{
rows.addElement(getNextRow(rs,rsmd)); }while(rs.next());
在表格中显示查询结果 //
table=new JTable(rows,columnHeads); JScrollPane scroller=new JScrollPane(table); Container c=getContentPane();
c.remove(1);
c.add(scroller,BorderLayout.CENTER); //刷新Table c.validate();
}
catch(SQLException sqlex){ sqlex.printStackTrace();
}
}
private Vector getNextRow(ResultSet rs,
ResultSetMetaData rsmd) throws SQLException {
Vector currentRow=new Vector();
for(int i=1;i=rsmd.getColumnCount();++i) currentRow.addElement(rs.getString(i)); 返回一条记录 //
return currentRow;
}
public void shutDown() {
try{
//断开数据库连接
connection.close();
}
catch(SQLException sqlex){ System.err.println("Unable to disconnect"); sqlex.printStackTrace();
}
}
public static void main(String args)
{
final inensshow app= new inensshow();
app.addWindowListener( new WindowAdapter(){ public void windowClosing(WindowEvent e)
{
app.shutDown();
System.exit(0);
}
}
);
}
}
MSN空间完美搬家到新浪博客~
本文档为【一个通过Java连接MYSQL数据库的代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。