都说oracle和mysql,sqlServer都差不多,但还是存在许多问题,这两天一直在oracle中来增删改查,也遇到很多问题,也学到了很多。下边今天找个时间就来总结一下。
日期问题
对于日期问题大家估计都不陌生,我这两天遇到的问题都是一些基础问题,比如对于日期的插入操作需要通过to_date(’2012-09-08’,’yy/MM/dd’)
比如:
*insert into JAVATEST VALUES(‘ulsdjsdj899899’,’ZHANGSAN’,22,to_date(‘2017/02/07’,’yyyy/MM/dd’)
);*
第二个就是关于利用jdbc操作日起对象,首先这里的java.sql.Date和java.util.Date对象需要进行转化操作。
一般的转换都是这个样子的
String sql = “insert into JAVATEST(NAMES,QUANTITY,TIMES) VALUES(?,?,?)”;
prestmt.setDate(3, new java.sql.Date(date.getTime()));
上边是util.Date转换成sql.Date
对于从数据库中去除的sql.Date不用转化为util.Date。直接可以用util.Date接收,代码如下
Date times = set.getDate("TIMES");
这是因为util.Date是sql.Date的父类相当于向上转型,然而util.Date—》sql.Date可以说成是强制转换。
另外附上一下关于取年月日的问题
另类取得年月日的方法:
import java.text.SimpleDateFormat;
import java.util.*;
java.util.Date date = new java.util.Date();
//如果希望得到YYYYMMDD的格式
SimpleDateFormat sy1=new SimpleDateFormat("yyyyMMDD");
String dateFormat=sy1.format(date);
//如果希望分开得到年,月,日
SimpleDateFormat sy=new SimpleDateFormat("yyyy");
SimpleDateFormat sm=new SimpleDateFormat("MM");
SimpleDateFormat sd=new SimpleDateFormat("dd");
String syear=sy.format(date);
String smon=sm.format(date);
String sday=sd.format(date);
操作Oracle中的PrepareStatement
在操作oracle数据库中在通过PrepareStatement中我们可以通过setXxx(x,Object x);l
这里一定要注意set(x,Object obj)
这里的x一定要从1开始,否则会报错“无效的列索引”错误。
jdbc获取connection的封装方法
Class.forName(“oracle.jdbc.driver.OracleDriver”);
String url = “jdbc:oracle:thin:@db.**.com:port/WJDB”;// 设置连接字符串
String username = “username”;
String password = “***“;
Connection con = java.sql.DriverManager.getConnection(url, username,
password);
return con;