JDBC(一) 如何使用JDBC进行编程?

简介: JDBC常见操作总结(详略分明)

JDBC-Query

Java连接数据库,并执行查询操作具体步骤如下(需要注意的是要导入相关的包):
1、声明连接参数
2、注册驱动
3、利用驱动管理器,建立连接
4、定义sql语句
5、创建发送器(statement、prestatement)
6、执行sql语句(ResultSet)
7、处理结果集
8、关闭相关对象
    package cn.bjsxt.jdbc;
    
    import java.sql.Connection;
    import java.sql.Date;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * jdbc连接
     * @author chy
     *
     */
    public class TestJdbcQuery {
          public static void main(String[] args) throws ClassNotFoundException, SQLException {
            //1、声明连接参数
              String url = "jdbc:oracle:thin:@localhost:1521:orcl";// 数据库的路径
              String user ="scott";
              String password="tiger";
            //2、注册驱动
              Class.forName("oracle.jdbc.OracleDriver");
            //3、使用驱动管理器,与数据库建立连接  
              Connection conn=DriverManager.getConnection(url, user, password);
            // System.out.println(conn);
            //4、定义sql语句
              String sql="select empno,ename,hiredate from emp";
            //5、创建sql发送器,是由连接对象创建的
              Statement statm =conn.createStatement();
            //6、发送并执行SQL语句,得到结果
              ResultSet rs=statm.executeQuery(sql);
            //7、处理结果集 
              while (rs.next()) {
                //取出该行的每一列,依据数据类型取值
                  int emp=rs.getInt(1);
                  String ename=rs.getString("ename");
                  Date hiredate=rs.getDate(3);
                  System.out.println(emp+"\t"+ename+"\t"+hiredate+"\t");
            }
              rs.close();
              statm.close();
              conn.close();
        }
    }

JDBC-Update

Java连接数据库,并执行DML操作,即数据的增删改,具体步骤如下:

  1. 定义连接参数

    1. 注册驱动
  2. 建立连接
  3. 定义sql语句
  4. 创建发送器
  5. 执行更新操作(executeUpdate(sql))
  6. 处理结果
  7. 关闭对象
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * jdbc执行DML操作
     * @author chy
     *
     */
    public class JdbcUpdate {
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
            //1、 定义连接参数
            String url="jdbc:oracle:thin:@localhost:1521:orcl";
            String user="scott";
            String password="tiger";
            //2、声明连接对象
            //3、注册驱动
            Class.forName("oracle.jdbc.OracleDriver");
            //4、建立连接
            Connection conn=DriverManager.getConnection(url, user, password);
            System.out.println(conn);
            //5、定义sql语句
            //String sql = "insert into emp values (1234, '小伟', 'SALESMAN', 7782, sysdate, 500, 200, 20)";
            //String sql = "update emp set sal=sal*2 where empno=1234";
            String sql = "delete from emp where empno=1234";
            
            //6、创建发送器
            Statement stat=conn.createStatement();
            System.out.println("执行发送器");
            //7、执行更新操作
            int rowCount=stat.executeUpdate(sql);
            //7、处理结果
            if (rowCount>0) {
                System.out.println("操作成功");
            }else {
                System.out.println("操作失败");
            }
            System.out.println("执行操作完毕");
            stat.close();
            conn.close();
        }
    }

JDBC-Transaction

Java连接数据,并进行事务处理操作,具体步骤如下:

1、声明连接参数
2、定义连接对象 1
3、定义sql语句 2
4、注册驱动
6、建立连接
7、关闭自动提交功能
8、执行创建事务操作(createStatement(sql))
9、处理数据、异常
10、关闭对象
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class JdbcTransaction {
        public static void main(String[] args) {
            String url="jdbc:oracle:thin:@localhost:1521:orcl";
            String user="scott";
            String password="tiger";
            Connection conn=null;
            Statement stam1=null;//有几条SQL语句,将创建几个发送器对象
            Statement stam2=null;
            String sql1="update t_account set money=money-1000 where id=1";
            String sql2="update t_account set money=money+1000 where id=3";
            
            try {
                Class.forName("oracle.jdbc.OracleDriver");
                conn =DriverManager.getConnection(url, user, password);
                //关闭jdbc自动提交功能
                conn.setAutoCommit(false);
                stam1=conn.createStatement();
                stam2=conn.createStatement();
                int num=stam1.executeUpdate(sql1);
                num+=stam2.executeUpdate(sql2);
                
                if (num==2) {
                    System.out.println("转账成功");
                    conn.commit();
                    System.out.println("提交事务");
                }else {
                    System.out.println("转账失败");
                    conn.rollback();
                    System.out.println("事务回滚");
                }
            } catch (Exception e) {
                System.out.println("提交失败,异常信息"+e.getMessage());
                if (conn!=null) {
                    try {
                        conn.rollback();
                    } catch (SQLException e1) {
                        e1.printStackTrace();
                    }
                }
            }finally {
                if (conn!=null) {//重新开始自动回滚
                    try {
                        conn.setAutoCommit(true);
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (stam2!=null) {
                    try {
                        stam2.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (stam1!=null) {
                    try {
                        stam1.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (conn!=null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
            
        }
    }

  1. 两个对象:conn和stat1、stat2,且需要进行初始化。和前两个步骤不同的原因是前两个代码块采用的是throws的方法抛出异常,而本代码采用try...catch的方法处理异常。需要将连接对象声明在该语句块外
  2. 该步骤后开始使用try...catch语句处理异常
相关文章
|
3月前
|
Java 数据库连接 网络安全
JDBC数据库编程(java实训报告)
这篇文章是关于JDBC数据库编程的实训报告,涵盖了实验要求、实验环境、实验内容和总结。文中详细介绍了如何使用Java JDBC技术连接数据库,并进行增删改查等基本操作。实验内容包括建立数据库连接、查询、添加、删除和修改数据,每个部分都提供了相应的Java代码示例和操作测试结果截图。作者在总结中分享了在实验过程中遇到的问题和解决方案,以及对Java与数据库连接操作的掌握情况。
JDBC数据库编程(java实训报告)
|
4月前
|
SQL Java 关系型数据库
Java中的JDBC编程详解
Java中的JDBC编程详解
|
4月前
|
SQL Java 关系型数据库
Java中的JDBC编程详解
Java中的JDBC编程详解
|
5月前
|
SQL XML Java
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
后端数据库开发JDBC编程Mybatis之用基于XML文件的方式映射SQL语句实操
71 3
|
6月前
|
SQL Java 关系型数据库
Java之JDBC数据库编程
Java之JDBC数据库编程
40 2
|
6月前
|
SQL Java 关系型数据库
JDBC编程
JDBC编程
49 2
|
6月前
|
SQL Java 数据库连接
从零开启 JDBC 编程
从零开启 JDBC 编程
|
6月前
|
SQL Java 数据库连接
JDBC编程相关知识(实现图书管理系统进阶版)(下)
JDBC编程相关知识(实现图书管理系统进阶版)
41 0
|
6月前
|
Java 关系型数据库 MySQL
JDBC编程相关知识(实现图书管理系统进阶版)(上)
JDBC编程相关知识(实现图书管理系统进阶版)
62 0
|
6月前
|
SQL Java 数据库连接
Java从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
ava从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互