天天看点

Java程序设计—JDBC实验

实验超市管理系统——商品的管理

知识点​

MySQL数据库JDBC​

学习目标​

1.掌握管理员类和的设计和实现的方法,运用三层架构实现商品管理。​

2.掌握MySQL数据库的基本操作。​

3.应用JDBC技术实现商品的管理​

实验任务​

任务一:​

  1. 任务分解及分工​
主要任务​ 任务分解​ 负责人​
创建商品表​ 根据小组编号,创建对应的商品表​ 朱博​
建立数据库连接​ 朱博​
制作主菜单​ 朱博​
添加商品​ 朱博​
查找商品​

1-根据商品编号查找​

2-根据商品名称查找​

朱博​

修改商品​

1-根据商品名称查找​

2-根据商品编号查找​​

找到后修改商品的信息​

王晓鑫​

党国斌​

删除商品​ 1-根据商品编号删除​ 赵斌​
2-根据商品名称删除​ 孙宗宇​
整体调试​ 朱博​
文档收集整理​

小组会议拍照;​

小组会议记录​

朱博​
完成实验报告​ 朱博​
增加的其他功能​
  1. 查找全部​
  2. 查询某个价格的全部商品​
  3. 根据价格排序输出​
  4. 根据库存排序输出​
  5. 循环执行​

朱博​

Java程序设计—JDBC实验

2、数据库表截图​

包含数据库名,商品表名,商品表的记录,参照用户信息表的截图​

Java程序设计—JDBC实验

3、确定分工后,进一步确定方法​

按照给出的例子,填写方法的相关信息​

功能​ 返回类型​ 方法名​
添加熟食包点​ Bun​ Addeat()​

根据熟食包点编号删除​

根据熟食包点名称删除​

Bun​

Bun​

DeleteeatNumber()​

DeleteeatName()​

根据熟食包点编号修改​

根据熟食包点名称修改​

Bun​

Bun​

CorrecteatNumber()​

CorrecteatName()​

根据熟食包点编号查找​

根据熟食包点名称查找​

查询某个熟食包点价格的全部商品​

查找全部​

Bun​

Bun​

Bun​

Bun​

FindeatNumber()​

FindeatName()​

Findspare()​

Findall()​

根据熟食包点价格排序输出​

根据熟食包点库存排序输出​

Bun​

Bun​

Sortprice()​

sortspare()​

4、如果有小组会议讨论或一对一的讨论,进行截图​

任务二 完成个人任务​

按照分工完成个人任务。​

每个组员,写自己负责的功能的个人任务报告。​

组长最后讲个人任务报告填入到最后一部分附件:个人任务报告中。​

(文件命名为“第X组-XXX个人任务报告”,组长收齐个人任务报告,放在“第X组个人任务报告”压缩文件中,发到QQ群。)​

个人任务报告主要内容包括:​

1、功能描述​

说明要实现一个什么样的功能,对哪个数据表操作,操作的结果是什么,用户交互是什么样的,即用户输入什么数据,UI界面显示什么数据。​

2、功能实现​

(1)功能的涉及的类,Eclipse左侧导航栏的包名和类名的截图​

(2)顺序的按照实现功能所在的类,粘贴代码​

3、运行结果​

运行结果截图​

4、总结​

总结功能实现过程中的经验,比如,遇到什么问题,采用什么方法解决的?​

任务三组内考核​

组长召开腾讯会议,考核个人任务完成情况,给出组内个人考核成绩(A、B或C)​

提交材料包括:​

1、腾讯会议的录屏文件​

组员顺序进行个人功能展示。展示期间要全程开放摄像头,组员一定出镜。​

每个组员顺序的屏幕分享,展示并讲解实现的功能,一定是组员自己讲。​

这个录屏文件和个人任务报告是作为教师打分的依据。​

2-组内讨论个人考核的成绩。​

组长的成绩不用在组内考核,组长在汇报后,组长成绩是小组考核成绩档次+1,比如,小组成绩为良,组长成绩为优;​

任务四4月21日小组汇报​

讲解小组分工及小组成员完成情况。​

讲解实现的基本功能和增加的功能。​

讲解部分重要的功能如何实现。​

每个小组可以由多名同学分别讲解汇报。​

附件:个人任务报告​

一、组长个人任务报告​

一,前言​

这是java老师的一个小组任务。拿来练手,让我对Java入门有了一些基本的感悟与熟悉。​

二,页面设计​

五组——熟食包点​

1-添加熟食包点

2-删除熟食包点

/ >按照编号删除

/ >按照名称删除

3-修改熟食包点

/ >按照编号修改

/ >按照名称修改

4-查询熟食包点

/ >按照熟食编号查询

/ >按照熟食名称查询

/ >按照熟食价格查询

/ >查询全部熟食

5-排序熟食包点

/ >按照价格排序

/ >按照库存排序

6-退出熟食包点

请输入数字,选择菜单功能:​

如上为基本的页面设计。​

三,具体描述​

3.1,添加熟食包点​

Java程序设计—JDBC实验

上述代码块解释:终端输入数字1进入adduser方法,执行添加操作。 依次输入熟食编号,熟食名称,熟食价格,熟食库存。​

service.addUser(uid, eatname, eatprice, spare);​

调用service的方法进行添加。​

3.1.1,service.addUser方法​

public void addUser(String uid, String eatname, String eatprice, String spare) throws SQLException {

dao.addUser(uid, eatname, eatprice, spare);

}​

接受ui传递的四个属性值,调用dao,进行添加。 起了一个中间传递的作用。​

3.1.2,dao方法执行添加sql​

添加一条记录。

Java程序设计—JDBC实验

上述代码块解释:

PreparedStatement:是包中的一个接口,继承Statement,里面有已编译的 SQL 语句。 我觉得他的作用就是简化sql繁琐的拼接过程,方便使用。 里面的sql语句里的?就是他的功劳,提高代码的可读性和可维护性。 执行INSERT 添加sql语句。 后使用executeUpdate抽象方法,返回更新计数。​

3.2,删除熟食包点​

按照编号删除和按照名称删除基本差不多,我们已按照编号删除来写一下。 ui核心代码:​

Scanner input = new Scanner(System.in);

int a = input.nextInt();

int m = service.delete(a);​

把我们需要删除的id输入,存储到变量a,执行service.delete方法,传递a给service类。​

3.2.1,service.delete方法​

public int delete(int a) throws SQLException {

// TODO Auto-generated method stub

return dao.deletewww(a);

}​

依然是传递作用哈。调用dao,进行删除。​

3.2.2,dao方法执行删除sql​

public int deletewww(int a) throws SQLException {

String sql = "DELETE FROM eat WHERE uid=?";

PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql);

pstmt.setInt(1, a);

return pstmt.executeUpdate();

}​

如上代码解释:

较为简单获取传递的目标id值,执行删除sql语句。 后使用executeUpdate抽象方法,返回更新计数。​

3.3,查询熟食包点​

举例:按照熟食编号查询​

Java程序设计—JDBC实验

在这里插入图片描述上述代码块解释:

把终端输入的查询目标id存入变量inputeatId,后执行:​

UserBean user= service.searchByid(inputeatId);​

调用service的方法进行查询。​

3.3.1,service.searchByid方法​

和上文一样,不多说了,传递的作用。目标dao.searchByid。​

3.2.2,dao方法执行查询sql​

Java程序设计—JDBC实验

上述代码块解释: executeQuery()方法来下达select指令以查询数据库。 rs.next():指针指向下一条记录,如果有记录,返回true​

user=new UserBean(u,n, psw,s);​

传入UserBean实体类。​

如果传递的user不为空,执行输出语句。​

System.out.format("%-2s %-8s %-5s %-5s"+'\n',"食品编号","食物名称","食物价格","食品库存");

。。。

System.out.format("%-8s %-8s %-8s %-5s "+'\n',user.getNumber(),user.geteatname(),user.geteatprice(),user.getspare());​

为了规范输出,对其操作。​

3.4,修改熟食包点​

以按照编号修改为例

Java程序设计—JDBC实验

上述代码块解释:前面和查询操作一样,先执行查询操作,找到目标值。​

System.out.println(user.getNumber()+"\t"+user.geteatname()+"\t"+user.geteatprice()+"\t"+user.getspare());​

输出目标的查询结果(和上文查询操作一模一样)。​

之后输入输入新的食物名称,输入新的食物价格,输入新的食物库存。后执行updateid方法。​

3.4.1,service.updateid方法​

和上文一样,不多说了,传递的作用。调用dao的searchByupdateid​

3.4.2,dao方法执行更新sql​

String sql ="update eat set eatname=?,eatprice=?,spare=? where uid=?";

PreparedStatement pstmt =(PreparedStatement) conn.prepareStatement(sql);​

使用PreparedStatemen接口,继承Statement。 执行update sql更新语句。 将传递来的新目标变量,存入数据库中。​

3.5排序熟食包点​

以按照按照价格排序为例。​

System.out.println("按照价格排序:");

ResultSet rs = service.sortprice();​

先执行service.sortprice方法。​

3.5.1,service.updateid方法​

和上文一样,不多说了,传递的作用。调用dao的dao.sortprice​

3.5.2,dao方法执行排序sql​

public ResultSet sortprice() throws SQLException {

Statement stmt = conn.createStatement();

//String sql = "select * from eat";//表名

String sql ="select * from eat order by eatprice desc";

ResultSet rs = stmt.executeQuery(sql);

return rs;

}​

上述代码解释:执行排序sql语句以eatprice为目标建执行降序排序操作。​

返回排序后的对象。​

3.5.3,返回ui输出排序后​

Java程序设计—JDBC实验

while遍历结果集。 规定每一个元素占位符大小,为了美观好看,整齐。​

四,运行结果​

Java程序设计—JDBC实验

增:​

Java程序设计—JDBC实验

删:​

Java程序设计—JDBC实验

改:​

Java程序设计—JDBC实验

查:​

Java程序设计—JDBC实验

排:​

Java程序设计—JDBC实验

总结​

这是我当时做小组任务时在我博客发的一篇文章,直接粘贴过来了,本次实验收获很大,对应遇到问题就是我对python操作mysql比较熟悉,现在换为java有一些陌生,让我对Java对MySQL的操作有了初步的学习,对sql的增删改查以及排序都有了一定的初步了解,对我逐步转型java方向开发起了很大的推动作用。​

  1. 组员1个人任务报告​第五组党国斌个人任务报告​

    一、功能描述​

    我负责的功能是根据商品编号查找,并修改找到后商品的信息。​

    首先,要实现修改这个操作分为两步,第一步,在修改之前要完成查询这个操作。用户在UI界面输入一个查询的编号,然后传递给service,然后通过service再传递给dao,我们在dao里面进行查找,dao查找的结果再返回service,service再传回到IU,通过IU ​

    将其封装成一个User Bean对象,如果没有查找到则返回null。这样我们就完成了第一步。​

    第二步,我们在键盘获取用户输入的修改信息,将修改信息封装成对象,将其传递给dao,将表中的password修改,dao再使用参数user的属性,更新数据表。​

    首先用户在UI界面输入3,进入修改界面再输入1选择用编号查询并修改,然后在键盘输入一个数字,如果数据库中有对应编号,则显示对应该数字的一条信息,(反之,则显示没有找到该信息。)在找到对应信息之后,我们在键盘输入要修改的价格之后,按enter,就完成了信息的修改。​

    二、功能实现​

    Java程序设计—JDBC实验
    包名和类名​
    Java程序设计—JDBC实验

    public class UserBean {​

    private String uid;​

    private String eatname;//用户名​

    private String eatprice;//密码​

    private String spare;​

    //构造方法,带参数​

    public UserBean(String uid, String eatname, String eatprice,String spare) {​

    this.uid = uid;​

    this.eatname = eatname;​

    this.eatprice = eatprice;​

    this.spare = spare;​

    }​

    //set和get​

    public String getNumber() {​

    return uid;​

    }​

    public void setNumber(String uid) {​

    this.uid = uid;​

    }​

    public String geteatname() {​

    return eatname;​

    }​

    public void setName(String eatname) {​

    this.eatname = eatname;​

    }​

    public String geteatprice() {​

    return eatprice;​

    }​

    public void seteatprice(String eatprice) {​

    this.eatprice = eatprice;​

    }​

    public String getspare() {​

    return spare;​

    }​

    public void setspare(String spare) {​

    this.spare = spare;​

    }​

    @Override​

    public String toString() {​

    // TODO Auto-generated method stub​

    return uid+"\t---\t"+eatname+"\t---\t"+eatprice+"\t---\t"+spare;​

    }​

    }​

    Java程序设计—JDBC实验

    public void searchByupdateid(UserBean user) throws SQLException {​

    String sql ="update eat set eatname=?,eatprice=?,spare=? where uid=?";​

    PreparedStatement pstmt =(PreparedStatement) conn.prepareStatement(sql);​

    pstmt.setString(1, user.geteatname());​

    pstmt.setString(2, user.geteatprice());​

    pstmt.setString(3, user.getspare());​

    pstmt.setString(4, user.getNumber());​

    pstmt.executeUpdate();​

    }​

    Java程序设计—JDBC实验

    public UserBean searchByid(String inputeatid) throws SQLException {​

    // TODO Auto-generated method stub​

    return dao.searchByid(inputeatid);​

    }​

    public void updateid(UserBean user) throws SQLException {​

    // TODO Auto-generated method stub​

    dao.searchByupdateid(user);​

    }​

    Java程序设计—JDBC实验

    // 修改中间​

    private static void updatazhong() throws SQLException {​

    System.out.println("--1-按照编号修改 ------");​

    System.out.println("--2-按照名称修改 ------");​

    int inputNumber;​

    Scanner input = new Scanner(System.in);​

    inputNumber = input.nextInt();// 输入整数​

    switch (inputNumber) {​

    case 1:​

    updateid();​

    break;​

    case 2:​

    updatename();​

    break;​

    }​

    }​

    private static void updateid() throws SQLException {​

    // TODO Auto-generated method stub​

    System.out.println("输入要修改的食物编号:");​

    Scanner in = new Scanner(System.in);​

    String inputeatId=in.next();​

    UserBean user= service.searchByid(inputeatId);​

    if(user!=null)​

    {​

    System.out.println(user.getNumber()+"\t"+user.geteatname()+"\t"+user.geteatprice()+"\t"+user.getspare());​

    // System.out.println("输入新的食物编号:");​

    // String inputnewid=in.next();​

    // user.setNumber(inputnewid);​

    System.out.println("输入新的食物名称:");​

    String inputnewname=in.next();​

    user.setName(inputnewname);​

    System.out.println("输入新的食物价格:");​

    String inputnewprice=in.next();​

    user.seteatprice(inputnewprice);​

    System.out.println("输入新的食物库存:");​

    String inputnewspare=in.next();​

    user.setspare(inputnewspare);​

    //~~~~~​

    service.updateid(user);​

    }​

    else​

    {​

    System.out.println("没有找到相关信息!");​

    }​

    }​

  2. 组员3个人任务报告​第五组孙宗宇个人任务报告​
    Java程序设计—JDBC实验

    SupereatUI:​

    package Supereat;​

    import java.sql.ResultSet;​

    import java.sql.SQLException;​

    import java.util.ArrayList;​

    import java.util.Scanner;​

    import javax.naming.spi.DirStateFactory.Result;​

    import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT;​

    /*​

    * 用户界面​

    */​

    public class SupereatUI {​

    static SupereatService service=new SupereatService();​

    public static void main(String[] args) throws SQLException {​

    // TODO Auto-generated method stub​

    //菜单​

    // ​

    System.out.println("---食品商品管理---");​

    System.out.println("--1-查询 ------");​

    System.out.println("--2-删除 ------");​

    System.out.print("请输入数字,选择菜单功能:");​

    // 输入选项​

    int inputNumber;​

    Scanner input = new Scanner(System.in);​

    inputNumber = input.nextInt();// 输入整数​

    switch(inputNumber){​

    case 1:​

    serachAllname();//查询,返回一个UserBean对象的List集合​

    break;​

    case 2:​

    deleteName();​

    break;​

    default:break;​

    } ​

    }​

    private static void deleteName() throws SQLException {​

    // TODO Auto-generated method stub​

    //删除用户,输入用户名,删除对应的记录​

    System.out.println("请输入要删除商品的名字:");​

    Scanner in=new Scanner(System.in);​

    String inputName=in.next();​

    int count=service.deleteName(inputName);​

    System.out.println("已将名字为"+inputName+"的商品删除,执行成功");​

    }​

    private static void serachAllname() throws SQLException {​

    // TODO Auto-generated method stub​

    System.out.println("查询商品所有记录");​

    ResultSet rs=service.searchAllFromWentiInfo();​

    while(rs.next()){​

    String uid=rs.getString("uid");​

    String eatname=rs.getString("eatname");​

    String eatprice=rs.getString("eatprice");​

    System.out.println(uid+"\t"+eatname+"\t"+eatprice);​

    }​

    }​

    }​

    SupereatDAO:​

    package Supereat;​

    import java.sql.ResultSet;​

    import java.sql.SQLException;​

    import java.sql.Statement;​

    import java.util.ArrayList;​

    import com.mysql.jdbc.Connection;​

    import com.mysql.jdbc.PreparedStatement;​

    /*​

    * 删和查功能的实现​

    * wenti_info表​

    */​

    public class SupereatDAO {​

    //获取工具类中的数据库连接对象conn​

    Connection conn=(Connection) JDBCUtils.getConnection();​

    //查找user_info所有记录​

    public ResultSet searchAll() throws SQLException{​

    Statement stmt = conn.createStatement();​

    String sql = "select * from eat";//表名​

    ResultSet rs = stmt.executeQuery(sql);​

    return rs;​

    }​

    public int deleteName(String inputName) throws SQLException {​

    // TODO Auto-generated method stub​

    String sql="DELETE from eat WHERE EATNAME=?";​

    PreparedStatement pstmt=(PreparedStatement) conn.prepareStatement(sql);//创建预处理对象,把sql语句进行预编译,​

    pstmt.setString(1, inputName);//给sql语句中的问号补充完整,也就是传值​

    return pstmt.executeUpdate();//受影响的行数​

    }​

    }​

    SupereatService:​

    package Supereat;​

    import java.sql.ResultSet;​

    import java.sql.SQLException;​

    /*​

    * Service类负责DAO和UI之间传递数据​

    */​

    public class SupereatService {​

    SupereatDAO dao=new SupereatDAO();​

    //获取DAO查找的结果集,并传递出去​

    public ResultSet searchAllFromWentiInfo() throws SQLException{​

    return dao.searchAll();​

    }​

    public int deleteName(String inputName) throws SQLException {​

    // TODO Auto-generated method stub​

    return dao.deleteName(inputName);​

    }​

    }​

    JDBCUtils:​

    package Supereat;​

    import java.sql.Connection;​

    import java.sql.DriverManager;​

    import java.sql.SQLException;​

    public class JDBCUtils {​

    public static final String DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver";​

    public static final String URL = "jdbc:mysql://localhost:3306/supereat?characterEncoding=UTF-8";​

    public static final String USERNAME = "root";​

    public static final String PASSWORD = "123456";​

    public static Connection conn=null; ​

    //使用静态代码块给静态常量成员赋初值​

    static{​

    try {​

    Class.forName("com.mysql.jdbc.Driver");​

    conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);​

    } catch (ClassNotFoundException e) {​

    // TODO Auto-generated catch block​

    e.printStackTrace();​

    } catch (SQLException e) {​

    // TODO Auto-generated catch block​

    e.printStackTrace();​

    }​

    }​

    public static Connection getConnection(){​

    return conn;​

    }​

    }​

    三、运行结果​

    Java程序设计—JDBC实验

    四、总结​

    总结功能实现过程中的经验,比如,遇到什么问题,采用什么方法解决的?​

    删除数据时返回dao 用法的时候出现错误,通过看老师教学回放解决了这个问题。​

  3. 组员4个人任务报告​

三、运行结果​

Java程序设计—JDBC实验

初始数据库​

Java程序设计—JDBC实验

选择修改功能​

Java程序设计—JDBC实验

按编号修改​

Java程序设计—JDBC实验

找到之后修改对应的数据​

Java程序设计—JDBC实验

更新之后的数据库​

四、总结​

在设计完程序之后发现运行代码无法运行,每次都报错显示,<无效的列索引>,令我百思不得其解,因为其他地方没有报错,一开始以为是SQL语句出现问题,但是经过检查之后发现并没有错误,又经过一段时间的查找最后发现是PreparedStatement在调用Set的时候,传参的起始序列号写错了参数的index是从1开始,而不是从0开始。最后成功解决了这个问题。通过这次实践,让我对JDBC有了更加深刻的理解,同时也感谢老师对我们的帮助。​

三、组员2个人任务报告​

第五组赵斌个人任务报告​

  1. 功能描述​

我做的功能是按照编号进行商品删除。​

二、功能实现​

Java程序设计—JDBC实验

这是UI部分:​

private static void deleteUser() throws SQLException{​

System.out.println("编号删除");​

System.out.println("输入编号");​

Scanner input=new Scanner(System.in);​

int a=input.nextInt();​

int m=service.delete(a);​

System.out.println("删除"+m+"条记录");​

}​

这是service部分:​

static UserDAO dao=new UserDAO();​

public int delete(int a) throws SQLException {​

// TODO Auto-generated method stub​

return dao.deletewww(a);​

}​

这是DAO部分:​

public int deletewww(int a)throws SQLException{​

String sql="DELETE FROM eat WHERE uid=?";​

PreparedStatement pstmt=(PreparedStatement) conn.prepareStatement(sql);​

pstmt.setInt(1, a);​

return pstmt.executeUpdate();​

}​

三、运行结果​

Java程序设计—JDBC实验
Java程序设计—JDBC实验
Java程序设计—JDBC实验

四、总结​

删除记录总是为0。​

第五组王晓鑫个人任务报告​

  1. 功能描述​

创建一个熟食包点的数据库,我的任务是通过名称修改数据库内容的功能;对eatmarket中的eat数据表进行修改;通过查找名称(eatname)对其他信息如价格和库存进行修改(eatprice spare),将数据表中的内容实现更新;在UI界面创建一个与用户交互的菜单,会有提示告知用户需要进行的具体操作,如输入特定数字进入修改功能,然后输入修改名称,选择要修改的某个内容,输入想要修改的新内容,即可在数据表当中实现内容的更改。​

二、功能实现​

Java程序设计—JDBC实验

JDBCUtils.java​

package foodmarketMis;​

import java.sql.Connection;​

import java.sql.DriverManager;​

import java.sql.SQLException;​

public class JDBCUtils {​

public static final String DRIVER_CLASS_NAME = "com.mysql.jdbc.Driver";​

public static final String URL = "jdbc:mysql://localhost:3306/foodmarket?characterEncoding=UTF-8";​

public static final String USERNAME = "root";​

public static final String PASSWORD = "321";​

public static Connection conn=null ; ​

//使用静态代码块给静态常量成员赋初值​

static{​

try {​

Class.forName("com.mysql.jdbc.Driver");​

conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);​

} catch (ClassNotFoundException e) {​

// TODO Auto-generated catch block​

e.printStackTrace();​

} catch (SQLException e) {​

// TODO Auto-generated catch block​

e.printStackTrace();​

}​

}​

public static Connection getConnection(){​

return conn;​

}​

}​

UserBean.java​

public class UserBean {​

private String uid;​

private String eatname;//用户名​

private String eatprice;//密码​

private String spare;​

//构造方法,带参数​

public UserBean(String uid, String eatname, String eatprice,String spare) {​

this.uid = uid;​

this.eatname = eatname;​

this.eatprice = eatprice;​

this.spare = spare;​

}​

//set和get​

public String getNumber() {​

return uid;​

}​

public void setNumber(String uid) {​

this.uid = uid;​

}​

public String geteatname() {​

return eatname;​

}​

public void setName(String eatname) {​

this.eatname = eatname;​

}​

public String geteatprice() {​

return eatprice;​

}​

public void seteatprice(String eatprice) {​

this.eatprice = eatprice;​

}​

public String getspare() {​

return spare;​

}​

public void setspare(String spare) {​

this.spare = spare;​

}​

@Override​

public String toString() {​

// TODO Auto-generated method stub​

return uid+"\t---\t"+eatname+"\t---\t"+eatprice+"\t---\t"+spare;​

}​

}​

