PreparedStatement.setDate添加时间

本文介绍了如何在Java中操作日期时间并将其存入数据库的方法。重点讲解了使用SimpleDateFormat进行时间格式化的过程,以及PreparedStatement在设置时间和字符串类型字段时的具体应用。同时,也提到了从数据库读取时间后再次格式化的步骤。

 调试了好长时间

1.//将当前日期时间存入数据库   
2.pstmt.setTimestamp(4, new Timestamp(System.currentTimeMillis()));   
3.pstmt.setTimestamp(4, new Timestamp((new java.util.Date()).getTime()));  
如果想用javabean添加时间

数据库中的时间格式是Date,Datetime

首先把时间格式化一下

SimpleDateFormat fmt=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

PreparedStatement.setDate就不要用了

PreparedStatement.setString(11,fmt.format(info.getDate()));

取时间的时候

user.setDatetime(rs.getTimestamp("datetime"));

然后再格式化一下

 System.out.print(fmt.format(user.getDatetime()));

实验证明是很好

package teacher; import java.sql.Connection; import java.sql.Date; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import util.DBConnection; public class TeacherDaoImpl implements TeacherDao { @Override public void insert(Teacher teacher) throws Exception { String sql = "INSERT INTO teachers (id, name, gender, birth_date, phone, email, hire_date, title, degree, department, subject_area, office_location) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, teacher.getId()); ps.setString(2, teacher.getName()); ps.setString(3, teacher.getGender()); ps.setDate(4, Date.valueOf(teacher.getBirthDate())); ps.setString(5, teacher.getPhone()); ps.setString(6, teacher.getEmail()); ps.setDate(7, Date.valueOf(teacher.getHireDate())); ps.setString(8, teacher.getTitle()); ps.setString(9, teacher.getDegree()); ps.setString(10, teacher.getDepartment()); ps.setString(11, teacher.getSubjectArea()); ps.setString(12, teacher.getOfficeLocation()); ps.executeUpdate(); } } @Override public void update(Teacher teacher) throws Exception { String sql = "UPDATE teachers SET name=?, gender=?, birth_date=?, phone=?, email=?, hire_date=?, title=?, degree=?, department=?, subject_area=?, office_location=? WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setString(1, teacher.getName()); ps.setString(2, teacher.getGender()); ps.setDate(3, Date.valueOf(teacher.getBirthDate())); ps.setString(4, teacher.getPhone()); ps.setString(5, teacher.getEmail()); ps.setDate(6, Date.valueOf(teacher.getHireDate())); ps.setString(7, teacher.getTitle()); ps.setString(8, teacher.getDegree()); ps.setString(9, teacher.getDepartment()); ps.setString(10, teacher.getSubjectArea()); ps.setString(11, teacher.getOfficeLocation()); ps.setInt(12, teacher.getId()); ps.executeUpdate(); } } @Override public void delete(int id) throws Exception { String sql = "DELETE FROM teachers WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, id); ps.executeUpdate(); } } @Override public Teacher findById(int id) throws Exception { String sql = "SELECT * FROM teachers WHERE id=?"; try (Connection conn = DBConnection.getConnection(); PreparedStatement ps = conn.prepareStatement(sql)) { ps.setInt(1, id); ResultSet rs = ps.executeQuery(); if (rs.next()) { return mapRowToTeacher(rs); } return null; } } @Override public List<Teacher> findAll() throws Exception { String sql = "SELECT * FROM teachers"; List<Teacher> list = new ArrayList<>(); try (Connection conn = DBConnection.getConnection(); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql)) { while (rs.next()) { list.add(mapRowToTeacher(rs)); } } return list; } private Teacher mapRowToTeacher(ResultSet rs) throws SQLException { Teacher t = new Teacher(); t.setId(rs.getInt("id")); t.setName(rs.getString("name")); t.setGender(rs.getString("gender")); t.setBirthDate(rs.getDate("birth_date").toLocalDate()); t.setPhone(rs.getString("phone")); t.setEmail(rs.getString("email")); t.setHireDate(rs.getDate("hire_date").toLocalDate()); t.setTitle(rs.getString("title")); t.setDegree(rs.getString("degree")); t.setDepartment(rs.getString("department")); t.setSubjectArea(rs.getString("subject_area")); t.setOfficeLocation(rs.getString("office_location")); return t; } } 根据这个,生成一下GUI界面代码
11-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值