使用JDBC在Java中创建报告并尝试在sql date和Java util date之间进行转换 [英] Creating report in java with JDBC and trying to convert between sql date and java util date

查看:92
本文介绍了使用JDBC在Java中创建报告并尝试在sql date和Java util date之间进行转换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在用Java编写一些报表,然后在执行SQL查询后将其添加到jTable中.但是,我的表中有一个日期格式,我不知道如何在Java sql日期和Java util日期之间进行转换.我尝试了一些选项,但总是收到此错误:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "DATE" at line 1, column 28.

这是我的对帐单代码:

public void ordersReport() {
    //     if (Calendar.getInstance().get(Calendar.DAY_OF_MONTH) == 1) {
    String sql = "SELECT * FROM ORDERS ORDER DATE ASC, TIME ASC";
    try {
        DefaultTableModel model = (DefaultTableModel) ordTbl.getModel();
        boolean t = model.isCellEditable(1, 1);
        System.out.println(t);
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
            int ordId = rs.getInt("ORDERID");
            String name = rs.getString("NAME");
            String surname = rs.getString("SURNAME");
            String items = rs.getString("ITEMS");
            float cost = rs.getFloat("COST");
            boolean priority = rs.getBoolean("PRIORITY");
            String status = rs.getString("STATUS");
            java.sql.Date date = rs.getDate("NAME");
            Time time = rs.getTime("TIME");
            int empId = rs.getInt("EMPLOYEEID");
           model.addRow(new Object[]{ordId, name, surname, items, cost, priority, status, date, time, empId});
        }
    } catch (SQLException ex) {
        Logger.getLogger(OwnerDashboard.class.getName()).log(Level.SEVERE, null, ex);
    }

解决方案

好,所以我发现了错误,它是在用于SQL查询的字符串语句中出现的,而我在ORDER和DATE之间缺少了BY字样

I'm making some reports in java which then get added to a jTable after execution of an sql query. However, I have a date format in my table and I can't work out how to convert between the java sql date and java util date. I've tried a few options but I always get this error:

java.sql.SQLSyntaxErrorException: Syntax error: Encountered "DATE" at line 1, column 28.

This is what my statement code looks like:

public void ordersReport() {
    //     if (Calendar.getInstance().get(Calendar.DAY_OF_MONTH) == 1) {
    String sql = "SELECT * FROM ORDERS ORDER DATE ASC, TIME ASC";
    try {
        DefaultTableModel model = (DefaultTableModel) ordTbl.getModel();
        boolean t = model.isCellEditable(1, 1);
        System.out.println(t);
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
            int ordId = rs.getInt("ORDERID");
            String name = rs.getString("NAME");
            String surname = rs.getString("SURNAME");
            String items = rs.getString("ITEMS");
            float cost = rs.getFloat("COST");
            boolean priority = rs.getBoolean("PRIORITY");
            String status = rs.getString("STATUS");
            java.sql.Date date = rs.getDate("NAME");
            Time time = rs.getTime("TIME");
            int empId = rs.getInt("EMPLOYEEID");
           model.addRow(new Object[]{ordId, name, surname, items, cost, priority, status, date, time, empId});
        }
    } catch (SQLException ex) {
        Logger.getLogger(OwnerDashboard.class.getName()).log(Level.SEVERE, null, ex);
    }

解决方案

Okay so I found the error and it was in the string statement that is used for the sql query and I was missing the word BY between ORDER and DATE

这篇关于使用JDBC在Java中创建报告并尝试在sql date和Java util date之间进行转换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