public void adminerDate(){ String sql="select * from adminerinfo"; try { conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/dormitory_management_system?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true","root","Maoxingyumysql520!"); pstmt= conn.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs=pstmt.executeQuery(); rs.last(); //获取表格中的列数及列名 int n=rs.getRow(); Object data[][]=new Object[n][4]; buTable=new JTable(data,new String[] {"\u5de5\u53f7", "\u5bc6\u7801", "\u59d3\u540d", "\u8054\u7cfb\u7535\u8bdd"}); rs.beforeFirst(); int i=0; while (rs.next()){ data[i][0]=rs.getString(1); data[i][1]=rs.getString(2); data[i][2]=rs.getString(3); data[i][3]=rs.getString(4); i++; } rs.close(); conn.close(); }catch (SQLException e){ e.printStackTrace(); } System.out.println("adminerDate()被调用了"); }
时间: 2024-04-27 22:22:01 浏览: 10
这段代码是用来查询数据库中的adminerinfo表,并将查询结果显示在一个JTable对象中。其中,conn表示数据库连接对象,pstmt表示PreparedStatement对象,rs表示ResultSet对象,通过执行SQL语句获取查询结果。然后,将查询结果逐行读取并存储到一个二维数组中,最后将该二维数组作为参数传递给JTable对象,生成一个表格显示查询结果。
相关问题
添加代码使得这段代码显示在一个窗口中:package csclient; import java.sql.*; public class Test { private static String driver = "com.mysql.cj.jdbc.Driver"; private static String URL = "jdbc:mysql://localhost:3306/student"; private static String user = "root"; private static String password = "z7.h7.m7."; /** * JDBC测试. */ private static void JDBCexample() { // 1.加载数据库驱动 try { Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } testStatement(); } /** * 测试Statement的用法. */ private static void testStatement() { try (// 2.打开数据库连接 Connection conn = DriverManager.getConnection(URL, user, password); // 3.创建语句 Statement stmt = conn.createStatement()) { // 模拟SQL注入 testSqlInjecton(stmt); } catch (SQLException sqle) { System.out.println("SQLException : " + sqle); } } /** * 模拟SQL注入. * * @param stmt Statement对象. * @throws SQLException */ private static void testSqlInjecton(Statement stmt) throws SQLException { String name = "X' or 'Y' = 'Y"; String sql = "select * from stu_info where name = '" + name + "'"; ResultSet rs = stmt.executeQuery(sql); ResultSetPrinter.printResultSet(rs); } public static void main(String[] args) { JDBCexample(); } }
您可以使用Swing框架来创建一个简单的窗口,并将代码显示在其中。以下是示例代码:
```java
import javax.swing.*;
import java.awt.*;
public class CodeWindow extends JFrame {
public CodeWindow() {
// 设置窗口标题
setTitle("Code Display");
// 创建文本区域,用于显示代码
JTextArea codeTextArea = new JTextArea(20, 40);
codeTextArea.setEditable(false);
// 将代码添加到文本区域
String code = "package csclient; import java.sql.*; public class Test { private static String driver = \"com.mysql.cj.jdbc.Driver\"; private static String URL = \"jdbc:mysql://localhost:3306/student\"; private static String user = \"root\"; private static String password = \"z7.h7.m7.\"; /** * JDBC测试. */ private static void JDBCexample() { // 1.加载数据库驱动 try { Class.forName(driver); } catch (ClassNotFoundException e) { e.printStackTrace(); } testStatement(); } /** * 测试Statement的用法. */ private static void testStatement() { try (// 2.打开数据库连接 Connection conn = DriverManager.getConnection(URL, user, password); // 3.创建语句 Statement stmt = conn.createStatement()) { // 模拟SQL注入 testSqlInjecton(stmt); } catch (SQLException sqle) { System.out.println(\"SQLException : \" + sqle); } } /** * 模拟SQL注入. * * @param stmt Statement对象. * @throws SQLException */ private static void testSqlInjecton(Statement stmt) throws SQLException { String name = \"X' or 'Y' = 'Y\"; String sql = \"select * from stu_info where name = '\" + name + \"'\"; ResultSet rs = stmt.executeQuery(sql); ResultSetPrinter.printResultSet(rs); } public static void main(String[] args) { JDBCexample(); } }";
codeTextArea.setText(code);
// 将文本区域添加到滚动面板中
JScrollPane scrollPane = new JScrollPane(codeTextArea);
// 将滚动面板添加到窗口中
getContentPane().add(scrollPane, BorderLayout.CENTER);
// 设置窗口大小并居中显示
setSize(500, 400);
setLocationRelativeTo(null);
// 显示窗口
setVisible(true);
}
public static void main(String[] args) {
new CodeWindow();
}
}
```
您可以将以上代码保存为一个名为 `CodeWindow.java` 的文件,并在命令行中运行 `javac CodeWindow.java` 编译它。然后,运行 `java CodeWindow` 以启动窗口并显示代码。
根据提示,在右侧编辑器编写代码,使用PreparedStatement 接口完成查询已知数据表的记录,要求根据键盘输入的 ID 找到该记录。package step1; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.io.*; public class JdbcTestFour{ public static final String DBDRIVER="com.mysql.jdbc.Driver"; public static final String DBURL="jdbc:mysql://localhost:3306/school"; public static final String DBUSER="root"; public static final String PASSWORD="123123"; public static void main(String[] args) throws Exception{ int id=0; String name=null; int age=0; String note=null; BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String sql="SELECT id,name,age,note FROM member WHERE id=?"; Connection conn=null; //每一个Connection 对象表示一个数据库连接 PreparedStatement pstmt=null; //数据库操作对象 /********** begin **********/ //加载驱动程序 //根据参数DBURL、DBUSER、PASSWORD 创建连接对象conn /********** end **********/ pstmt=conn.prepareStatement(sql); //执行SQL 语句 System.out.println("请输入学号"); id=Integer.parseInt(br.readLine()); pstmt.setInt(1,id); /********** begin **********/ ResultSet rs; //查询操作 /********** end **********/ /********** begin **********/ //显示查询数据 /********** end **********/ pstmt.close(); //关闭操作,如果不关闭操作,关闭连接也是一样的 conn.close(); //关闭连接 } }package step1; import java.sql.*; public class Insert { public void createDatabase() { try { // 加载数据库驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 建立数据库连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/", "root", "123123"); // 创建 Statement 对象 Statement stmt = conn.createStatement(); // 执行 SQL 语句创建数据库 String sql = "CREATE DATABASE school;"; stmt.executeUpdate(sql); // 关闭 Statement 对象和 Connection 对象 stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } }
代码实现如下:
```java
package step1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;
public class JdbcTestFour {
public static final String DBDRIVER="com.mysql.jdbc.Driver";
public static final String DBURL="jdbc:mysql://localhost:3306/school";
public static final String DBUSER="root";
public static final String PASSWORD="123123";
public static void main(String[] args) throws Exception{
int id=0;
String name=null;
int age=0;
String note=null;
Scanner sc = new Scanner(System.in);
String sql="SELECT id,name,age,note FROM member WHERE id=?";
Connection conn=null;
PreparedStatement pstmt=null;
//加载驱动程序
Class.forName(DBDRIVER);
//根据参数DBURL、DBUSER、PASSWORD 创建连接对象conn
conn = DriverManager.getConnection(DBURL, DBUSER, PASSWORD);
pstmt=conn.prepareStatement(sql);
System.out.println("请输入学号");
id=sc.nextInt();
pstmt.setInt(1,id);
//查询操作
ResultSet rs = pstmt.executeQuery();
if(rs.next()) {
//显示查询数据
name = rs.getString("name");
age = rs.getInt("age");
note = rs.getString("note");
System.out.println("ID: " + id + "\t姓名: " + name + "\t年龄: " + age + "\t备注: " + note);
} else {
System.out.println("未找到该学号对应的记录。");
}
pstmt.close();
conn.close();
}
}
```
该程序实现了根据键盘输入的 ID 查找数据库中对应的记录,并将记录的信息显示出来。其中,使用了 Scanner 类来读取键盘输入的数据。注意,程序所连接的数据库名为 school,所查询的数据表名为 member,需要确保该数据库和数据表已经创建成功。