import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import javax.swing.JOptionPane;
public class Connected {
private Connection connect = null;
private PreparedStatement pstm = null;
private ResultSet resultSet = null;
public Connection getConnection() {// 获得与 ORACLE 数据库的连接
try {
Class.forName("oracle.jdbc.OracleDriver");
connect = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:ORCL8", "SYSTEM",
"We090805046");
// System.out.println("connect:" + connect);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connect;
}
public void ReleaseResource() {// 关闭连接 释放资源
try {
if (resultSet != null)
resultSet.close();
if (pstm != null)
pstm.close();
if (connect != null)
connect.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public boolean Insert(String year,String month,String day,String tem) throws ParseException {
//由于数据库中存储的是01代表一月,所以需要将1变为01
boolean flag = true;
String sql="insert into tempt values(?,?)";
connect = getConnection();
if(month.length()==1)
month="0"+month;
if(day.length()==1)
day="0"+day;
SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMdd");
Date date=sdf.parse(year+month+day);
try {
pstm = connect.prepareStatement(sql);
pstm.setDate(1,new java.sql.Date(date.getTime()));
pstm.setInt(2, Integer.parseInt(tem));
resultSet = pstm.executeQuery();
if (resultSet.next())
flag = true;
else
flag = false;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
ReleaseResource();//释放资源
}
return flag;
}
}
在上述代码中,由于Orcalez中是使用01代表1月,所以需要将1变为01存入数据库中
在这里通过SimpleDataFormat类进行格式化,然后生成Date对象来存储格式化后的时间 比如19961223或者19960101
在上图的第五行中,由于数据库中使用的Date类型属于sql包下,与之前在util包下的date类并不一样
所以通过sql.Date的构造方法传入date对象的毫秒值,生成一个符合数据库需求的对象,这样才能进行存储
那么在读取Date型数据的时候,只需要通过ResultSet类中的gatDate方法即可获得,注意该方法返回的是一个util包下的Date对象