我试图显示的细节插入到我的数据库上weppage
我尝试过将日期转换为sql日期
public static List<Detail> getAllRecords(){
List<Detail> list = new ArrayList<Detail>();
try{
Connection con = getConnection();
PreparedStatement ps = con.prepareStatement("select * from studentDetails");
ResultSet rs = ps.executeQuery();
while(rs.next()){
Detail u = new Detail();
java.sql.Date dbSqlDate = rs.getDate("dob");
u.setPassword(rs.getInt("password"));
u.setName(rs.getString("name"));
u.setLastname(rs.getString("lastname"));
u.setUsername(rs.getString("username"));
u.setEmail(rs.getString("email"));
u.setAddress(rs.getString("address"));
System.out.println("dbSqlDate=" + dbSqlDate);
u.setAge(rs.getInt("age"));
list.add(u);
}
}catch(Exception e){System.out.println(e);}
return list;
}
我预计输出为2000年3月2日,但它不起作用
快速修复是添加<代码>?在建立连接时,将该URL转换为MySQL JDBC URL。
一个较长的答案的开头会指出...
默认情况下,MySQL允许特殊的“零”日期值存储在DATE/DATETIME列中。检索时,这些值是格式为'0000-00-00'的字符串。当通过JDBCJava时,Java不允许java.util.Date值具有该值。
MySQL的“零”日期行为可能被sql\u模式的某些设置所禁止。我们可能还希望确保列允许空值(即,如果列未定义为非空),和/或修改列定义以提供非零默认值。。。
列中已有的“零”日期值可以替换为空值,例如:
UPDATE `studentDetails` SET dob = NULL WHERE dob = '0000-00-00'
zeroDateTimeBehavior记录在这里:
https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-configuration-properties.html
这里记录了MySQL的日期行为
https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html
摘录:
MySQL允许您将
'0000-00-00'
的“零”值存储为“虚拟日期”在某些情况下,这比使用空值更方便,并且使用更少的数据和索引空间。要禁止'0000-00-00'
,请启用无零日期
模式。
我正在做一个需要从数据库中提取数据的项目,我使用SpringMVC从数据库中构建模型来选择数据。 以下是我的JSP页面的问题: 如您所见,我尝试使用
问题内容: 我正在做一个需要从数据库中提取数据的项目,我使用Spring MVC从数据库中构建模型以选择数据。 这是我的 JSP页面 的问题 : 如您所见,我尝试从标记库中使用。 问题: 但是当使用此 控制器 准备我的模型时 : 它给我这样的错误: 路径为[/ controller]的servlet [appServlet]的service()抛出异常[请求处理失败;嵌套的异常是org.hiber
我有一个包含日期的数据库表 有没有什么方法可以在不改变表结构的情况下获得?
问题内容: 我有一个包含日期的数据库表 我正在使用MySQL。有时从程序中将没有日期的数据传递到数据库。因此, 当使用带错误的日期列调用表数据时,日期值会自动分配给它 在插入数据时,我尝试将null值传递给日期,但是将其分配给当前时间。 有什么办法可以在不更改表结构的情况下获得? 问题答案: 您可以在数据源配置中直接使用此JDBC URL: jdbc:mysql://您的服务器:3306 /您的数
问题内容: 我最近接手了一个十年前创建的旧项目。它使用MySQL 5.1。 除其他外,我需要将默认字符集从latin1更改为utf8。 例如,我有这样的表: 我设置了自己的Mac来进行此工作。不用考虑太多,我运行了“ brew install mysql”,它安装了MySQL 5.7。所以我有一些版本冲突。 我下载了此数据库的副本并将其导入。 如果我尝试运行这样的查询: 我收到此错误: 我以为可以
我想在MySQL中允许零日期。我已将更改为。 我已经在中更改了它。 然而,当我尝试插入数据时,我得到了错误, 数据截断:不正确的datetime值:“0000-00-00 00:00:00” MySQL版本为5.7.18。 这方面的任何想法都将大有帮助。