DAO之JDBC

工作了很久对一些基本的都忘记了,重温下

JDBC概念:

  JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是JAVA平台操作数据的高度抽象,其提供一套标准接口,具体实现是由各数据库厂商根据JDBC标准接口实现。


DAO之JDBC_第1张图片

Driver  api:

   connect方法获取连接对象

   acceptsURL判断通信协议是否符合该驱动数据库

DAO之JDBC_第2张图片

DriverManager  api

   getConnection获取连接对象

   registerDriver注册驱动,把驱动托DriverManager 管理

DAO之JDBC_第3张图片

使用(以MYSQL为例):

  1.加载驱动

    Class.forName("com.mysql.jdbc.Driver");

    mysql中加载驱动类会在com.mysql.cj.jdbc.Driver的静态代码块中向DriverManager注册驱动

  2.获取连接

     第一种:Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");

     第二种:Driver driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance();

                  Connection connection = driver.connect(url, props);

  3.创建SQL语句的statement对象(放置sql注入使用 预编译PreparedStatement)

    PreparedStatement的方法

       1:executeQuery():在此PreparedStatement对象中执行SQL语句,并返回该查询生成的ResultSet对象。

    2:executeUpdate():在此PreparedStatement对象中执行SQL语句,该语句必须是一个SQL数据操作语言(Date Manipulation Language,DML)语句,比如insert、update、delete语句;或者是无返内容的SQL语句,比如DDL语句。

      3:execute():在此PreparedStatement对象中执行SQL语句,该语句可以是任何种类的SQL语句。   

       String sql = "insert into t_test values(?,?,?)";
        PreparedStatement statement = conn.prepareStatement(sql);
        statement.setLong(1, 2);//注意下标从1开始
        statement.setString(2, "小陈");
        statement.setString(3, "a123");
        int result = statement.executeUpdate();


  4.执行语句并处理结果(ResultSet)

        String sql = "select * from t_test";
        PreparedStatement statement = conn.prepareStatement(sql);
        ResultSet result = statement.executeQuery();
        while(result.next()){
            Long id = result.getLong(1);//注意下标从1开始
            String userName = result.getString(2);
            String password = result.getString(3);
            System.out.println("id="+id+" userName="+userName+" password="+password);
        }

  5.释放资源

    result.close();
    conn.close();


你可能感兴趣的:(DAO)