• JDBC操作


    1、概述

    JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句

    2、JDBC原理

    sun公司提供访问数据库规范称为JDBC,而生产厂商提供的规范的实现类称为驱动

    JDBC是接口,驱动是接口的实现,没有驱动将无法完成数据库的连接,从而不能操作数据库,每个厂商都需要提供自己的驱动,用来连接自己公司的数据库,也就是说驱动一般都是由数据库厂商提供的

    3、JDBC核心接口

    JDBC中的核心接口主要包括如下
    DriverManger:用来注册驱动并获取Connection;
    Connection:最为重要的一个方法就是用来获取Statement对象;
    Statement:是用来向数据库发送SQL语句的,这样数据库就会执行发送过来的SQL语句
    ResultSet:它是一个迭代器,用于检索查询数据

    4、JDBC开发步骤

    1、注册驱动
    2、获取链接
    3、获取语句执行者
    4、执行sql语句
    5、处理结果
    实例代码如下

    
    /**
     * CREATE TABLE USER(
     * USERNAME VARCHAR(30) COMMENT '用户名',
     * PASSWORD VARCHAR(10) COMMENT '密码'
     * )ENGINE=InnoDB AUTO_INCREMENT=1519 DEFAULT CHARSET=utf8;
     *
     * INSERT INTO USER VALUES('张三','123456')
     */
    public class JDBCTEST {
    
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
    
            //1、注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2、获取链接
            Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.47.151:3306/web", "root", "root");
            //3、获取执行sql语句的对象
            Statement statement = connection.createStatement();
            //4、执行sql语句
            ResultSet resultSet = statement.executeQuery("SELECT * FROM USER ");
            //处理执行结果
            while (resultSet.next()) {
                System.out.println("用户名:" + resultSet.getString(1) + " 密码:" + resultSet.getString("password"));
            }
    
            resultSet.close();
            statement.close();
            connection.close();
        }
    }
    

    5、Connection

    Connection connection = DriverManager.getConnection(String url,String user, String password);
    Connection对象常用的方法
    createStatement():创建向数据库发送sql的Statement对象
    prepareStatement(sql):创建向数据库发送预编译sql的PrepareSatement对象
    execute(String sql):用于向数据库发送任意sql语句
    addBatch(String sql):把多条sql语句放到一个批处理中。
    executeBatch():向数据库发送一批sql语句执行。

    6、执行sql语句

    Statement statement = connection.createStatement();
    Statement 常用方法如下
    executeQuery(String sql) :用于向数据发送查询语句。
    executeUpdate(String sql):用于向数据库发送insert、update或delete语句
    execute(String sql):用于向数据库发送任意sql语句
    addBatch(String sql):把多条sql语句放到一个批处理中。
    executeBatch():向数据库发送一批sql语句执行。

    6、防止sql注入代码

    
    /**
     * CREATE TABLE USER(
     * USERNAME VARCHAR(30) COMMENT '用户名',
     * PASSWORD VARCHAR(10) COMMENT '密码'
     * )ENGINE=InnoDB AUTO_INCREMENT=1519 DEFAULT CHARSET=utf8;
     *
     * INSERT INTO USER VALUES('张三','123456')
     */
    public class JDBCTEST {
    
        public static void main(String[] args) throws ClassNotFoundException, SQLException {
    
            //1、注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2、获取链接
            Connection connection = DriverManager.getConnection("jdbc:mysql://192.168.47.151:3306/web", "root", "root");
    //        //3、获取执行sql语句的对象
    //        Statement statement = connection.createStatement();
    //        //4、执行sql语句
    //        ResultSet resultSet = statement.executeQuery("SELECT * FROM USER ");
    
            PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM  USER  WHERE username=? AND password=?");
            preparedStatement.setString(1,"张三");
            preparedStatement.setString(2,"123456");
            ResultSet resultSet = preparedStatement.executeQuery();
    
            //处理执行结果
            while (resultSet.next()) {
                System.out.println("用户名:" + resultSet.getString(1) + " 密码:" + resultSet.getString("password"));
            }
    
            resultSet.close();
            //statement.close();
            resultSet.close();
            connection.close();
        }
    }
    
  • 相关阅读:
    杂记-2
    2019CSP-S游记
    csp2020
    特征根法小记
    csp模拟赛低级错误及反思
    备份
    黑科技——树剖两次dfs转一次dfs!
    输出天干地支
    蓝桥0531-输出Y
    蓝桥0615-判断四位数字前后两组是否相等
  • 原文地址:https://www.cnblogs.com/haizhilangzi/p/10903100.html
Copyright © 2020-2023  润新知