mysql链接数据库的实例代码
------------------------------
(注意:字体为红色部分:是连接mysql数据库的关键代码)
(部分代码仅供参考:如果需要全部代码,去我博客下载)
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Vector;
public class JDBCmysql extends JFrame implements ActionListener{
/**
* @param args
*/
JPanel mb1, mb3;
// 面板一:查询
JLabel xuehao;
JTextField xh;
JButton search;
// 面板二:表格
JTable bg;
JScrollPane gdt;
// 面板三:添加,修改,删除
JButton add;
JButton change;
JButton del;
// 为JTble 中添加表头和内容
@SuppressWarnings("rawtypes")
Vector ziduan, jilu;
// 数据库操作变量
Connection con;
Statement stmt;
ResultSet rs;
@SuppressWarnings({ "unchecked", "rawtypes" })
public JDBCmysql() {
// 在构造方法中将期间添加到面板中
mb1 = new JPanel();
xuehao = new JLabel("清输入姓名:");
xh = new JTextField(10);
search = new JButton("查询");
search.addActionListener(this);
mb1.add(xuehao);
mb1.add(xh);
mb1.add(search);
// 面板二
ziduan = new Vector();
jilu = new Vector();
ziduan.add("学号");
ziduan.add("姓名");
ziduan.add("性别");
ziduan.add("年龄");
ziduan.add("籍贯");
ziduan.add("专业");
// 面板三
mb3 = new JPanel();
add = new JButton("添加");
add.addActionListener(this);
change = new JButton("修改");
change.addActionListener(this);
del = new JButton("删除");
del.addActionListener(this);
mb3.add(add);
mb3.add(change);
mb3.add(del);
// 连接数据库,从数据库中获取数据到(集合类)jilu中
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
//database1为数据库名,xs为表名。。3306为端口号 root为账户名,zkpk为mysql的密码
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database1","root","zkpk");
stmt = con.createStatement();
//将查询的所有结果显示出来
rs = stmt.executeQuery("select * from xs");
while (rs.next()) {
// 将得到的东西添加到(Vector) hang中
Vector hang = new Vector();
hang.add(rs.getString(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
hang.add(rs.getInt(4));
hang.add(rs.getString(5));
hang.add(rs.getString(6));
jilu.add(hang);
}
} catch (Exception e1) {
System.out.println("连接数据出现错误");
}
finally
{
try {
if (con != null) {
con.close();
}
if (stmt != null) {
stmt.close();
}
if (rs != null) {
rs.close();
}
} catch (Exception e2) {e2.printStackTrace();}
}
// 设计使用 JTable 的应用程序时,务必要注意用来表示表数据的数据结构
// 。DefaultTableModel 是一个模型实现,它使用一个 Vector
// 来存储所有单元格的值,该 Vector 由包含多个 Object 的 Vector 组成。
bg = new JTable(jilu,ziduan);
gdt = new JScrollPane(bg);
this.setLayout(new BorderLayout());
this.add(mb1,"North");
this.add(gdt,"Center");
this.add(mb3,"South");
this.setTitle("学生管理系统");
this.setSize(800,500);
this.setLocation(400,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
//测试程序的运行时间(想看一下程序连接数据的运行时间)
long start ,end;
start = System.nanoTime();
JDBCmysql student = new JDBCmysql();
end = System.nanoTime();
System.out.println("该程序共执行了" + (end - start) + "纳秒");
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//--------------查询学生----------------------
if(e.getSource().equals(search))
{
String xingming2;
String xingming = xh.getText().trim();
xingming2 = "select * from xs where xingming = '"+xingming+"'";
xsxx xsxx1 = new xsxx(xingming2);
bg.setModel(xsxx1);
if(xingming.equals(""))
{
xsxx xsxx2 = new xsxx();
bg.setModel(xsxx2);
}
}
//------------------学生添加-----------------------------
if(e.getSource().equals(add))
{
tianjia tj = new tianjia(this,"添加学生信息",true);
xsxx xs = new xsxx();
bg.setModel(xs);
}
//------------------------修改学生----------------------
if(e.getSource().equals(change))
{
xsxx xs1 = new xsxx();
int hang = bg.getSelectedRow();
if(hang == -1)
{
JOptionPane.showMessageDialog(this,"请选中要修改的行");
return;
}
xgxx xg = new xgxx(this,"修改学生信息",true,xs1,hang);
xsxx xs2 = new xsxx();
bg.setModel(xs2);
}
//------------------删除学生--------------------
if(e.getSource().equals(del))
{
xsxx xsxx2 = new xsxx();
int hang=this.bg.getSelectedRow();
if(hang == -1)
{
JOptionPane.showMessageDialog(this,"请选中要删除的行");
return;
}
String st=(String)xsxx2.getValueAt(hang,0);
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs=null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
ct=DriverManager.getConnection("jdbc:mysql://localhost:3306/database1","root","zkpk");
ps=ct.prepareStatement("delete from xs where xuehao =?");
ps.setString(1,st);
ps.executeUpdate();
} catch (Exception e2){System.out.println("删除出错");}
finally
{
try {
if(rs!=null)
{
rs.close();
}
if(ps!=null)
{
ps.close();
}
if(ct!=null)
{
ct.close();
}
} catch (Exception e3){System.out.println("修改失败");}
}
xsxx2=new xsxx();
bg.setModel(xsxx2);
}
}
}