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

来源:互联网 发布:js中有标量类型吗 编辑:程序博客网 时间:2024/06/01 08:29

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

          

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 blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.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 blocke1.printStackTrace();}if (conn != null){try {conn.close();System.out.println("数据库已关闭");} catch (SQLException e) {// TODO Auto-generated catch blocke.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 stubselecttest();   //方法调用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 blocke.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 blocke.printStackTrace();}finally{DBConnection.close();}}}

原创粉丝点击