使用JDBC对数据库进行操作的通用步骤与使用示例

使用JDBC对数据库进行操作的通用步骤

一、JDBC(Java DataBase Connectivity)是什么?

  使用面向对象的语言操作各种关系型数据库,持久化数据的一种技术。JDBC是连接数据库的标准。      学习JDBC其实就是学习JDBC API。JDBC API 是定义访问关系型数据库中数据的标准,是Java编程语言的类和接口的集合。

二、JDBC编程的六大步骤与使用

使用JDBC对数据库进行操作的通用步骤,应该包含以下几步:

  1. 注册驱动
  2. 获取数据库连接
  3. 创建 Statement 类型或者子类型对象
  4. 执行sql
  5. 处理结果(如果需要的话,一般查询语句必须要处理)
  6. 关闭资源

代码如下(示例):

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class FirstJDBC {

	public static void main(String[] args) throws Exception {
		
		//1、注册驱动:目的告诉应用程序,要连接什么样的数据库
		//导入oracle驱动类的jar包 ojdbc14.jar  
		//(jar包所在地址:C:\oraclexe\app\oracle\product\10.2.0\server\jdbc\lib)
			//参数是驱动类的名字oracle.jdbc.driver.OracleDriver,
			//不同的数据库驱动的名字不同
			Class.forName("oracle.jdbc.driver.OracleDriver");
		//2、获取与数据库的连接(Connection) 
		//(通过Driver接口的connect()方法,获取数据库的连接对象)
				//第一个参数url:唯一区分数据库的地址 
				//(thin:第四类驱动类型  1521端口号  XE数据库的名字)
				//第二、三个参数:用户名、密码
			Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE", "briup", "briup");
			//System.out.println(conn);
	
//【以上部分,如果是其他数据库的话,只要更改对应的驱动类的名字;
//用来唯一区分数据库的地址,用户名和密码即可】
			
		//3、获取Statement对象,可以用来执行sql语句
				Statement st=conn.createStatement();
		//4、执行sql语句
			String sql="select id,last_name,salary,start_date from s_emp";
			ResultSet rs=st.executeQuery(sql);
		//5、处理结果集(ResultSet)
			//循环判断是否有下一个元素,有就往下走一步
			while(rs.next()) {
				//根据字段名获取每行字段的数据
				//id
				int id = rs.getInt("id");
				       //System.out.println(id);
				//last_name
				String last_name = rs.getString("last_name");
				//salary
				double salary = rs.getDouble("salary");
				//start_date
				Date date = rs.getDate("start_date");
				System.out.println(id +" "+last_name +" "+salary+" "+date);
				
			}
		//6、关闭资源,先开的后关,后开的先关
			//最后关Connection对象
			//一旦Connection关闭,其他的资源取不到
			if(rs!=null) rs.close();
			if(st!=null) st.close();
			if(conn!=null) conn.close();
	}
}

三、多种方式实现JDBC使用的六大步骤

代码如下(示例):

import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import oracle.jdbc.driver.OracleDriver;

public class JDBCStep {

	public static void main(String[] args){
		Statement st=null;
		Connection conn=null;
		
		try {
			//1、注册驱动
			//1-1 第一种方式:通过反射(最常用)
			Class.forName("oracle.jdbc.driver.OracleDriver");

/*1-2
			//1-2  第二种方式:通过对象(很少用)
			Driver driver=new OracleDriver();
			DriverManager.registerDriver(driver);
*/	
				
/*1-3			
			//1-3  第三种方式:使用jvm系统属性(-jdbc.drivers)(不常用)
				//1-3-1在运行的时候指定参数   -Djdbc.drivers=oracle.jdbc.driver.OracleDriver
					//具体过程:eclipse中右击---->Run As ----->Run Configurations------>Arguments------>
					 VM arguments---->输入:-Djdbc.drivers=oracle.jdbc.driver.OracleDriver--->Run
			
			
				//或 1-3-2使用System来指定参数
				System.setProperty("jdbc.drivers","oracle.jdbc.driver.OracleDriver");
*/		
				
			//2、获取连接Connection
			
 			//2-1 第一种方式:常用
			conn=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE", "briup", "briup");
			System.out.println(conn);		
	
/*2-2
			//2-2 第二种方式:从Driver对象获取连接对象
			//此必须与第一步的第二种方式连用
			Properties info=new Properties();
			info.setProperty("user", "briup");
			info.setProperty("password", "briup");
			
			Connection conn=driver.connect("jdbc:oracle:thin:@127.0.0.1:1521:XE", info);
			System.out.println(conn);
*/			
			
			//3、创建 Statement 类型或者子类型对象,
			st=conn.createStatement();
			
				
			//4、执行sql语句
			String sql="insert into s_emp(id,last_name)"
					+"values(1000,'张三')";
			int d = st.executeUpdate(sql);
			System.out.println(d);
			
			
			//第一种方式:
			//执行查询语句  返回一个Set集合,结果集  st.executeQuery(sql);
			
			//第二种方式:
			//执行增、删、改,返回一个int类型的数据,拿到/操作/影响了多少行数据  st.executeUpdate(sql);
			
			//第三种方式:
			//执行任何的sql语句,返回类型是boolean,判断是否有结果集(效率低)  st.execute(sql);
			
			
			//5、处理结果(一般是处理select语句的结果集)
			
	
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			//6、关闭资源,先开的后关
			if(st!=null)
				try {
					st.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			if(conn!=null)
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			
		}
		
		
	}

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值