- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我坚持在两种字段中进行提交,这些字段获取表单( View )上的用户输入并插入到数据库中,我已经尝试在网上搜索和查找一些内容以及我所知道的所有内容看到的是自动从电脑插入日期和时间的代码,但我想要的是插入用户输入的数据,我正在尝试这样做:
调用模型类:
package br.com.jdbc.victor.model;
import java.sql.Date;
import java.sql.Time;
/**
*
* @author Victor
*/
public class Call {
private Long callId;
private String priority;
private int priorityId;
private Long priorityDetailId;
private Date initialDate, finalDate;
private Time initialTime, finalTime;
public Call(String priority, int priorityId, Date initialDate, Time initialTime, Time finalTime) {
this.priority = priority;
this.priorityId = priorityId;
this.initialDate = initialDate;
this.initialTime = initialTime;
this.finalTime = finalTime;
}
public Call(String priority, Long priorityDetailId) {
this.priority = priority;
this.priorityDetailId = priorityDetailId;
}
public Call(int priorityId, Long callId){
this.priorityId = priorityId;
this.callId = callId;
}
public Call(){
this.priority = getPriority();
this.priorityId = getPriorityId();
this.initialDate = getInitialDate();
this.initialTime = getInitialTime();
this.finalTime = getFinalTime();
//this.initialDate = new Date();
//this.initialTime = new Time();
//this.finalTime = new Time();
}
/* Getters and Setters.... */
}
MySQLCallDAO DAO 类:
package br.com.jdbc.victor.dao.daoentities;
import br.com.jdbc.dao.DAOException;
import br.com.jdbc.victor.controller.CallDAO;
import br.com.jdbc.victor.model.Call;
import br.com.jdbc.victor.model.PriorityDetail;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Time;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Victor
*/
public abstract class MySQLCallDAO implements CallDAO {
final String INSERT = "INSERT INTO calls (priority, priorityNum, initialDate, initialTime, finalTime) VALUES (?,?,?,?,?)";
final String GETALL = "SELECT * FROM calls";
final String GETID = "SELECT callId FROM calls ORDER BY callId DESC LIMIT 1";
final String ORDER = GETALL + " ORDER BY priorityNum, callId";
//SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
//SimpleDateFormat stf = new SimpleDateFormat("HH:mm");
private Connection con;
private PreparedStatement pstm;
private Statement stm = null;
private ResultSet rs = null;
public MySQLCallDAO(Connection con) {
this.con = con;
}
@Override
public void insert(Call o) throws DAOException {
try{
pstm = con.prepareStatement(INSERT);
pstm.setString(1, o.getPriority());
pstm.setInt(2, o.getPriorityId());
pstm.setDate(3, new java.sql.Date(o.getInitialDate().getTime()));
pstm.setTime(4, new Time(o.getInitialTime().getTime()));
pstm.setTime(5, new Time(o.getFinalTime().getTime()));
if(pstm.executeUpdate() == 0 ){
throw new DAOException("The update can't be saved");
}
} catch (SQLException ex) {
//throw new DAOException("SQL ERROR");
ex.printStackTrace();
} finally {
if(pstm != null){
try {
pstm.close();
} catch (SQLException ex) {
throw new DAOException("Error to close the connection", ex);
}
}
}
}
FormNewCall View 类:
private void btSubmitActionPerformed(java.awt.event.ActionEvent evt) {
try {
Call call = new Call();
MySQLDaoManager man = new MySQLDaoManager("root", "", "localhost", "attendances", 3306);
//java.util.Date date_util = new java.util.Date();
//java.sql.Date date_sql = new java.sql.Date(date_util.getDate());
//java.sql.Time time_sql = new java.sql.Time(date_util.getTime());
try {
call.setPriority(cbPriorityDetail.getSelectedItem().toString());
call.setPriorityNum(Integer.parseInt(tfPriorityDetailId.getText()));
tfInitialDate.commitEdit();
/* The line that gives error under */
call.setInitialDate((Date) tfInitialDate.getValue());
call.setInitialTime(Time.valueOf(tfInitialTime.getText()));
call.setFinalTime(Time.valueOf(tfFinalTime.getText()));
man.getCallDAO().insert(call);
if(tfCallId.getText().length() != 0){
call.setCallId(Long.parseLong(tfCallId.getText()));
man.getCallDAO().update(call);
}
if(tfInitialDate.getValue() != null && tfInitialTime.getValue() != null && tfFinalTime.getValue() != null){
JOptionPane.showMessageDialog(rootPane, "User Inserted!", "Insert Successful", JOptionPane.INFORMATION_MESSAGE);
btNewActionPerformed(evt);
} else {
JOptionPane.showMessageDialog(rootPane, "Please, fill the fields again", "Insert not sucessful", JOptionPane.INFORMATION_MESSAGE);
btNewActionPerformed(evt);
}
} catch (DAOException ex) {
JOptionPane.showMessageDialog(rootPane, "MySQL Error", "Error", JOptionPane.ERROR_MESSAGE);
} catch (ParseException ex) { Logger.getLogger(FormNewCall.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(rootPane, "Error to make connection", "Error", JOptionPane.ERROR_MESSAGE);
}
}
所以我已经尝试了所有方法,但堆栈跟踪异常:
run:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
at br.com.jdbc.victor.view.FormNewCall.btSubmitActionPerformed(FormNewCall.java:360)
at br.com.jdbc.victor.view.FormNewCall.access$500(FormNewCall.java:30)
at br.com.jdbc.victor.view.FormNewCall$6.actionPerformed(FormNewCall.java:152)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
at java.awt.Dialog.show(Dialog.java:1084)
at java.awt.Component.show(Component.java:1671)
at java.awt.Component.setVisible(Component.java:1623)
at java.awt.Window.setVisible(Window.java:1014)
at java.awt.Dialog.setVisible(Dialog.java:1005)
at br.com.jdbc.victor.view.FormNewCall.lambda$main$0(FormNewCall.java:521)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
我想知道如何编写代码以允许用户在数据库中输入日期和时间?!非常感谢!!
最佳答案
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException:
java.util.Date cannot be cast to java.sql.Date
at br.com.jdbc.victor.view.FormNewCall.btSubmitActionPerformed(FormNewCall.java:360)
这可能意味着在 FormNewCall
类的顶部有类似 import java.sql.Date
和 tfInitialDate.getValue()
返回 java.util.Date
,它们是不同的类,并且它们在这种方式上不兼容。
解决此问题的最简单方法是在其中添加适当的转换。
call.setInitialDate(new java.sql.Date(tfInitialDate.getValue().getTime()));
也许您甚至可以省略 java.sql.
包说明符,因为它已经在您的导入中。
更新它实际上变成了以下内容,因为返回类型是getValue()
上的对象
call.setInitialDate(new java.sql.Date(((java.util.Date)tfInitialDate.getValue()).getTime()));
关于java - 如何输入日期和时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40189647/
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!