一、步骤

1.获取Date实例,并通过getTime()方法获得毫秒数;

2.将获取的毫秒数存储到数据库中,注意存储类型为nvarchar(20);

3.读取数据库的毫秒数,作为Date构造方法的参数创建实例,有需要再转换时间格式。

二、代码示例

  1. package com.yh.dao;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9. import java.text.SimpleDateFormat;
  10. import java.util.Date;
  11.  
  12. import com.yh.util.ConfigManager;
  13.  
  14. public class NewsDao {
  15. public static void main(String[] args) {
  16. NewsDao nd = new NewsDao();
  17. nd.addData(005, "洪旭", 21, new Date().getTime());
  18. nd.getData();
  19. }
  20.  
  21. // 查询数据
  22. public void getData() {
  23. Connection con = null;
  24. ConfigManager configManager = ConfigManager.getInstance();
  25. String url = configManager.getString("jdbc.connection.url");
  26. String username = configManager.getString("jdbc.connection.username");
  27. String password = configManager.getString("jdbc.connection.password");
  28. String driver = configManager.getString("jdbc.SQLServerDriver.class");
  29.  
  30. try {
  31. // 加载驱动
  32. Class.forName(driver);
  33. // 获得数据库连接
  34. con = DriverManager.getConnection(url, username, password);
  35. // 执行sql语句
  36. String sql = "select * from student";
  37. Statement statement = con.createStatement();
  38. ResultSet rs = statement.executeQuery(sql);
  39. while (rs.next()) {
  40. int id = rs.getInt(1);
  41. String name = rs.getString(2);
  42. int age = rs.getInt(3);
  43. long createDate = rs.getLong(4);
  44. Date date = new Date(createDate);
  45. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  46. System.out.println(id + "\t" + name + "\t" + age + "\t" + sdf.format(date));
  47. }
  48. } catch (ClassNotFoundException e) {
  49. e.printStackTrace();
  50. } catch (SQLException e) {
  51. // TODO Auto-generated catch block
  52. e.printStackTrace();
  53. } finally {
  54. try {
  55. con.close();
  56. } catch (SQLException e) {
  57. // TODO Auto-generated catch block
  58. e.printStackTrace();
  59. }
  60. }
  61. }
  62.  
  63. // 插入数据
  64. public void addData(int id, String name, int age, long createDate) {
  65. Connection con = null;
  66. ConfigManager configManager = ConfigManager.getInstance();
  67. String url = configManager.getString("jdbc.connection.url");
  68. String username = configManager.getString("jdbc.connection.username");
  69. String password = configManager.getString("jdbc.connection.password");
  70. String driver = configManager.getString("jdbc.SQLServerDriver.class");
  71. try {
  72. // 加载驱动
  73. Class.forName(driver);
  74. // 获得数据库连接
  75. con = DriverManager.getConnection(url, username, password);
  76. // 执行sql语句
  77. String sql = "insert into student (id,name,age,createDate)values(?,?,?,?)";
  78. PreparedStatement ps = con.prepareStatement(sql);
  79. ps.setInt(1, id);
  80. ps.setString(2, name);
  81. ps.setInt(3, age);
  82. ps.setLong(4, createDate);
  83. int line = ps.executeUpdate();
  84. System.out.println("影响行数:" + line);
  85. } catch (ClassNotFoundException e) {
  86. e.printStackTrace();
  87. } catch (SQLException e) {
  88. // TODO Auto-generated catch block
  89. e.printStackTrace();
  90. } finally {
  91. try {
  92. // 释放资源
    ps.close();
  93. con.close();
  94. } catch (SQLException e) {
  95. // TODO Auto-generated catch block
  96. e.printStackTrace();
  97. }
  98. }
  99. }
  100. }

三、Statement和PreparedStatement的比较

1.Statement由Connection类的createStatement()方法创建,用于发送相对简单,参数较少的sql语句;

2.PreparedStatement由Connection类的preparedStatement()方法创建,用于发送参数较多的sql语句;

3.sql语句使用 " ? " 作为数据占位符,使用set***(int index, 值)方法设置数据。

