JavaWeb------ 第四章 JDBC数据库访问技术
在JavaWeb应用程序中数据库访问是通过Java数据库连接(JavaDateBase Connectivity简称JDBC)数据库的链接一般使用两种方法,一种是通过JDBC驱动程序直接连接,一种是通过连接池。
(1)JDBC的体系结构
1.数据库驱动程序 实现了应用程序和某个数据库产品之间的接口,用于向数据库提交SQL请求。2.驱动程序管理器(DriverManager) 为应用程序装载数据库驱动程序3.JDBC API提供了一系列抽象的接口,主要是用来连接数据库和直接调用SQL命令执行SQL语句。
(2)驱动程序接口Driver
每种数据库都提供了数据库驱动程序,并且提供了一个实现java.sql.Driver接口的类,简称Driver类。在应用程序开发中,需要通过java langClass类的静态方法forName(String className)加载该Driver。在加载时,创建自己的实例并向java.sql.DriverManager类注册该实例。
(3)驱动程序管理器DriverManager
java.sql.DriverManager类负责管理JDBC驱动程序的基本服务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟踪可用的驱动程序,并在在数据库和驱动程序之间建立连接。
DriverManager提供的常用方法是:
Connection getConnection(Sting url,String user,String password)//该方法为静态方法,用来获得连接,有三个入口参数,依次为连接数据库的URL、用户名和密码
(4)数据库连接接口Connection
java.sql.Connetion接口负责与特定数据库的连接,在连接的上下文中可以执行SQL语句并返回结果。
Connection接口的常用方法
方法名称 | 功能描述 | |
---|---|---|
createStatement() | 创建并返回一个Statement实例,通常在无参的SQL语句时创建该实例 | |
prepareStatement() | 通常在执行包含参数的SQL语句时创建该实例,并对sql进行预编译处理 | |
close() | 立即释放Connection实例占用的数据库和JDBC资源,即关闭数据库连接 |
(5)执行SQL语句接口Statement
javasqlStatement接口用来执行静态的SQL语句,并返回执行结果。
Statement接口的常用方法
| 方法说明 | 功能描述 | | :-------- | --------:| :------: | |executeQuery(String sql) |执行指定的静态SELECT语句并返回一个不能为null的额ReaultSet实例 | |executeUpdate() |执行指定的Update、delete、insert,并返回一个int整型值为同步更新记录 | |close() | 立即释放Stateement势力战勇的数据库和JDBC资源,即关闭Statement实例 |(6)执行动态SQL语句接口PreparedStatement
java sqlPreparedStatement接口继承于Statement接口,是Stateement接口的扩展,用来执行动态的SQL语句就是包含参数的SQL语句。通过PreparedStatement实例执行的动态SQL语句,将被编译保存到PraparedStatement实例中。从而可以反复高效的执行该sql语句。
ParadeStatement接口的常用方法 | 方法名称 | 功能描述 | | :-------- | --------:| :------: | |executeQuery() |执行前面包含参数的动态select语句,并返回一个永远不能为null的ResultSet实例 | |executeUpadate() |执行前面包含参数的动态insert、update或delete语句,并返回一个int值,为同步更新记录| |setXxx() |为指定参数设置Xxx型值| |close() |立即释放Statement实例占用的数据库和JDBC资源即关闭Statement实例|(7)访问结果集接口ResultSet
该接口类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应的数据表相关信息。ResultSet实例是通过执行查询数据库的语句生成。ResultSet实例具有指向当前数据行的指针。最初,指针指向第一行记录的前方,通过next()方法可以将指针移动到下一行。
方法名称 | 功能描述 | |
---|---|---|
first() | 移动指针到第一行;如果结果集为空则返回false如果结果集合返回TYPE_FORWARD_ONLY将抛出异常 | |
last() | 移动指针到最后一行。。。。。 | |
pervious() | 移动指针打到上一行 | |
next() | 移动指针到下一行 | |
getRow() | 查看当前行的索引编号;索引编号从1开始,第一次使用该方法将移动到第一行 | |
findColumn() | 查看指定列明的索引编号 | |
close() | 释放ResultSet实例占用的数据库和JDBC资源 |
(8)JDBC访问数据库
使用JDBC访问数据首先需要加载数据库的驱动程序,然后利用连接符号串实现连接,创建连接对象,在创建执行SQL的执行语句并实现数据库的操作。JDBC访问数据库的流程:1.注册驱动2.建立连接3.创建数据库操作对象4.执行语句5.处理执行结果6.释放资源
(9)注册驱动MySQL的驱动程序
步骤:1.先添加下载数据库链接驱动-----复制到WEB-INF\lib目录下,连接成功;
2.加载注册注定的数据库驱动程序 加载格式:【对于MySQL数据库】 Class.forName("driverName"); //driverName=com.mysql.jdbc.Driver 【对于Oracle数据库】 Class.forName("driverName"); //driverName=oracle.jdbc.OracleDriver(10)JDBC连接数据库创建连接对象
创建数据库连接对象需要首先形成“连接符号字(URL)”,然后利用连接符号字实现连接并创建连接对象。
1.数据库连接的URLString url1="jdbc:mysql:http:localhost:3306/"String url2="?user=root&password=密码";String url3="&userUnicode=true&characterEncoding=UTF-8";String url=url1+url2+url3;
2.利用连接符号实现连接获取连接对象
·~ ~DriverManager类提供了getConnection方法,用来建立与数据库的连接。调用getConnection()方法可返回一个数据库连接对象。 ~~ getConnection方法有以下三种重载方式:1.通过url指定的数据库建立连接 基本格式: static Connection getConnection(String url)2.通过url指定的数据库建立连接,info指定一些属性,这些属性里包括了user和password属性 基本格式: static Connection getConnection(String url,Propertyinfo);3.传入参数用户名为user,密码为passwrd,通过url指定的数据库建连接 基本格式: static Connection getConnection(String url,String user,String password)
~~采用带数据库的编码格式:
String url1="jdbc:mysql:http://localhost:3306/"+dbName;String url2="?user="+userName+"password"+userPassword;String url3="&userUnicode=true&characterEncoding=UTF-8";String url=url1+url2+url3;Connection conn=DriverManager。getConnection(url );
3.利用JDBC连接MySQL数据库,获取连接对象的通用格式
~~完整的连接格式:String driverName="com.mysql.jdbc.Driver";//加载驱动程序名String userName="root"; //数据库用户名String userPwd="123456"; //密码String dbName="students"; //数据库名字String url1="jdbc:mysql://localhost:3306/"+dbName;String url2="?user="+userName+"&password="+userPwd;String url3="&userUnicode=true&characterEncoding=UTF-8";String url=url1+url2+url3;//形成带数据库读写编码的数据库连接字Class.forName(driverName);//加载并注册驱动程序Connection conn=DriverManager.getConnection(url);//获取数据库连接对象
4.创建数据库的操作对象
在JavaWeb应用程序中,需要由数据库连接对象创建数据库的操作对象,然后执行SQL语句。 数据库的操作对象是指能执行SQL语句的对象,需要用Connection类中创建数据库的操作对象的方法实现创建。可创建两种不同的数据库操作对象:Statement对象、PrepareStatement对象,两种对象的创建和执行SQL语句是不同的。1.创建Statement对象利用Connection类的方法createStatement()可以创建一个Statement类实例,用来执行SQL操作 例如:通过数据库连接,得到连接对象conn,那么可以创建一个Statement对象的实例stmt: Statement stmt=conn。createStatement();//它是无参方法2.创建PrepareStatement对象,他是SQL预处理类接口利用Connection类的方法prepareStatement(String sql)可以创建一个PreparedStatement类的实例。 ~~ PreparedStatement对象使用PreparedStatement()方法创建,并且在创建时直接指定SQL语句 例如:String sql="....."; //SQL语句形成的字符串 PreparementStatement pstmt=conn.preparedStatement("sql"); //conn为连接对象 ~~使用带参数的SQL语句(“?”表示参数值),创建PrepardStatement对象。 假设已得到连接对象conn,需要创建一个查询年龄和性别的一个操作对象。 例如:String ss="select *from stu_info where age>=? and sex=?"; PreparedStatement pstmt=conn.preparedStatement(ss); 设置参数的格式:PreparedStatement 对象.setXXX(position,value); //position 代表参数的位置号,第一个出现的其位置为1,依次增加 //value 代表要传给参数的值 //setXXX()中的Xxx代表不同的数据类型,常见的set方法有: void setInt(int parameterIndex,int x); void setFloat(int parameterIndex,float x); void setString(int parameterIndex,String x); void setDate(int parameterIndex,Date x); pstmt.set(1,20); pstmt.set(2,"男");
JavaWeb—— 第四章 JDBC数据库访问技术
在JavaWeb应用程序中数据库访问是通过Java数据库连接(JavaDateBase Connectivity简称JDBC)数据库的链接一般使用两种方法,一种是通过JDBC驱动程序直接连接,一种是通过连接池。
(1)JDBC的体系结构
1.数据库驱动程序
实现了应用程序和某个数据库产品之间的接口,用于向数据库提交SQL请求。 2.驱动程序管理器(DriverManager) 为应用程序装载数据库驱动程序 3.JDBC API 提供了一系列抽象的接口,主要是用来连接数据库和直接调用SQL命令执行SQL语句。 (2)驱动程序接口Driver每种数据库都提供了数据库驱动程序,并且提供了一个实现java.sql.Driver接口的类,简称Driver类。在应用程序开发中,需要通过java langClass类的静态方法forName(String className)加载该Driver。在加载时,创建自己的实例并向java.sql.DriverManager类注册该实例。
(3)驱动程序管理器DriverManager
java.sql.DriverManager类负责管理JDBC驱动程序的基本服务,是JDBC的管理层,作用于用户和驱动程序之间,负责跟踪可用的驱动程序,并在在数据库和驱动程序之间建立连接。
DriverManager提供的常用方法是:Connection getConnection(Sting url,String user,String password)
//该方法为静态方法,用来获得连接,有三个入口参数,依次为连接数据库的URL、用户名和密码 (4)数据库连接接口Connectionjava.sql.Connetion接口负责与特定数据库的连接,在连接的上下文中可以执行SQL语句并返回结果。
Connection接口的常用方法
方法名称 功能描述
createStatement() 创建并返回一个Statement实例,通常在无参的SQL语句时创建该实例 prepareStatement() 通常在执行包含参数的SQL语句时创建该实例,并对sql进行预编译处理 close() 立即释放Connection实例占用的数据库和JDBC资源,即关闭数据库连接 (5)执行SQL语句接口StatementjavasqlStatement接口用来执行静态的SQL语句,并返回执行结果。
Statement接口的常用方法
方法说明 功能描述
executeQuery(String sql) 执行指定的静态SELECT语句并返回一个不能为null的额ReaultSet实例 executeUpdate() 执行指定的Update、delete、insert,并返回一个int整型值为同步更新记录 close() 立即释放Stateement势力战勇的数据库和JDBC资源,即关闭Statement实例 (6)执行动态SQL语句接口PreparedStatementjava sqlPreparedStatement接口继承于Statement接口,是Stateement接口的扩展,用来执行动态的SQL语句就是包含参数的SQL语句。通过PreparedStatement实例执行的动态SQL语句,将被编译保存到PraparedStatement实例中。从而可以反复高效的执行该sql语句。
ParadeStatement接口的常用方法方法名称 功能描述
executeQuery() 执行前面包含参数的动态select语句,并返回一个永远不能为null的ResultSet实例 executeUpadate() 执行前面包含参数的动态insert、update或delete语句,并返回一个int值,为同步更新记录 setXxx() 为指定参数设置Xxx型值 close() 立即释放Statement实例占用的数据库和JDBC资源即关闭Statement实例 (7)访问结果集接口ResultSet该接口类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应的数据表相关信息。ResultSet实例是通过执行查询数据库的语句生成。ResultSet实例具有指向当前数据行的指针。最初,指针指向第一行记录的前方,通过next()方法可以将指针移动到下一行。
方法名称 功能描述
first() 移动指针到第一行;如果结果集为空则返回false如果结果集合返回TYPE_FORWARD_ONLY将抛出异常 last() 移动指针到最后一行。。。。。 pervious() 移动指针打到上一行 next() 移动指针到下一行 getRow() 查看当前行的索引编号;索引编号从1开始,第一次使用该方法将移动到第一行 findColumn() 查看指定列明的索引编号 close() 释放ResultSet实例占用的数据库和JDBC资源 (8)JDBC访问数据库使用JDBC访问数据首先需要加载数据库的驱动程序,然后利用连接符号串实现连接,创建连接对象,在创建执行SQL的执行语句并实现数据库的操作。JDBC访问数据库的流程:
1.注册驱动 2.建立连接 3.创建数据库操作对象 4.执行语句 5.处理执行结果 6.释放资源 (9)注册驱动MySQL的驱动程序步骤:1.先添加下载数据库链接驱动—–复制到WEB-INF\lib目录下,连接成功;
2.加载注册注定的数据库驱动程序 加载格式:【对于MySQL数据库】 Class.forName(“driverName”); //driverName=com.mysql.jdbc.Driver 【对于Oracle数据库】 Class.forName(“driverName”); //driverName=oracle.jdbc.OracleDriver(10)JDBC连接数据库创建连接对象
创建数据库连接对象需要首先形成“连接符号字(URL)”,然后利用连接符号字实现连接并创建连接对象。
1.数据库连接的URLString url1="jdbc:mysql:"
String url2="?user=root&password=密码"; String url3="&userUnicode=true&characterEncoding=UTF-8"; String url=url1+url2+url3;2.利用连接符号实现连接获取连接对象
·~ ~DriverManager类提供了getConnection方法,用来建立与数据库的连接。调用getConnection()方法可返回一个数据库连接对象。 ~~ getConnection方法有以下三种重载方式:1.通过url指定的数据库建立连接
基本格式: static Connection getConnection(String url)2.通过url指定的数据库建立连接,info指定一些属性,这些属性里包括了user和password属性
基本格式: static Connection getConnection(String url,Propertyinfo);3.传入参数用户名为user,密码为passwrd,通过url指定的数据库建连接
基本格式: static Connection getConnection(String url,String user,String password) ~~采用带数据库的编码格式:String url1="jdbc:mysql:;
String url2="?user="+userName+"password"+userPassword; String url3="&userUnicode=true&characterEncoding=UTF-8"; String url=url1+url2+url3; Connection conn=DriverManager。getConnection(url ); 3.利用JDBC连接MySQL数据库,获取连接对象的通用格式 ~~完整的连接格式:String driverName="com.mysql.jdbc.Driver";//加载驱动程序名
String userName="root"; //数据库用户名 String userPwd="123456"; //密码 String dbName="students"; //数据库名字 String url1="jdbc:mysql://localhost:3306/"+dbName; String url2="?user="+userName+"&password="+userPwd; String url3="&userUnicode=true&characterEncoding=UTF-8"; String url=url1+url2+url3;//形成带数据库读写编码的数据库连接字 Class.forName(driverName);//加载并注册驱动程序 Connection conn=DriverManager.getConnection(url);//获取数据库连接对象 4.创建数据库的操作对象 在JavaWeb应用程序中,需要由数据库连接对象创建数据库的操作对象,然后执行SQL语句。 数据库的操作对象是指能执行SQL语句的对象,需要用Connection类中创建数据库的操作对象的方法实现创建。可创建两种不同的数据库操作对象:Statement对象、PrepareStatement对象,两种对象的创建和执行SQL语句是不同的。1.创建Statement对象
利用Connection类的方法createStatement()可以创建一个Statement类实例,用来执行SQL操作 例如:通过数据库连接,得到连接对象conn,那么可以创建一个Statement对象的实例stmt: Statement stmt=conn。createStatement();//它是无参方法 2.创建PrepareStatement对象,他是SQL预处理类接口 利用Connection类的方法prepareStatement(String sql)可以创建一个PreparedStatement类的实例。 ~~ PreparedStatement对象使用PreparedStatement()方法创建,并且在创建时直接指定SQL语句 例如:String sql="....."; //SQL语句形成的字符串 PreparementStatement pstmt=conn.preparedStatement("sql"); //conn为连接对象 ~~使用带参数的SQL语句(“?”表示参数值),创建PrepardStatement对象。 假设已得到连接对象conn,需要创建一个查询年龄和性别的一个操作对象。 例如:String ss="select *from stu_info where age>=? and sex=?"; PreparedStatement pstmt=conn.preparedStatement(ss); 设置参数的格式:PreparedStatement 对象.setXXX(position,value); //position 代表参数的位置号,第一个出现的其位置为1,依次增加 //value 代表要传给参数的值 //setXXX()中的Xxx代表不同的数据类型,常见的set方法有: void setInt(int parameterIndex,int x); void setFloat(int parameterIndex,float x); void setString(int parameterIndex,String x); void setDate(int parameterIndex,Date x); pstmt.set(1,20); pstmt.set(2,"男"); 5104 绑定 Evernote International 账号 绑定印象笔记账号 当前文档 恢复至上次同步状态 删除文档 导出... 预览文档 分享链接 系统 设置 使用说明 快捷帮助 常见问题 关于搜索文件
JavaWeb—— 第四章 JDBC数据库访问技术 欢迎使用马克飞象 JavaWeb——Servlet过滤器 JavaWeb 第三章—–JSP技术 数据结构—第一章 概述 JavaWeb—–第二章 静态网页开发技术 面向对象分析与设计(UML)—–第一章 面向对象的概述 JavaWeb—–第七章 JavaWeb常用开发模式与案例 微型计算机原理与接口技术—– 第三章 寻址方式与指令系统 微型计算机原理与接口技术—–第四章 汇编语言语法和DOS功能调用 JavaWeb—-第五章 JavaBean技术 JavaWeb ——第六章 Servlet技术 第七章 微型计算机原理与接口技术—–中断系统与8237A DMA控制器 微型计算机原理与及接口技术—–第六章 存储器 第一章 微型计算机原理与接口技术—-微型计算机的基础 第八章 善于利用指针 软件测试 第七章 用函数实现模块化程序设计 针对Java Web应用中错误异常处理方法的运用 第六章 利用数组处理批量数据 第五章循环结构程序设计 第四章 选择结构程序设计 第三章 最简单的C程序结构—–顺序结构设计 程序基本算法之查找与排序 第二章 算法—程序的灵魂 第一章 程序设计和C语言 微型计算机原理与接口技术—–第五章 汇编语言程序设计 2017.10.21笔记