个人关于JDBC使用的一些心得

首先声明一点,本人是个小白,所以这篇文章所讨论的仅仅是一些基础的入门操作,一些常用的操作

先附上一个源码,其他功能与之类似

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的方法即可实现对数据库的最基本操作


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页