java通过jdbc连接数据库并更新数据(包括java.util.Date类型数据的更新)的更多相关文章

  1. Java开发JDBC连接数据库

    Java开发JDBC连接数据库 创建一个以JDBC连接数据库的程序,包含6个步骤: JDBC五部曲1.加载驱动2.获得链接3.获取statement对象 4.执行SQL语句5.产生resultset对 ...

  2. 在oracle中存入date类型数据遇到的问题及其解决方法(利用java.sql.date和Timestamp)

    转自:https://blog.csdn.net/ShadowerWArden/article/details/80652377 1. 使用JDBC操作Oracle数据库时,使用java.sql.Da ...

  3. JDBC MySQL字段类型为datetime的数据取出(util.Date)

    使用ResultSet的getTimestamp方法获取java.util.Date型数据 java.util.Date time = rs.getTimestamp("time" ...

  4. java中,字符串类型的时间数据怎样转换成date类型。

    将字符串类型的时间转换成date类型可以使用SimpleDateFormat来转换,具体方法如下:1.定义一个字符串类型的时间:2.创建一个SimpleDateFormat对象并设置格式:3.最后使用 ...

  5. 【Spring】SpringMVC中浅析Date类型数据的传递

    在控制器中加入如下代码: @InitBinder public void initBinder(ServletRequestDataBinder bin){ SimpleDateFormat sdf ...

  6. SpringMVC 处理Date类型数据@InitBinder @DateTimeFormat 注解 的使用

    使用SpringMVC的时候,需要将表单中的日期字符串转换成对应JavaBean的Date类型,而SpringMVC默认不支持这个格式的转换,解决方法有两种,如下: 方法一 . 在需要日期转换的Con ...

  7. DATE类型数据在MySql中减一天的问题

    最近在开发一个教务管理系统,数据库中有教师表(Teacher).学生表(Student)等,其中属性:出生日期(Birthday)为DATE类型. 在执行更新教师操作时,发现未改动教师的出生日期但更新 ...

  8. java开发JDBC连接数据库详解

    JDBC连接数据库 好文一定要让大家看见 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机) ...

  9. Java中JDBC连接数据库代码和步骤详解总结

    JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤:         1.加载JDBC驱动程序:         在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Jav ...

随机推荐

  1. ubuntu install redis

    ubuntu install redis apt-get update apt-get install redis-server redis-server --daemonize yes

  2. VMware Workstation 无法连接到虚拟机。请确保您有权运行该程序、访问该程序使用的所有目录以及访问所有临时文件目录。 VMware Authorization Service 当前未运行

    VMware Workstation 无法连接到虚拟机.请确保您有权运行该程序.访问该程序使用的所有目录以及访问所有临时文件目录. VMware Authorization Service 当前未运行 ...

  3. SpringCloud升级之路2020.0.x版-34.验证重试配置正确性(1)

    本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 在前面一节,我们利用 resilience4j 粘合了 OpenFeign 实现了断路器. ...

  4. Part 16 ng include directive in AngularJS

    ng-include directive is used to embed an HTML page into another HTML page. This technique is extreme ...

  5. Django笔记&教程 0-1 前言

    Django 自学笔记兼学习教程第0章第1节--前言 点击查看教程总目录 1 最初的想法 自学Django已经有一段时间了,自认收获不少,学的还算可以,然而实际去做项目写代码的时候,很多用法记得不清, ...

  6. 大爽Python入门教程 2-1 认识容器

    大爽Python入门公开课教案 点击查看教程总目录 1 什么是容器 先思考这样一个场景: 有五个学生,姓名分别为: Alan, Bruce, Carlos, David, Emma. 需要给他们都打一 ...

  7. 那一天,我被Redis主从架构支配的恐惧

    面试官:要不你来讲讲你最近在看的点呗?可以拉出来一起讨论下(今天我也不知道要问什么) 候选者:最近在看「Redis」相关的内容 面试官:嗯,我记得已经问过Redis的基础和持久化了 面试官:要不你来讲 ...

  8. Spring Boot核心注解

    (1)@SpringBootApplication 代表SpringBoot的启动类 (2)@SpringBootConfiguration 通过bean对象来获取配置信息 (3)@Configura ...

  9. MS17-010漏洞利用

    MS17-010漏洞利用 1.安装虚拟机win7 x64,实现利用ms17-010实现对其win7 x64主机开始渗透,查看该主机信息,打开远程桌面,抓取用户名和密码并破译,创建一个 : 学号.txt ...

  10. 【R】一对一变为一对多:将列折叠/连接/聚合为每个组(一行)内的字符串?

    目录 需求 实现 方法一 其他方法 data.table dplyr aggregate sqldf 延申:不用逗号分隔 需求 原始文件: data <- data.frame(A = c(re ...