java 数据库 JDBC概述 JDBC搭建 PreparedStatement和Statement 结果集处理

JDBC

JDBC概述

  • Java连接数据库
  • java来处理数据的,连接到数据库 将数据发送到数据执行保存
  • JDBC是java连接数据的一种规范
  • java程序需要连接不同的数据库,不同的数据库实现的细节不同

JDBC搭建

  • 导入mysql开发商提供的连接mysql数据库的驱动包 60多个 100个
  • 加载mysql驱动类
  • 建立与数据库的连接通道
  • 向数据库发送sql
  • 关闭与数据库连接通道

java语言开发者制定了一套(接口),具体的实现交给不同的数据库开发商来实现

  • 注册JDBC驱动程序:

  • 这需要初始化驱动程序,这样就可以打开与数据库的通信信道。

    Class.forName(“com.mysql.cj.jdbc.Driver”); //反射实现或者
    DriverManager.registerDriver(new Driver())

  • 建立与数据库连接:

  • 这需要使用DriverManager.getConnection()方法来创建一个Connection对象,它代表一个物理连接的数据库

    Connectionconn=DriverManager.getConnection(URL,USER,PASS);`

    URL:jdbc:mysql://ip(127.0.0.1):端口(3306)/数据库
    名?serverTimezone=Asia/Shanghai
    USER:用户名(root)
    PASS:密码
    Connection connection =
    DriverManager.getConnection(“jdbc:mysql://127.0.0.1:3306/schooldb?serverTimezone=Asia/Shanghai”,“root”,“root”);

  • 获得Satement执行sql语句

  • Statement st = connection.createStatement();

  • executeUpdate(String sql) 用于执行ddl语句

Statement st = connection.createStatement();

          st.executeUpdate("INSERT INTO student(NAME,gender,birthday,phone)" +
                  "VALUE('"+name+"','"+gender+"','"+birthday+"','"+phone+"')");

          st.close();
          connection.close();
  • 获得PrepareStatement执行sql语句
  • 在sql语句中参数位置使用占位符,使用setXX方法向sql中设置参数
  • PrepareStatement ps=connection.prepareStatement(sql)

PreparedStatement ps = connection.prepareStatement("insert into student(name,gender,birthday,phone)"+
                                                            "value(?,?,?,?)");

        ps.setObject(1,name);
        ps.setObject(2,gender);
        ps.setObject(3,birthday);
        ps.setObject(4,phone);

        ps.executeUpdate();//执行
			ps.close();
            connection.close();

PreparedStatement和Statement

1、代码的可读性和可维护性.

  • 虽然用PreparedStatement来代替Statement会使代码多出几行,但这样的代码无论从可读性还是可维护性上来说.都比直接用Statement的代码高很多档次:

2、最重要的一点是极大地提高了安全性

  • PreparedStatement 预先编译sql,向sql中传值是进行检测,一个?是一个占位符,对应一个值 是安全的,防止sql注入
  • Statement直接将参数拼接到sql中,不能防止sql注入 不安全

结果集处理

● PreparedStatement和Statement中的executeQuery()方法中会返回一个ResultSet对象,查询结果就封装在此对象中
● 使用ResultSet中的next()方法获得下一行数据
● 使用getXXX(String name)方法获得值

你可能感兴趣的:(JDBC,单片机,stm32,硬件架构)