4

JAVA之MySQL数据库增删改查【Java入门练手】

 2 years ago
source link: https://blog.51cto.com/u_15568258/5235204
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Table of Contents

🔥如果觉得博主的文章还不错的话,请👍三连支持👍一下博主哦

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

二,页面设计

五组——熟食包点
1-添加熟食包点
2-删除熟食包点
  / >按照编号删除
  / >按照名称删除
3-修改熟食包点
  / >按照编号修改
  / >按照名称修改
4-查询熟食包点
  / >按照熟食编号查询
  / >按照熟食名称查询
  / >按照熟食价格删除
  / >查询全部熟食
5-排序熟食包点
  / >按照价格排序
  / >按照库存排序
6-退出熟食包点
请输入数字,选择菜单功能:

如上为基本的页面设计。

三,具体描述

3.1,添加熟食包点

JAVA之MySQL数据库增删改查【Java入门练手】_插入图片
上述代码块解释:
终端输入数字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之MySQL数据库增删改查【Java入门练手】_sql_02
上述代码块解释:
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之MySQL数据库增删改查【Java入门练手】_插入图片_03
上述代码块解释:
把终端输入的查询目标id存入变量inputeatId,后执行:

UserBean user= service.searchByid(inputeatId);

调用service的方法进行查询。

3.3.1,service.searchByid方法

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

3.2.2,dao方法执行查询sql

JAVA之MySQL数据库增删改查【Java入门练手】_sql_04
上述代码块解释:
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之MySQL数据库增删改查【Java入门练手】_sql_05
上述代码块解释:
前面和查询操作一样,先执行查询操作,找到目标值。

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之MySQL数据库增删改查【Java入门练手】_插入图片_06
while遍历结果集。
规定每一个元素占位符大小,为了美观好看,整齐。

JAVA之MySQL数据库增删改查【Java入门练手】_sql_07


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK