JDBC三大接口Connection、Statement(PreparedStatement)、ResultSet、接口使用(笔记)

it2022-05-05  68

Connection(java.sql包)是获取数据库连接的接口 因为连接数据库需要使用DriverManager.getConnection方法,而此方法的返回值是Connection。

//传入的三个值分别为使用数据的URL、当前数据库的name、当前数据库的密码pwd Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/shop","root","root");

当创建好连接之后就可以向数据库发送sql语句了 Statement接口就是用于执行静态的sql语句了

//用上面这个conn连接创建一条sql语句 Statement stmt = conn.createStatement(); 创建完成之后执行这条sql语句 stmt.execute("select * from table");

因为execute()方法的返回值是Boolean类型,所以我们只能知道这条sql语句是否执行成功,但是获取不到数据。 如果想要拿到数据,我们需要使用executeQuery()方法,这个方法的返回值是ResultSet类型,所以我们需要用一个ResultSet 来接收返回的数据。 代码如下:

//创建sql语句 Statement stmt = conn.createStatement(); //或得返回的结果集 ResultSet rs = stmt.executeQuery(sql); //遍历结果集 //ResultSet提供的检索不同类型字段的方法next() while (rs.next()) { rs.getObject("ChampName"); } //ChampName:数据库中当前查询表的字段名称

当我们使用只是查询的时候一般可以使用Statement就可以,但是我们日常的业务逻辑处理中不单单只是查询,还会有DML操作,当我们执行DML操作时,为了防止sql注入,就不可以使用Statement,我们需要使用PreparedStatement接口来代替他了,PreparedStatement是Statement的子接口。 使用PreparedStatement接口的一些好处: 1.提高执行语句的性能 2.可读性和可维护性更好 3.简化Statement中的操作 4.安全性更好(可预防sql注入)

String sql = "delete from table where id=?"; PreparedStatement prep = conn.prepareStatement(sql); //parameterIndex:第几个?从1开始数,x:?的值。 prep.setObject(parameterIndex, x); //当对数据库进行DML操作时,使用executeUpdate()方法 prep.executeUpdate();

注意:以上四个接口都属于java.sql包


最新回复(0)