JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用J编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
第一步:加载驱动 俩种方式 具体的据别会在下面讲到
DriverManager.registerDriver(new Driver());
Class.forName(com.mysql.jdbc.Driver);
第二步: Connection conn = DriverManager.getConnection(url, userName, userPassword);//获取连接
JDBC连接的URL:协议+子协议+数据源标识
String url = "jdbc:mysql://localhost:3306/helloworld“
第三步:创建 statement
三种方式创建 三个接口
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall(sql) ;
第四步:得到查询结果集合
ResultSet rs= pstmt.executeQuery(sql);
第五步:释放资源
1、关闭结果集对象
2、关闭statement对象
3、关闭连接对象
Statement与PreparedStatement
在对数据库只执行一次性存取的时侯,一般用 Statement 对象进行处理,PreparedStatement对象的开销比Statement大,对于一次性操作并不会带来额外的好处。statement不会初始化SQL,每次执行sql语句,相关数据库都要执行sql语句的编译。preparedstatement是预编译的,preparedstatement支持批处理,对于批量处理可以提高效率。
PreparedStatement对象的参数可以被强制进行类型转换,安全性更高。
批量处理:
当几个SQL语句一次发送到数据库中,可以减少通信开销,从而提高性能。
addBatch()
executeBatch()将返回一个整数数组,每个数组元素的表示为相应的更新语句的更新计数。
可以添加语句进行批处理,可以clearBatch()方法删除它们。此方法将删除addBatch()方法添加的所有语句。但是,不能有选择性地选择语句来删除。
DriverManager.registerDriver(new Driver());
Class.forName(com.mysql.jdbc.Driver);
这里说明一下这俩者有说明不同的地方:
Class.forName(com.mysql.jdbc.Driver); com.mysql.jdbc.Driver 是mysql-connector-java-5.1.7-bin.jar里面的一个类, 我们知道Class.forName(xx.xx.xxx) 返回的是一个类,Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段.