JDBC-笔记

4 篇文章 0 订阅

JDBC(JavaDataBase Connectivity)就是Java数据库连接,就是用JAVA语言操作数据库

JDBC基本流程:
        1.加载驱动(选择数据库)
        2.获取连接(与数据库建立连接)
        3.准备SQL
        4.构建处理块(封装发送SQL)
        5.发送SQL,得到结果
        6.处理结果
        7.连接关闭

public class Class001_JDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.加载驱动(选择数据库)
        Class.forName("oracle.jdbc.driver.OracleDriver");
        //2.获取连接(与数据库建立连接)
        Connection conn = DriverManager.getConnection(
                "jdbc:oracle:thin:@localhost:1521:XE",
                "SCOTT",
                "TIGER"
        );
        //3.准备SQL
        String sql = "SELECT * FROM DEPT";
        //4.构建处理块(封装发送SQL)
        Statement state = conn.createStatement();
        //5.发送SQL,得到结果
        ResultSet result = state.executeQuery(sql);
        //6.处理结果
        while(result.next()){
            int deptno = result.getInt(1);
            String dname = result.getString("dname");
            String loc = result.getString(3);
            System.out.println(deptno+"-->"+dname+"-->"+loc);
        }
        //7.连接关闭
        conn.close();
    }
}

处理块 

处理块分为:

1.静态处理块Statement

2.预处理块PreparedStatement

静态处理块Statement

Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发 送要执行的 SQL 语句。Statement 对象,用于执行不带参数的简单 SQL 语句。 执行静态 SQL 语句并返回它所生成结果的对象。

创建:

连接.Connection.createStatement()

执行 :

ddl -->execute(dd语句) -- 通常不会在代码中执行

dml -->executeUpdate(dml语句)

select -->executeQuery(select)

 特点 :

处理 不变的静态的 sql 语句

优点:

直接查看sql ,方便处理错误

缺点:性能不高 拼接 sql 麻烦 可能存在 sql 注入


    //静态处理块 Statement
    /*public static boolean login(String username,String password){
        boolean flag = false;
        Connection conn = null;
        Statement state = null;
        ResultSet result = null;
        //1.获取连接
        try {
            conn = JDBCUtils.getConnection();
            //2.准备sql
            String sql = "select * from t_user where username='"+username+"' and password = "+password;
            //3.封装处理块
            state = conn.createStatement();
            //4.执行,得到结果
            result = state.executeQuery(sql);
            //5.处理结果
            if(result.next()){
                flag = true;
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            //6.关闭资源
            JDBCUtils.close(conn,state,result);
        }
        //7.返回结果
        return flag;
    }*/

预处理块PreparedStatement

PreparedStatement 接口继承了 Statement,并与之在两方面有所不同.始终以 PreparedStatement 代替 Statement.也就是说,在任 何时候都不要使用 Statement。

优点:

1. 由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement对象。因此,多次 执行的 SQL 语句经常创建为 PreparedStatement 对象,以提高效率。

2. 防止SQL注入问题 7.2.1. 创建: 创建:连接.prepareStatement(sql)

 执行: 存在? ,先填充参数再执行 ddl -->execute() dml -->executeUpdate() select -->executeQuery()

特点: 处理 不变的静态的 sql 语句 |可变的 sql 语句 带 ? 的 sql 优点:性能高,方便编写sql 不存在sql注入 安全

缺点:不能直接打印sql语句 不方便处理错误

 //预处理块 PreparedStatement
    public static boolean login(String username,String password){
        boolean flag = false;
        Connection conn = null;
        PreparedStatement state = null;
        ResultSet result = null;
        //1.获取连接
        try {
            conn = JDBCUtils.getConnection();
            //2.准备sql
            String sql = "select * from t_user where username=? and password =?";
            //3.构建预处理块
            state = conn.prepareStatement(sql);
            //4.为?赋值
            state.setString(1,username);
            state.setObject(2,password);

            //5.执行,得到结果
            result = state.executeQuery();
            //5.处理结果
            if(result.next()){
                flag = true;
            }
        }catch(SQLSyntaxErrorException e){
            System.out.println("遇到SQL注入了....");
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        } finally {
            //6.关闭资源
            JDBCUtils.close(conn,state,result);
        }
        //7.返回结果
        return flag;
    }

释放资源

后打开的先关闭

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC(Java Database Connectivity)是Java语言操作数据库的基础API,它提供了一种标准的方法来连接和操作各种关系型数据库。 JDBC的基本使用分为以下几个步骤: 1. 加载驱动程序:在使用JDBC操作数据库之前,需要先加载相应的驱动程序。不同的数据库需要加载不同的驱动程序,一般情况下驱动程序的jar包都会提供。 ```java Class.forName("com.mysql.jdbc.Driver"); ``` 2. 建立连接:使用DriverManager类的getConnection()方法连接数据库。 ```java String url = "jdbc:mysql://localhost:3306/test?useSSL=false"; String username = "root"; String password = "123456"; Connection conn = DriverManager.getConnection(url, username, password); ``` 其中url为连接数据库的URL,username和password为连接数据库的用户名和密码。 3. 创建Statement对象:通过Connection对象的createStatement()方法创建一个Statement对象,用于执行SQL语句。 ```java Statement stmt = conn.createStatement(); ``` 4. 执行SQL语句:可以通过Statement对象的execute()或executeQuery()方法执行SQL语句,如果是更新操作则使用executeUpdate()方法。 ```java ResultSet rs = stmt.executeQuery("SELECT * FROM users"); ``` 5. 处理结果集:如果执行的SQL语句返回了结果集,则可以通过ResultSet对象进行处理。 ```java while (rs.next()) { int id = rs.getInt("id"); String name = rs.getString("name"); System.out.println("id: " + id + ", name: " + name); } ``` 6. 关闭连接:使用完数据库后需要关闭连接,释放资源。 ```java rs.close(); stmt.close(); conn.close(); ``` 以上就是JDBC的基本使用过程,通过JDBC可以实现Java程序与数据库的交互,完成各种数据库操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值