首先声明一点,本人是个小白,所以这篇文章所讨论的仅仅是一些基础的入门操作,一些常用的操作
先附上一个源码,其他功能与之类似
package test2;
/*
* 关于JDBC
* 1. ResultSet executeQuery(String sql); 执行SQL查询,并返回ResultSet 对象。
2. int executeUpdate(String sql); 可执行增,删,改,返回执行受到影响的行数。
3. boolean execute(String sql); 可执行任何SQL语句,返回一个布尔值,表示是否返回ResultSet 。
*/
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.Date;
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;
}
}
首先,第一个方法
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;
}
在这个方法中CLass这一行首先加载Oracle的驱动器,也就是说java与数据库连接的关键是,获得该数据库所提供的与之相连的钥匙,将钥匙加载进去之后才可以进行之后的操作
第二行对connect对象进行实例化,不同的数据库在这里会有不同,各位可以百度,或者参考书中都会有,第一个双引号的内容为oracle所用的thin连接方式,然后后面的1521好像是端口号,ORCL8为安装ORACLE数据库时所取得数据库的名字,如果忘记了的话,可以在sql plus中select name,dbid from v$database;进行查,这个数据库名字会不一样。接下来的两个双引号的内容分别是登录数据库的账号和密码,在将数据根据自己的数据库更改之后,直接粘贴源码即可使用
紧接着第二个方法是用来释放与数据库相关资源的,这个直接粘过去就行了
紧接着第三个方法是进行数据库的插入,在进行基础阶段的使用时,我们可以先将sql语句拼接出来,然后
pstm = connect.prepareStatement(sql);这个方法中的参数就是需要预执行的sql语句,然后这个sql语句的执行结果应该怎么获得呢,比如,你进行select操作,那么搜索到的结果在哪呢
关于真正执行的语句的三种方法在源码的最开始已经交代了,大家根据自己的需求进行使用
如果是select的话,就使用
resultSet = pstm.executeQuery();
所有select到的数据都在resuleSet之中,紧接着对这个resuleSet进行遍历
while(resultSet.next()){
String str3=resultSet.getString("temperature");
}
在一开始的时候resultSet的指针是在第一行的上方的,通过next将其移动至第一行,当然首先得对resultSet是否为空进行判断if (resultSet.next()),遍历开始之后,String str3=resultSet.getString("temperature");
是表示拿出结果中 temperature这个字段的值,这样就拿出了想要的东西
综上所述,这是一个最基本的jdbc的使用技术,包括了连接与操作和释放
在使用时在别的类中 只需要Connected con=new Connected();
然后通过con对象调用例如Insert的方法即可实现对数据库的最基本操作