《Web网站设计与开发教程》课件_第11章 基于JSP的数据库应用开发.pptx
内容11.1JDBC接口11.2数据查询11.3数据添加11.4数据删除11.5数据更新11.6数据连接池11.7思考题
11.1JDBC接口Java数据库连接(JavaDataBaseConnectivity,简称为JDBC)是一种用于执行数据库访问的Java语言应用程序接口(API)。JDBC通过一组Java类和接口,为开发人员提供多种关系型数据库的统一访问方式。JDBC的结构如下图所示。
11.1JDBC接口(1)加载JDBC驱动在与数据库建立连接之前,必须先加载欲连接数据库的驱动程序到JVM(Java虚拟机)中,加载方法为通过java.lang.Class类的静态方法forName(StringclassName);成功加载后,会将加载的驱动类注册给DriverManager类;如果加载失败,将抛出ClassNotFoundException异常,即未找到指定的驱动类,所以需要在加载数据库驱动类时捕捉可能抛出的异常。
11.1JDBC接口(2)创建数据库连接java.sql.DriverManager(驱动程序管理器)类是JDBC的管理层,负责建立和管理数据库连接。通过DriverManager类的静态方法getConnection(Stringurl,Stringuser,Stringpassword)可以建立数据库连接,3个参数依次为欲连接数据库的路径、用户名和密码,该方法的返回值类型为java.sql.Connection。
11.1JDBC接口(3)执行SQL语句建立数据库连接(Connection)的目的是与数据库进行通信,实现方法为执行SQL语句,但是通过Connection实例并不能执行SQL语句,还需要通过Connection实例创建Statement实例,Statement实例又分为3种类型:①Statement:该类型的实例提供了直接在数据库中执行SQL语句的方法。对于只执行一次的查询及数据定义语句如CREATETABLE、DROPTABLE等操作,statement就足够了。其语法结构如下:Statementstmt=conn.createStatement();
11.1JDBC接口②PreparedStatement:该类型的实例用于那些需要执行多次,每次仅仅是数据取值不同的SQL语句。PreparedStatement具有预编译功能,对批量数据操作的执行效率高。其语法格式如下:PreparedStatementps=conn.prepareStatement(INSERTintousersvalues(?,?,?,?));?代表具体要输入的参数。③CallableStatement:该类型的实例被用来访问数据库中的存储过程。它提供了一些方法来指定SQL语句所有使用的输入输出参数。语法格式如下:CallableStatementcstmt=con.prepareCall({callgetTestData(?,?)});
11.1JDBC接口(4)获得查询结果通过Statement接口的executeQuery()或executeUpdate()方法,可以执行SQL语句,同时将返回执行结果executeQuery():将返回一个ResultSet型的结果集,其中不仅包含所有满足查询条件的记录,还包含相应数据表的相关信息,例如每一列的名称、类型和列的数量等。executeUpdate():将返回一个int型数值,代表影响数据库记录的条数,即插入、修改或删除记录的条数。
11.1JDBC接口(5)关闭连接在建立Connection、Statement和ResultSet实例时,均需占用一定的数据库和JDBC资源,所以每次访问数据库结束后,应该及时销毁这些实例,释放它们占用的所有资源,方法是通过各个实例的close()方法,执行close()方法时建议按照如下的顺序:resultSet.close();statement.close();connection.close();
11.1数据库表结构列名数据类型允许Null值AddressIDintAddressLine1nvarchar(60)AddressLine2nvarchar(60)CheckedCitynvarchar(30)StateProvinceIDintPostalCodenvarchar(