JDBC流程,execute、executeQuery和executeUpdate的区别,statement和prepareStatement的区别。

今天复习了之前的JDBC,发现差不多全忘了,今天在此总结一下吧。

①JDBC的大致流程如下:

先导包

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
    </dependency>

再写连接数据库的代码:

package test;

import java.sql.*;

public class TestJDBC {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //第二个jdbc是需要连接数据库的名字
        String url="jdbc:mysql://localhost:3306/jdbc?characterEncoding=UTF-8";
        String usename="root";
        String password="admin";

        //1.加载驱动并抛出异常
        Class.forName("com.mysql.jdbc.Driver");
        //2.连接数据库
        Connection connection = DriverManager.getConnection(url, usename, password);
        //3.向数据库发送SQL的对象Statement并抛出异常
        Statement statement = connection.createStatement();
        //4.编写SQL
        String sql="select * from account";
        //5.执行查询SQL,返回一个ResultSet结果集
        ResultSet rs=statement.executeQuery(sql);
        while(rs.next()){
            System.out.println("id+"+rs.getInt("id"));
            System.out.println("name+"+rs.getString("name"));
            System.out.println("money+"+rs.getInt("money"));
        }
        //6.关闭连接,释放资源(一定要做,因为数据库连接池)先开后关
        rs.close();
        statement.close();
        connection.close();
    }
}

②在第五步执行mysql语句时,有两种写法,比如查询id是1的,方法如下:

1.statement语法

        Statement statement = connection.createStatement();
        String sql="select * from account where id=1";
        ResultSet rs=statement.executeQuery(sql);

2.prerarestatement语法

        PreparedStatement preparedStatement = connection.prepareStatement("select * from account where id=?");
        preparedStatement.setInt(1,1);
        preparedStatement.executeUpdate()
      

如果只执行一次SQL语句的话用第一个比较好,如果SQL语句被多次执行就用第二个。

并且第一个注解会有漏洞。详情如下:

statement和prepareStatement的区别_HaC 的博客-CSDN博客_statement和preparestatement的区别

③execute、executeQuery和executeUpdate的区别

1.executeQuery用于查,可以返回ResultSet集。

2.excuteUpdate用于增删改,返回影响的行数

3.execute用于判断该SQL语句是否返回了ResultSet。一般不用只用前两个。

posted @ 2022-03-13 14:38  塵暘  阅读(412)  评论(0编辑  收藏  举报