Java Swing之JTable连接Mysql数据库显示数据示例

07-09 1355阅读

        作者前面写过《Java Swing之JTable示例》一文,该文中通过两种JTable构造方法创建了表格对象,并展示了部分常用方法。本文在前面创建表格的基础上,使用JDBC连接数据库,用表格显示某一数据库表信息。通过该例,读者可以举一反三,拓展表格操作有关功能,实现获取表格某一记录信息并修改、删除,实现对表格的美化,实现显示符合条件的数据表信息等。

        关于JDBC连接数据库,如读者需要,可参考作者的《JDBC实现Mysql数据库的连接与应用》一文。在本示例中,使用面向对象的思想对数据库的连接做了封装,读者可参考继续完善形成可复用的数据库操作类。

        1.创建数据库

        在Mysql中创建名称为“student”的数据库,按照表1结构创建一个studentinfo表,按照表2内容添加记录内容。

        本示例中用到的数据库表结构如表1所示。        

表1 学生信息表结构

字段名称

字段类型

字段大小

约束

备注

stuid

varchar

4

主键

学号

stuname

varchar

10

姓名

stutel

varchar

11

联系方式

stuschool

varchar

20

学校名称

stupro

varchar

20

专业名称

        数据表内容如表2所示。

表2 学生信息表

Stuid

Stuname

Stutel

Stuschool

Stupro

1001

张三

13312345678

职业学院

软件技术

1002

李思

13112345678

职业学院

软件技术

1003

李武

13212345678

职业学院

软件技术

1004

王舞

13312345678

职业学院

软件技术

1005

赵柳

13412345678

职业学院

软件技术

1006

赵谦

13512345678

职业学院

软件技术

1007

杨杨

13312345678

职业学院

大数据技术

1008

柳柳

13432145687

职业大学

大数据技术

1009

张航

13512345695

职业大学

大数据技术

1010

李蒙

13132165444

技术学院

人工智能

1011

王向

13032654780

技术学院

人工智能

1012

郭果

12578963254

科技大学

云计算技术

1013

张燕

13612365478

科技大学

云计算技术

        2.创建数据库连接操作类

        本例中用到的数据连接字符串中有关信息要根据读者部署的开发环境对应设置。

        数据库连接类的代码如下。读者可以针对数据库表的增加、删除、修改、查询操作补充自定义方法进一步完善连接操作类。

import java.sql.*;
public class ConnectDB {
    Connection conn ;
    Statement stmt;
    public ConnectDB() throws ClassNotFoundException, SQLException {
        //1.加载驱动程序:com.mysql.cj.jdbc.Driver是添加的外接库
        Class.forName("com.mysql.cj.jdbc.Driver"); 
        //2.连接数据库
        //2.1 构造连接字符串
        String url = "jdbc:mysql://localhost:3306/student";//数据库服务器地址及连接数据库名称
        String user = "root";//确定连接用户,使用系统提供的root用户
        String pwd = "123456";//使用设定的root用户密码
    //2.2 使用DriverManager连接数据库
        conn = DriverManager.getConnection(url,user,pwd);
    //3.创建语句执行体对象,用来执行关于sql语句的相关方法
        stmt = conn.createStatement();
    } 
//关闭记录集、关闭语句执行体、关闭连接
    public void closecnndb() throws SQLException {
        stmt.close();
        conn.close();
    }
}
        3.创建表格显示数据

        创建一个JFrame窗体,在期内添加JTable表格,为表格添加滚动条。表格显示从数据库student的表格studentinfo中的所有记录。相关知识已经在作者有关博文中介绍,不再赘述。本程序实现代码如下。       

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.sql.ResultSet;
import java.sql.SQLException;
public class JTableShowMysqlDataDemo  extends JFrame{
	public JTableShowMysqlDataDemo() throws ClassNotFoundException, SQLException {
		inigui();
	}
	//构建界面
	public void inigui() throws ClassNotFoundException, SQLException {
		this.setSize(600,300);
		this.setTitle("JTable显示数据表信息示例");
		this.setLocationRelativeTo(null);//界面居中显示
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLayout(null);//设置无布局管理模式		
		//添加一个表格显示学生信息。用字段名称构造表格标题
		String[] columheader = {"学号","姓名","联系电话","学校","专业"};
		//创建表格模型
		DefaultTableModel stutablemodel = new DefaultTableModel(columheader,0);
		//连接数据库,向表格模型中添加查询的数据
		iniTable(stutablemodel);
		//以模型创建表格
		JTable stutable = new JTable(stutablemodel);		
		//为表格加滚动条
		JScrollPane stujsp = new JScrollPane(stutable);
		stujsp.setSize(500,200);
		stujsp.setLocation(50,30);				
		//将滚动面板添加到框架中
		this.getContentPane().add(stujsp);
		this.setVisible(true);
	}
	public void iniTable(DefaultTableModel tablemodel) throws ClassNotFoundException, SQLException {
		ConnectDB connecdb = new ConnectDB();//创建数据库连接对象
		//构建查询SQL语句
		String sql = "select * from studentinfo";
		ResultSet rs = connecdb.stmt.executeQuery(sql);
		while(rs.next()){//next()返回值为true说明记录集中有符合条件的数据
			String stuid = rs.getString("stuid");
			String stuname = rs.getString("stuname");
			String stutel = rs.getString("stutel");
			String stuschool = rs.getString("stuschool");
			String stupro = rs.getString("stupro");
			String[] rowdata = {stuid,stuname,stutel,stuschool,stupro};
			tablemodel.addRow(rowdata);//将行记录添加到表格模型中
		}
		rs.close();
		connecdb.closecnndb();
	}
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		new JTableShowMysqlDataDemo();
	}
}

        运行以上代码,程序运行结果如图1所示。        

Java Swing之JTable连接Mysql数据库显示数据示例 图1 JTable显示Mysql数据库表记录

        以上程序尚有较多可以完善提升的地方,抛砖引玉,读者可以自行优化完善,特别是表格的美化,值得技术探讨与实现,作者也会今后力争写篇关于表格优化的博文回报读者的关注与支持。 

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]