Oracle 数据库连接(JDBC)学习测试

公共类 定义数据库连接和关闭:

          

package com.java.jdbc;

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



public class DBConnection {
	
	/**
	 * 一、JDBC 的驱动分类:
	 *     比较常见的驱动程序有四类:
	 *        jdbc-odbc 桥驱动
	 *        jdbc 本地驱动
	 *        jdbc 网络驱动
	 *        本地协议纯jdbc 驱动
	 *      开发中常见: jdbc-odbc 、网络jdbc 连接、纯jdbc连接
	 *   
	 * 
	 * 
	 * 二、java 为JDBC 提供的 API接口有:
	 *     java.sql.Connection  --用于处理与特定数据库连接;
	 *     java.sql.DriverManager   -- 处理驱动程序的加载和数据库的连接;
	 *     java.sql.Statement  -- 用于在指定连接中处理sql语句;
	 *     java.sql.ResultSet  -- 用于操作数据库操作的结果集,用户通过对结果集的操作完成对数据库的访问
	 *     
	 *     其中:java.sql.Statement 接口下包括两个接口:
	 *           java.sql.PreparedStatement   -- 处理预编译的Sql语句;
	 *           java.sql.CallableStatement   -- 用于处理数据库的存储过程;
	 *   

	 * 三、利用jdbc创建数据库连接公共类
	 * 
	 *    常用的数据库驱动和url:
	 *       oracle 数据库中:
	 *         oracle database driver :
	 *            oracle.jdbc.driver.OracleDriver
	 *         oracle database URL :
	 *            jdbc:oracle:thin:@localhost:1521:oracle
	 *       SQL server 数据库中:
	 *          Sql Server database driver:
	 *            com.microsoft.sqlserver.jdbc.SqlServerDriver
	 *          Sql Server database url:
	 *             jdbc:sqlserver://ip:1433:databasename=dbname
	 *  四、数据库连接的步骤:
	 *      1、、 定义数据库驱动:
	 *          private static final String driver = "oracle.jdbc.OracleDriver";
	 *      2、 定义数据库url资源对象:
	 *          private static final String url ="jdbc:oracle:thin:@localhost:1521:oracle";
	 *      3、: 设定数据库连接管理用户及密码:
	 *          private static final String username = "scott";
	 *          private static final String password = "A2i0a0o8";
	 *      4、 加载数据库驱动:
	 *          Class.forName(driver); 
	 *      5、创建数据库连接:
	 *         //一般数据库连接单独作为公共类,所以要设置为全局对象,在需要连接时,调用方法就行
	 *         Connection conn = DriverManager.getConnection(url, username, password);   
	 *         // 在处理类中调用以连接数据库;
	 *           Connection conn = DBConnection.getConnection();  //这里的getConnection()是自定义的方法
	 *          
	 *      6、创建创建Statement 对象,用于处理指定的sql语句
	 *         Statement stmt = conn.createStatement();
	 *      7、创建sql语句字符串:
	 *          String sql = "SQL语句"
	 *      8、创建ResultSet 对象,对数据库操作,返回一个结果集:
	 *         ResultSet rs = stmt.executeQuery(sql); 
	 *         ResultSet rs = stmt.executeUpdate(sql); 
	 *      9、对结果集操作以完成对数据库的访问操作
	 *         while(rs.next()){  //处理结果集     //rs.get**取操作列  }
	 *      10、关闭Statement 对象和数据库关闭;//这里可以在数据库连接中声明一个关闭方法,每次进行完数据库操作后,调用此方法关闭
	 *           stmt .close();
	 *           conn.close();
	 */
	
	/*------数据库连接----------*/

	//定义数据库驱动程序
	// 私有的 ,静态的,固定的 jdbc驱动
	private static final String driver = "oracle.jdbc.OracleDriver";
	//创建数据库URL对象,定义连接地址
	//私有静态常量的数据库实例(本地数据库),可以替换成别的
	private static final String url ="jdbc:oracle:thin:@localhost:1521:oracle";
   //  定义数据库连接用户名及密码:
	  private static final String username = "scott";
	  private static final String password = "A2i0a0o8";
    //声明数据库连接对象,初始化为空
	private static  Connection conn = null;  
	
	// 自定义连接方法
	public static Connection getConnection(){ // Connection 为返回类型,getConnection 方法名
		
		try {
			//利用反射机制来创建对象
			Class.forName(driver);  //加载驱动程序
			//利用java为jdbc 提供的接口DriverManager 来实现数据库连接
			conn = DriverManager.getConnection(url, username, password);  //创建连接
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return conn;
		
	}
	  
	
	
	// 自定义数据库关闭方法
	public static void close(){
		
		try {
			Statement stmt = conn.createStatement();   //创建Sql语句对象
			if(stmt != null){
				stmt.close();
			}
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
		
		if (conn != null){
			try {
				conn.close();
				System.out.println("数据库已关闭");
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		else{
			System.out.println("无数据库连接!");
		}
		
	}

}
操作测试类,完成对数据的访问操作:

    

package com.java.jdbc;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class SqlTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		selecttest();   //方法调用
		sqltest();
	}
	
	public static void selecttest(){
		//数据库连接
     Connection conn = DBConnection.getConnection();
	 try {
		 
		 //创建Statement 对象,用于处理指定的sql语句
		Statement stmt = conn.createStatement(); //创建SQL语句对象
		String sql = "select emp.ename,emp.job,emp.sal,dept.dname from emp,dept where emp.deptno = dept.deptno";
		//创建ResultSet 对象,用于操作数据库操作的结果集
		ResultSet rs = stmt.executeQuery(sql);  //执行查询处理,返回一个结果集
		
		while(rs.next()){  //处理结果集
			
			 //rs.get**取操作列 
			System.out.println("姓名:"+rs.getString("ename")+"\t职位:"+rs.getString("job")+
					          "\t薪资:"+rs.getFloat(3)+"\t部门名称:"+rs.getString(4));
			
		}
		
	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}finally{
		DBConnection.close();
	}
		
	}
	
	public static void sqltest(){
		
	     Connection conn = DBConnection.getConnection();
	     try {
			Statement stmt = conn.createStatement();
			String sql1= "insert into emp(empno,ename,job,sal) values(1002,'周姐','软件测试',3500)";
			String sql2 = "update emp set deptno = 30 where empno = 1001";
			String sql3 = "delete from emp where empno =900";
			//批量操作
			stmt.addBatch(sql1);
			stmt.addBatch(sql2);
			stmt.addBatch(sql3);
			//批量执行
			stmt.executeBatch();
			System.out.println("执行完成!");
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			DBConnection.close();
		}
		
	}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值