豉香春笋丝

1、新鲜的春笋,剥干净皮、切丝;
2、里脊切丝,用生抽、糖、料酒、胡椒粉、黄酒入下味;
3、热锅热油,爆香蒜末、豆豉;
4、入里脊翻炒2分钟;
5、下笋丝、红椒丝,大火翻炒5分钟;
6、加盐、麻油、鸡精调味,撒些香葱就可以吃了。
# 美食推荐系统实现 ## 【案例目标】 通过所学的 Spring 数据库编程知识,实现美食推荐系统的基础功能。用户在控制台输入美食类别,系统返回该类别下的推荐菜品及其详情(如食材、做法简介)。若类别不存在则提示 “无该类别美食”。 **项目运行成功后控制台效果示例**: ``` 欢迎来到美食推荐系统 请输入想吃的美食类别(如中餐、西餐、甜点): 中餐 推荐菜品:麻婆豆腐 食材:豆腐、牛肉末、辣椒、花椒 做法简介:豆腐焯水切块,炒肉末和调料,加入豆腐焖煮,勾芡收汁即可。 推荐菜品:鱼 食材:猪里脊肉、黑木耳、胡萝卜、笋 做法简介:肉腌制后炒制,加入混合调味汁和配菜翻炒,酸甜咸口味。 ``` ## 【思路分析】 根据美食推荐系统需求,实现步骤如下: 1. **创建数据库**:存储美食类别、菜品名称、食材、做法等信息。 1. **配置数据库连接**:在 XML 文件中配置数据源和 JDBC 模板。 1. **编写 Dao 层**:实现按类别查询菜品的方法。 1. **编写 Controller 层**:处理用户输入逻辑,调用 Dao 层获取数据并输出结果。 ## 【实现步骤】 ### 1. 创建数据库 在 MySQL 的food_recommend数据库中创建dish表,表结构如下: | 字段名 | 类型 | 长度 | 是否主键 | 说明 | | ------------ | ------- | ---- | -------- | ------------------ | | id | int | 11 | 是 | 菜品编号 | | category | varchar | 255 | 否 | 美食类别(如中餐) | | dish_name | varchar | 255 | 否 | 菜品名称 | | ingredients | varchar | 1000 | 否 | 食材列表 | | cooking_desc | varchar | 1000 | 否 | 做法简介 | ### 2. 编写实体类 在项目的com.food.entity包中创建Dish类,定义属性及对应的 getter/setter 方法: ``` package com.food.entity; public class Dish { private int id; private String category; private String dishName; private String ingredients; private String cookingDesc; // getter/setter方法 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } public String getDishName() { return dishName; } public void setDishName(String dishName) { this.dishName = dishName; } public String getIngredients() { return ingredients; } public void setIngredients(String ingredients) { this.ingredients = ingredients; } public String getCookingDesc() { return cookingDesc; } public void setCookingDesc(String cookingDesc) { this.cookingDesc = cookingDesc; } } ``` ### 3. 编写配置文件(applicationContext-food.xml) 在resources文件夹下创建配置文件,配置数据源和 JDBC 模板: ``` <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost/food_recommend?useSSL=false" /> <property name="username" value="root" /> <property name="password" value="root" /> </bean> <!-- 配置JDBC模板 --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 配置Dao层Bean --> <bean id="dishDao" class="com.food.dao.impl.DishDaoImpl"> <property name="jdbcTemplate" ref="jdbcTemplate" /> </bean> </beans> ``` ### 4. 编写 Dao 层 #### 接口定义(DishDao.java) 在com.food.dao包中创建接口,声明按类别查询菜品的方法: ``` package com.food.dao; import com.food.entity.Dish; import java.util.List; public interface DishDao { List<Dish> findDishesByCategory(String category); } ``` #### 实现类(DishDaoImpl.java) 在com.food.dao.impl包中实现接口方法,使用 JDBC 模板查询数据: ``` package com.food.dao.impl; import com.food.dao.DishDao; import com.food.entity.Dish; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import java.util.List; public class DishDaoImpl implements DishDao { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } @Override public List<Dish> findDishesByCategory(String category) { String sql = "SELECT * FROM dish WHERE category = ?"; return jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Dish.class), category); } } ``` ### 5. 编写 Controller 层(FoodController.java) 在com.food.controller包中创建类,处理用户输入和业务逻辑: ``` package com.food.controller; import com.food.dao.DishDao; import com.food.entity.Dish; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.List; import java.util.Scanner; public class FoodController { public static void main(String[] args) { System.out.println("欢迎来到美食推荐系统"); System.out.print("请输入想吃的美食类别(如中餐、西餐、甜点): "); Scanner scanner = new Scanner(System.in); String category = scanner.nextLine(); // 加载配置文件并获取Dao实例 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-food.xml"); DishDao dishDao = context.getBean("dishDao", DishDao.class); // 查询该类别下的菜品 List<Dish> dishes = dishDao.findDishesByCategory(category); if (dishes.isEmpty()) { System.out.println("无该类别美食"); } else { for (Dish dish : dishes) { System.out.println("\n推荐菜品:" + dish.getDishName()); System.out.println("食材:" + dish.getIngredients()); System.out.println("做法简介:" + dish.getCookingDesc()); } } scanner.close(); } } ``` ## 【扩展任务】(可选) 在基础功能上实现注册新菜品功能: 1. 用户输入菜品名称、类别、食材、做法,系统将数据存入数据库。 1. 可添加简单验证(如类别是否合法、食材格式是否正确)。 1. 调用第三方接口(如美食图片 API)为推荐菜品返回配图链接。idea软件实现na
05-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值