自由编程打卡,请老师检查

来源:7-2 自由编程

Mycheol

2020-08-27 11:26:33

package com.imooc.jdbc.goodsapp;

import com.imooc.jdbc.common.DbUtils;
import com.imooc.jdbc.hrapp.command.Command;

import java.sql.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;

public class InsertCommand implements Command {
    @Override
    public void excute() throws SQLException, ClassNotFoundException {
        Scanner in = new Scanner(System.in);
        System.out.print("请输入商品名称:");
        String name = in.next();
        System.out.print("请输入商品价格:");
        float price = in.nextFloat();
        System.out.print("请输入商品描述:");
        String desp = in.next();
        System.out.print("请输入创建时间:");
        String strCreate_date = in.next();
        //输入的字符串日期转换成java.sql.Date类型
        java.util.Date udCreate_date = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        try {
            udCreate_date = sdf.parse(strCreate_date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        long time = udCreate_date.getTime();
        java.sql.Date sdCreate_date = new java.sql.Date(time);
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {
            conn = DbUtils.getConnection();
            String sql = "INSERT INTO goods (name,price,desp,create_date) VALUE (?,?,?,?)";
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1, name);
            pstmt.setFloat(2, price);
            pstmt.setString(3, desp);
            pstmt.setDate(4, sdCreate_date);
            int cnt = pstmt.executeUpdate();

            if (cnt == 1) {
                System.out.println("商品信息添加成功:");
                rs = pstmt.executeQuery("SELECT * FROM goods");
                while (rs.next()) {
                    int gid = rs.getInt(1);
                    String gname = rs.getString("name");
                    float gprice = rs.getFloat("price");
                    String gdesp = rs.getString("desp");
                    Date gdate = rs.getDate("create_date");
                    System.out.println(gid + " " + gname + " " + gprice + " " + gdesp + " " + gdate);
                }
            } else {
                System.out.println("商品信息添加失败!");
            }

        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            DbUtils.closeConnection(null, pstmt, conn);
        }
    }

    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        Command cmd = new InsertCommand();
        cmd.excute();
    }
}

偷懒没有把遍历结果转换成实体类存入到list中,不过还是实现了题目要求的功能,这题应该是为了考察转换日期类型吧?从用户键盘输入的字符串类型转换成java.sql.Date类型的日期对象。

写回答

1回答

好帮手慕小脸

2020-08-27

同学你好,

1、测试同学的代码是可以的,棒棒哒!继续加油!!

2、本题考查点在如下习题这里已经展示了哟:

http://img.mukewang.com/climg/5f4747960970e85106100090.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 16556 问题

查看课程