下面我们来看一段代码:
package com.jd;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
import org.omg.Messaging.SyncScopeHelper;
public class Test {
static void menu() {
System.out.println("1、添加学生信息");
System.out.println("2、删除学生信息");
System.out.println("3、修改学生信息");//地址传递
System.out.println("4、查询学生信息");//name
System.out.println("请输入操作,以Enter键结束:");
Scanner scanner = new Scanner(System.in);
int option = scanner.nextInt();
switch(option) {
case 1:{
System.out.println("请输入学号:");
String id=scanner.next();
if(DBUtil.exist("select * from student where id=?", id)) {
System.out.println("学号不允许重复");
return;
}
System.out.println("请输入姓名:");
String name=scanner.next();
System.out.println("请输入号码:");
String mobile=scanner.next();
System.out.println("请输入地址:");
String address=scanner.next();
if(DBUtil.update("insert into student(id,name,mobile,address) values (?,?,?,?)", id,name,mobile,address)) {
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
break;
}
case 2:{
System.out.println("请输入要删除的学生学号:");
String id=scanner.next();
if(!DBUtil.exist("select * from student where id=?", id)) {
System.out.println("该学生不存在,删除失败!");
return;
}else {
if(DBUtil.update("delete from student where id=?", id)) {
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
}
break;
}
case 3:{
System.out.println("请输入要修改的学生学号:");
String id=scanner.next();
if(!DBUtil.exist("select * from student where id=?", id)) {
System.out.println("该学生不存在,修改失败!");
return;
}else {
System.out.println("请输入修改后的学生姓名:");
String name=scanner.next();
System.out.println("请输入修改后的手机号:");
String mobile=scanner.next();
System.out.println("请输入修改后的地址");
String address=scanner.next();
if(DBUtil.update("update student set name=?,mobile=?,address=?where id=?", name,mobile,address,id)) {
System.out.println("学生信息修改成功");
}else {
System.out.println("学生信息修改失败");
}
}
break;
}
case 4:{
System.out.println("请输入要查询的学生学号:");
String id=scanner.next();
class RowMapper implements IRowMapper{
@Override
public void rowMapper(ResultSet resultSet) {
try {
if(resultSet.next()) {
String name=resultSet.getString("name");
String mobile=resultSet.getString("mobile");
String address=resultSet.getString("address");
System.out.println("学生学号 "+id+" 学生姓名"+name+"学生电话"+mobile+"学生地址"+address);
}else {
System.out.println("该学生不存在");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
DBUtil.select("select * from student", new RowMapper(), id);
break;
}
default:{
System.out.println("I'm Sorry,there is not the "+option+" option,please try again.");
}
}
}
public static void main(String[] args) {
System.out.println("*********************************");
System.out.println("*\t\t\t\t*");
System.out.println("*\t欢迎使用学生信息管理系统\t*");
System.out.println("*\t\t\t\t*");
System.out.println("*********************************");
while (true) {
menu();
}
}
}
在这里,我们在学生管理系统的最后一个查询功能的代码块中,我们可以将代码简化,这里运用的是Lambda表达式,我们知道,Lambda表达式可用于简化函数式接口的匿名内部类。但我们这里是一个有名内部类,因此,需要先变为匿名内部类的形式,再参照Lambda表达式的化简过程,我们可以将上述代码作如下化简,下面是化简的两种类型: