JDBC之日期问题
2017-07-05 22:00
295 查看
在Java中有两个日期类型(当然JDK8还新增java.time.LocalDate),一个是java.sql.Date,另一个是java.util.Date类,其中java.sql.Date类继承自java.util.Date类。同时需要注意的是,java.sql.Date只包含日期,而java.util.Date还包含时间。
测试类中的代码:
package cn.itcast.jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import org.junit.Test;
/**
* 测试java.util.Date和java.sql.Date
*/
public class DateTest {
/**
* 该方法测试成功
* @throws SQLException
*/
@Test
public void testCreate() throws SQLException {
/**
* 注意这里传入的是java.util.Date
*/
create("name2", new Date(), 500.0f);
}
/**
* 该方法测试成功
* @throws SQLException
*/
@Test
public void testRead() throws SQLException {
Date d = read(3);
System.out.println(d);
}
/**
* 通过id查询结果
* @param id
* @return
* @throws SQLException
*/
static Date read(int id) throws SQLException {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
Date birthday = null;
try{
conn = JdbcUtils.getConnection();
st = conn.createStatement();
rs = st.executeQuery("select birthday from user where id=" + id);
while(rs.next()) {
//通过这种方式构造会输出时间
//输出结果:Tue May 30 00:00:00 CST 2017
birthday = new Date(rs.getDate("birthday").getTime());
//注意:下面的方法返回的是java.sql.Date,但是java.sql.Date是继承
//自java.util.Date,所以可以直接进行赋值操作,这样写输出日期
//输出结果:2017-05-30
//birthday = rs.getDate("birthday");
}
}finally {
JdbcUtils.free(rs, st, conn);
}
return birthday;
}
/**
* 执行插入操作
* @param name
* @param birthday java.util.Date
* @param money
* @throws SQLException
*/
static void create(String name, Date birthday, float money) throws SQLException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
conn = JdbcUtils.getConnection();
String sql = "insert into user(name,birthday, money) values (?, ?, ?)";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
//这里将java.util.Date转换为java.sql.Date,
//并且该方法接收参数是java.sql.Date
ps.setDate(2, new java.sql.Date(birthday.getTime()));
ps.setFloat(3, money);
int i = ps.executeUpdate();
//i表示的是影响的结果
System.out.println("i=" + i);
}finally{
JdbcUtils.free(rs, ps, conn);
}
}
}
测试类中的代码:
package cn.itcast.jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import org.junit.Test;
/**
* 测试java.util.Date和java.sql.Date
*/
public class DateTest {
/**
* 该方法测试成功
* @throws SQLException
*/
@Test
public void testCreate() throws SQLException {
/**
* 注意这里传入的是java.util.Date
*/
create("name2", new Date(), 500.0f);
}
/**
* 该方法测试成功
* @throws SQLException
*/
@Test
public void testRead() throws SQLException {
Date d = read(3);
System.out.println(d);
}
/**
* 通过id查询结果
* @param id
* @return
* @throws SQLException
*/
static Date read(int id) throws SQLException {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
Date birthday = null;
try{
conn = JdbcUtils.getConnection();
st = conn.createStatement();
rs = st.executeQuery("select birthday from user where id=" + id);
while(rs.next()) {
//通过这种方式构造会输出时间
//输出结果:Tue May 30 00:00:00 CST 2017
birthday = new Date(rs.getDate("birthday").getTime());
//注意:下面的方法返回的是java.sql.Date,但是java.sql.Date是继承
//自java.util.Date,所以可以直接进行赋值操作,这样写输出日期
//输出结果:2017-05-30
//birthday = rs.getDate("birthday");
}
}finally {
JdbcUtils.free(rs, st, conn);
}
return birthday;
}
/**
* 执行插入操作
* @param name
* @param birthday java.util.Date
* @param money
* @throws SQLException
*/
static void create(String name, Date birthday, float money) throws SQLException {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
conn = JdbcUtils.getConnection();
String sql = "insert into user(name,birthday, money) values (?, ?, ?)";
ps = conn.prepareStatement(sql);
ps.setString(1, name);
//这里将java.util.Date转换为java.sql.Date,
//并且该方法接收参数是java.sql.Date
ps.setDate(2, new java.sql.Date(birthday.getTime()));
ps.setFloat(3, money);
int i = ps.executeUpdate();
//i表示的是影响的结果
System.out.println("i=" + i);
}finally{
JdbcUtils.free(rs, ps, conn);
}
}
}
相关文章推荐
- JDBC操作MySQL5日期类型字段的问题解决方法
- JDBC中的数据类型与日期问题
- 10_传智播客JDBC_jdbc中的数据类型与日期问题
- 第十章 jdbc中的数据类型与日期问题
- mysql jdbc处理0日期格式贞操问题
- mysql jdbc处理0日期格式蛋疼问题-也算是BUG
- jdbc和Java中的日期问题
- 解决JDBC操作数据库日期类型数据时无法精确到秒的问题
- Java JDBC日期操作损失时分秒精度的问题
- jdbc中的日期类型问题
- jdbc的日期问题
- JDBC中数据类型与日期问题
- 传智播客 JDBC基础之日期问题与大文本操作
- jdbc_数据类型与日期问题_访问大段文本数据_二进制类型的数据
- JDBC日期和新的JDK8 日期API转换问题
- jdbc 日期处理问题
- [Microsoft][SQLServer 2000 Driver for JDBC]Connection reset问题
- MySQL字符集问题解决方法(包括改配置文件、命令行修改和JDBC的问题)
- java中有关日期的显示问题
- JAVA中通过JDBC访问MS SQLServer2000的常见问题