package jdbc; import java.sql.*; import java.util.Scanner; public class HomeWork { /* Test1.java 输入老师的姓名,查询该老师的 姓名,年龄,职称,工资 */ public static void main(String[] args) { try (Connection connection = DBUtil.getConnection();){ Statement statement = connection.createStatement(); Scanner scanner = new Scanner(System.in); System.out.println("请输入老师的姓名:"); String username = scanner.nextLine(); String sql = "SELECT name,age,title,salary FROM teacher WHERE teacher='"+username+"'"; ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()){ String name = resultSet.getString("name"); int age = resultSet.getInt("age"); String title = resultSet.getString("title"); int salary = resultSet.getInt("salary"); System.out.println(""+name+","+age+","+title+","+salary); } } catch ( SQLException e) { e.printStackTrace(); } } }
时间: 2024-02-14 20:22:09 浏览: 46
这是一个Java程序,使用JDBC连接到数据库,并查询指定老师的信息。程序首先提示用户输入老师的姓名,然后构造一个SQL语句,查询名字为该值的教师对应的姓名、年龄、职称和工资。程序使用了Java中的Scanner类读入用户输入,和JDBC中的Connection、Statement和ResultSet等类来连接数据库和执行查询操作。其中,DBUtil.getConnection()方法用于获取数据库连接。需要注意的是,程序中的SQL语句使用了字符串拼接的方式,存在SQL注入的安全隐患。建议使用PreparedStatement或者其他防止SQL注入的方式来编写更安全的查询语句。
相关问题
根据提示,在右侧编辑器编写代码,使用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,需要确保该数据库和数据表已经创建成功。
输入一行,空格分隔的字符s和整数n,字符s是英文的星期几,整数n是与今天相差的天数。 输出 指定天数的星期几英文。 测试说明 平台会对你编写的代码进行测试: 测试输入:Monday 2 预期输出:Wednesday补全Java代码package module6; import java.util.Scanner; public class Test60 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String s; int n; /********** Begin *********/ s=scanner.next(); n=scanner.nextInt(); /********** End *********/ } }
以下是补全后的Java代码:
```java
package module6;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.util.Scanner;
public class Test60 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s;
int n;
/********** Begin *********/
s = scanner.next();
n = scanner.nextInt();
LocalDate date = LocalDate.now();
// 将输入的星期几转换为DayOfWeek枚举类型
DayOfWeek dayOfWeek = DayOfWeek.valueOf(s.toUpperCase());
// 指定天数后的日期
LocalDate newDate = date.plusDays(n);
// 获取指定日期的星期几
DayOfWeek newDayOfWeek = newDate.getDayOfWeek();
// 计算两个星期几之间的差距,得到相差的天数
int diff = newDayOfWeek.getValue() - dayOfWeek.getValue();
if (diff < 0) {
diff += 7;
}
// 输出指定天数的星期几英文
System.out.println(dayOfWeek.plus(diff).name());
/********** End *********/
}
}
```
该程序与之前提供的Java代码类似,不同之处在于将输入的字符s和整数n存储到对应的变量中,并在补全部分的代码中进行操作。
阅读全文