public class StudentInfo extends JPanel { //implements ActionListener { Connection connection = new GetConnection().GetConnection(); Users users;//当前用户 int type;//用户类型 JTable table=new JTable(); String[] col ={ "学号", "姓名", "性别","专业编号","宿舍号","寝楼" ,"楼层"}; DefaultTableModel mm = new DefaultTableModel(col, 0); // 定义一个表的模板 public StudentInfo(Users users, int type){//从登录界面传回,用户名和用户类型 this.type=type; this.users=users; setLayout(new FlowLayout()); table.setModel(mm); table.setRowSorter(new TableRowSorter<>(mm));//排序 JPanel jPanel=new JPanel(new FlowLayout()); JScrollPane js=new JScrollPane(table); jPanel.add(js); add(jPanel);
时间: 2024-03-19 14:40:58 浏览: 16
这段代码是一个Java类,名为StudentInfo,它继承了JPanel类。它包含了一个连接数据库的connection对象、一个当前用户的users对象、一个用户类型的type变量、一个名为table的JTable对象、一个包含表头信息的字符串数组col、一个名为mm的表格模型对象、以及一个带有用户信息和用户类型的构造函数。
在构造函数中,它设置了当前类的type和users变量,并且设置了一个FlowLayout布局。它还创建了一个JPanel对象jPanel,并设置了它的布局为FlowLayout,然后在jPanel中添加了一个JScrollPane对象js,该对象包含了table对象。最后,它将jPanel添加到当前类的面板中。
相关问题
// Java Web应用开发技术教程 // 张庆华 // 清华大学出版社 // 2022年3月第一版 // ver 1.0 // 4.3.3 JDBC访问数据库的基本步骤 // 程序 4-1:JDBC连接数据库基本步骤 package chap4samp; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Chap4JDBC { public void testJDBC() { Connection dbConn = null; Statement stmt = null; ResultSet rs = null; try { // 1加载驱动程序 String DBDRIVER = "com.mysql.cj.jdbc.Driver";// MySQL Class.forName(DBDRIVER); // 2建立连接 String url = "jdbc:mySql://localhost:3306/javawebdb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false";// 此条语句在一行,无空格。 String userName = "root"; String password = "123456"; dbConn = DriverManager.getConnection(url, userName, password); // 3创建SQL数据库操作对象 stmt = dbConn.createStatement(); // 4生成SQL语句,在本例中,为了展示JDBC数据库连接和操作,需要用到创建数据表、添加记录、查询记录等几条SQL语句 String createtablesql = "create table studentinfo(stdNo varchar(10) not null,stdName varchar(20),stdAge int(11),stdMajor varchar(255), stdHometown varchar(255),PRIMARY KEY(stdNo))";// 创建表SQL语句 String insertsql = "insert into studentinfo values('2017001','张琴',18,'物流工程','襄阳')";// 添加记录SQL语句 String querysql = "select * from studentinfo";// 查询记录SQL语句 // String deletetablesql="DROP TABLE studentinfo";//删除表SQL语句 // 5执行SQL语句 stmt.executeQuery(createtablesql);// 创建表 stmt.executeQuery(insertsql);// 添加记录,多次运行会提示记录已存在 rs = stmt.executeQuery(querysql);// 查询记录 // 6处理结果集 while (rs.next()) { String stdNo = rs.getString("stdNo"); String stdName = rs.getString("stdName"); int stdAge = rs.getInt("stdAge"); String stdHometown = rs.getString("stdHometown"); System.out.println("学号:" + stdNo + ", 姓名:" + stdName + ", 年龄:" + stdAge + ", 生源地:" + stdHometown); } // stmt.executeUpdate(deletetablesql);//删除表 } catch (Exception e) { e.printStackTrace(); } finally { // 7关闭所有数据库资源 if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (dbConn != null) { try { dbConn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } public static void main(String[] args) { Chap4JDBC mytest = new Chap4JDBC(); mytest.testJDBC(); } }仍然有错,该怎么修改
在程序中出现了以下错误:
1. 驱动程序名写错了,应该为 "com.mysql.jdbc.Driver"。
2. 数据库连接语句写错了,应该为 "jdbc:mysql://localhost:3306/javawebdb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false"。
3. 执行SQL语句时,应该使用 "stmt.executeUpdate(createtablesql)" 和 "stmt.executeUpdate(insertsql)",而不是 "stmt.executeQuery()"。
修改后的程序如下:
```java
package chap4samp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Chap4JDBC {
public void testJDBC() {
Connection dbConn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1加载驱动程序
String DBDRIVER = "com.mysql.jdbc.Driver";
Class.forName(DBDRIVER);
// 2建立连接
String url = "jdbc:mysql://localhost:3306/javawebdb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false";
String userName = "root";
String password = "123456";
dbConn = DriverManager.getConnection(url, userName, password);
// 3创建SQL数据库操作对象
stmt = dbConn.createStatement();
// 4生成SQL语句,在本例中,为了展示JDBC数据库连接和操作,需要用到创建数据表、添加记录、查询记录等几条SQL语句
String createtablesql = "create table studentinfo(stdNo varchar(10) not null,stdName varchar(20),stdAge int(11),stdMajor varchar(255), stdHometown varchar(255),PRIMARY KEY(stdNo))";// 创建表SQL语句
String insertsql = "insert into studentinfo values('2017001','张琴',18,'物流工程','襄阳')";// 添加记录SQL语句
String querysql = "select * from studentinfo";// 查询记录SQL语句
// String deletetablesql="DROP TABLE studentinfo";//删除表SQL语句
// 5执行SQL语句
stmt.executeUpdate(createtablesql);// 创建表
stmt.executeUpdate(insertsql);// 添加记录,多次运行会提示记录已存在
rs = stmt.executeQuery(querysql);// 查询记录
// 6处理结果集
while (rs.next()) {
String stdNo = rs.getString("stdNo");
String stdName = rs.getString("stdName");
int stdAge = rs.getInt("stdAge");
String stdHometown = rs.getString("stdHometown");
System.out.println("学号:" + stdNo + ", 姓名:" + stdName + ", 年龄:" + stdAge + ", 生源地:" + stdHometown);
}
// stmt.executeUpdate(deletetablesql);//删除表
} catch (Exception e) {
e.printStackTrace();
} finally {
// 7关闭所有数据库资源
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (dbConn != null) {
try {
dbConn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
Chap4JDBC mytest = new Chap4JDBC();
mytest.testJDBC();
}
}
```
Build path contains duplicate entry: 'org.eclips...r.StandardVMType/java' for project 'StudentInfo'
这个错误通常表示你的项目配置了重复的构建路径项,导致 Eclipse 找不到正确的构建路径。你可以尝试以下几种方法解决这个问题:
1. 在 Eclipse 中右键单击你的项目,选择“Build Path”->“Configure Build Path”,然后在“Source”选项卡中检查你的构建路径设置是否正确。如果你看到了重复的构建路径项,可以尝试删除其中一个或将它们合并。
2. 在 Eclipse 的“Windows”菜单中选择“Preferences”,然后在左侧导航栏中选择“Java”->“Installed JREs”,确保你已经添加了正确的 JRE,并将其设置为默认的 JRE。
3. 如果你的项目使用了 Maven 或 Gradle 等构建工具,可以尝试清除项目的缓存并重新构建项目。
希望这些方法能够帮助你解决这个问题!