1.描述
Java jdbc连接 sqlserver数据库注意事项
返回 sqlserver date,datetime 数据类型处理
Caused by: java.lang.IllegalArgumentException
at java.sql.Date.getHours(Date.java:187)
2.方法
2.1 sqlserver驱动加载
2006以下
驱动: com.microsoft.jdbc.sqlserver.SQLServerDriver
sqljdbc.jar
加载驱动方式:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
2006以上
驱动: com.microsoft.sqlserver.jdbc.SQLServerDriver
sqljdbc42.jar
加载驱动方式:
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
2.2 sqlserver 日期字段处理(Caused by: java.lang.IllegalArgumentException
at java.sql.Date.getHours(Date.java:187) 报错处理)
date:(年-月-日)
if (rs.getObject(i) instanceof Date) {// SQL server 字段类型为 date
if (null == rs.getObject(i)) {
value = null;
} else {
String dateStr = "";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String ss = String.valueOf(rs.getObject(i));
java.util.Date date = format.parse(ss);// 字符串时间转为时间格式
dateStr = format.format(date);// 时间类型格式化为字符串格式
value = dateStr;
}
}
datetime:(年-月-日 时:分:秒.毫秒)
if (rs.getObject(i) instanceof Timestamp) {// sqlserver 字段类型为 datetime
if (null == rs.getObject(i)) {
value = null;
} else {
String dateStr = "";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String ss = String.valueOf(rs.getObject(i));
java.util.Date date = format.parse(ss);// 字符串时间转为时间格式
dateStr = format.format(date);// 时间类型格式化为字符串格式
value = dateStr;
}
}
3.注意
SQLserver 日期处理不能和 oracle 通用 oracle 日期类型都是 data