JDBC學(xué)習(xí)記錄——Oracle和mysql對于Date的用法差別

先看這一段代碼

public static void main(String[] args) {
        //查詢?nèi)肼殨r間在XXX日期之后,并且不從事XXX職位工作的員工姓名、入職時間、職位。
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/mysqldb";
            String username = "root";
            String password = "root";
            Connection con=DriverManager.getConnection(url,username,password);
            
            Scanner sc =new Scanner(System.in);
            System.out.println("請輸入時限");
            String limitdate = sc.nextLine();
            System.out.println("請輸入不從事的工作");
            String nojob = sc.nextLine();
            
            String sql ="select ename,hiredate,job from emp where hiredate>? and job != ?";
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setString(1, limitdate);
            ps.setString(2, nojob);
            
            ResultSet rs =ps.executeQuery();
            while(rs.next()) {
                String ename = rs.getString("ename");
                String hiredate = rs.getString("hiredate");
                String job = rs.getString("job");
                System.out.println("員工姓名:"+ename+",入職日期:"+hiredate+",職位:"+job);     
            }
            rs.close();
            ps.close();
            con.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }

摘取討論片段:

            String sql="select  ename,hiredate,job from emp where hiredate>? and job<>?";
            PreparedStatement ps=con.prepareStatement(sql);

            Date dd=Date.valueOf(hiredate);
            
//          ps.setString(1, hiredate);
            ps.setDate(1, dd);
            ps.setString(2, job);

1.MySQL可以把表示日期的字符串轉(zhuǎn)換成真正的日期
2.如果是Oracle,沒法自動把String轉(zhuǎn)換成Date
3.ps.setDate方法接收日期參數(shù)是java.sql.Date,不是java.util.Date
4.使用java.sql.Date的靜態(tài)方法valueOf把表示日期的字符轉(zhuǎn)換為真正日期

Oracle對于Date的用法
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容