UserDAO.java​

//import com.mysql.jdbc.Connection;​

import java.sql.Connection;​

import java.sql.ResultSet;​

import java.sql.SQLException;​

import java.sql.Statement;​

import java.sql.PreparedStatement;​

public class UserDAO {​

//Connection conn=(Connection) JDBCUtlis.getConnection();​

Connection conn = (Connection) JDBCUtils.getConnection();​

public void searchByupdatename(UserBean user) throws SQLException {​

//SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'​

//String sql ="update eat(uid,eatname,eatprice,spare) VALUES(?,?,?,?)";​

String sql ="update eat set uid=?,eatprice=?,spare=? where eatname=?";​

PreparedStatement pstmt =(PreparedStatement) conn.prepareStatement(sql);​

pstmt.setString(1, user.getNumber());​

pstmt.setString(2, user.geteatprice());​

pstmt.setString(3, user.getspare());​

pstmt.setString(4, user.geteatname());​

pstmt.executeUpdate();​

}​

}​

UserSerivce.java​

import java.sql.ResultSet;​

import java.sql.SQLException;​

public class UserService {​

UserDAO dao = new UserDAO();​

public void updatename(UserBean user) throws SQLException {​

// TODO Auto-generated method stub​

dao.searchByupdatename(user);​

}​

}​

UserUI.java​

import java.sql.ResultSet;​

import java.sql.SQLException;​

import java.util.Scanner;​

public class UserUI {​

static UserService service = new UserService();​

public static void main(String[] args) throws SQLException {​

// TODO Auto-generated method stub​

boolean flag=true;​

while (flag) {​

//菜单​

System.out.println("-----熟食包点------");​

System.out.println("--1-添加 ------");​

System.out.println("--2-删除 ------");​

System.out.println("--3-修改 ------");​

System.out.println("--4-查询 ------");​

System.out.println("--5-退出 ------");​

System.out.print("请输入数字,选择菜单功能:");​

// 输入选项​

int inputNumber;​

Scanner input = new Scanner(System.in);​

inputNumber = input.nextInt();// 输入整数​

switch (inputNumber) {​

case 1:​

addUser();​

break;​

case 2:​

deletezhong();​

break;​

case 3:​

updatazhong();​

break;​

case 4:​

searchAllUserxian();​

break;​

case 5:​

flag=false;​

break;​

}​

}​

}​

// 修改中间​

private static void updatazhong() throws SQLException {​

System.out.println("--1-按照编号修改 ------");​

System.out.println("--2-按照名称修改 ------");​

int inputNumber;​

Scanner input = new Scanner(System.in);​

inputNumber = input.nextInt();// 输入整数​

switch (inputNumber) {​

case 1:​

updateid();​

break;​

case 2:​

updatename();​

break;​

}​

}​

//按照名称修改​

private static void updatename() throws SQLException {​

// TODO Auto-generated method stub​

System.out.println("输入要修改的食物名称:");​

Scanner in = new Scanner(System.in);​

String inputeatname=in.next();​

UserBean user= service.searchByname(inputeatname);​

if(user!=null)​

{​

System.out.println(user.getNumber()+"\t"+user.geteatname()+"\t"+user.geteatprice()+"\t"+user.getspare());​

System.out.println("输入新的食物编号:");​

String inputnewid=in.next();​

user.setNumber(inputnewid);​

// System.out.println("输入新的食物名称:");​

// String inputnewname=in.next();​

// user.setName(inputnewname);​

System.out.println("输入新的食物价格:");​

String inputnewprice=in.next();​

user.seteatprice(inputnewprice);​

System.out.println("输入新的食物库存:");​

String inputnewspare=in.next();​

user.setspare(inputnewspare);​

service.updatename(user);​

}​

else​

{​

System.out.println("没有找到相关信息!");​

}​

}​

}​

三、运行结果​

开始截图​

Java程序设计—JDBC实验

结束​

Java程序设计—JDBC实验
Java程序设计—JDBC实验