jdbc与数据库连接

上传人:shaoy****1971 文档编号:114325620 上传时间:2019-11-10 格式:PPT 页数:62 大小:230.50KB
返回 下载 相关 举报
jdbc与数据库连接_第1页
第1页 / 共62页
jdbc与数据库连接_第2页
第2页 / 共62页
jdbc与数据库连接_第3页
第3页 / 共62页
jdbc与数据库连接_第4页
第4页 / 共62页
jdbc与数据库连接_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《jdbc与数据库连接》由会员分享,可在线阅读,更多相关《jdbc与数据库连接(62页珍藏版)》请在金锄头文库上搜索。

1、JSP与JDBC数据库连接,深圳职业技术学院 范新灿,数据库,JDBC技术,JDBC(Java DataBase Connectivity):是一种可用于执行SQL语句的API(Application Programming Interface,应用程序设计接口) JDBC是第一个标准化地把关系数据库和Java程序集成到一起的尝试; JDBC已经发挥了可以集成到Java小程序和应用程序中的所有的关系数据库的能力。,JDBC的能力,JDBC能实现的功能: 与一个数据库建立连接; 向数据库发送SQL语句; 处理数据库返回的结果。,JDBC两层模型,两层模型中,一个Java Applet或者一个Ja

2、va应用程序直接同数据库连接; 数据库可以在同一机器上,也可以在另外一台机器上,通过网络进行连接,此即为客户机服务器结构,用户的计算机作为客户机,运行数据库的计算机作为服务器,JDBC三层模型,使用JDBC-ODBC桥接器访问数据库,利用ODBC驱动程序访问JDBC访问; 建立这种桥接器后,使得JDBC有能力访问所有类型的数据库; 必须设置数据源。,课堂练习:数据库的建立与数据源的设置,建立数据库“students ” (本课采用SQL Server 2000数据库); 建立表: students ; 表的字段:学号 姓名 数学成绩 英语成绩 物理成绩 设置数据源:“sun” 步骤:控制面板O

3、DBC数据源系统(用户)DSN添加不同数据库驱动程序完成数据源名选择数据库 测试程序:Example5_1.jsp,JDBC-ODBC桥接器,加载桥接器驱动程序: Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Class是包java.lang中的一个类,该类调用静态方法forName就可以建立桥接器。 注意:处理异常。 try Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); catch(ClassNotFoundException e) ,连接到数据库,使用包java.sql中的Connection类

4、声明一个对象; 使用类DriverManager调用静态方法getConnection创建这个连接对象 Connection con=DriverManager.getConnection(“jdbc:odbc:数据源名字”,”login name”,”password”);,例:与数据库students建立连接,假设数据库students的数据源的名称为sun, 建立的方法为: try) Connection con=DriverManage.getConnection(“jdbc:odbc:sun”,”sa”,”); catch(SQLException e) ,向数据库发送SQL语句,首

5、先用Statement声明一个SQL语句对象; 调用连接数据库的对象con调用方法createStartment()创建SQL对象; try Statement sql=con.createStatement(); Catch(SQLException e) ,处理查询结果,利用SQL语句对象,调用方法对表查询和修改; 查询对象放在一个ResultSet类声明的对象中,即返回一个ResultSet对象: ResultSet rs=sql.executeQuery(“select * from 表名”); ResultSet对象一次只能看到一个数据行,使用next()方法移到下一数据行: rs.

6、next(),取得数据表中的数据,为取得记录指针当前指向记录的各个字段的数据,可以根据字段的数据类型使用getXXX方法。 语法格式: rs.getXXX(“字段名称”); 针对数据库中不同字段 的数据类型,取得字段数据的getXXX方法。 例如:rs.getString(1) rs.getInt(“数学成绩”),利用While循环获取数据表中所有记录,利用ResultSet对象在建立时,记录指针指向第一条记录之前,结合ResultSet对象提供的next方法,在while循环中移动记录指针,向下逐条地将数据库中的记录依次获取,在移动到记录的最后一条,由next方法返回值false来结束循环。

7、 语法结构: while(rs.next() rs.getXXX(“字段名称”); ,练习拓展,将程序Example.jsp改为在dreamweaver中设计页面; 查询英语成绩大于80分的同学,结果只显示“姓名”和“英语成绩”; 增加“班级”字段,在页面显示数据。,思考,如何在结果集中前后移动? 如何按照逆序输出记录? 如何指定显示一条记录?,游动查询(重点内容),Statement对象的建立: Statement statement=con.createStatement(int type,int concurrency); Type(滚动方式)默认值:TYPE_FORWARD_ONLY

8、concurrency(数据一致性)默认值:COUCUR_READ_ONLY 此时,指针只能向前移动,而且ResultSet对象中的数据只能读而不能修改;,type的取值,type的取值决定滚动方式,取值还可以是: TYPE_SCROLL_SENSITIVE 指针能够向前或向后自由移动,其他ResultSet对象变动指针时,会影响指针的位置; TYPE_SCROLL_INSENSITIVE 指针能够向前或向后自由移动,其他ResultSet对象变动指针时,不会影响指针的位置。,Concurrency取值,Concurrency取值决定是否可以用数据集更新数据库 CONCUR_READ_ONLY

9、: 不能用结果集更新数据库中的表; CONCUR_UPDATEABLE: ResultSet对象中的数据可以读也可以修改,不能用结果集更新数据库中的表;,ResultSet的一些方法:,previous()、beforeFirst()、afterLast()、first()、last()、isAfterLast()、isBeforeFirst()、isFirst()、isLast()、getRow()、absolute(int row)。 注意absolute(int row) : 如果row取负值,就是倒数的行数; absolute(-1)表示移到最后一行,当移动到第一行前面或最后一行的后面

10、时,该方法返回false。,逆序取得数据表中的记录,顺序查找: Statement sql=con.createStatement(); 逆序查找: Statement sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); /返回可滚动的结果集,rs的创建方法不改变。,逆序取得数据表中的记录(2),把记录指针移动到数据表记录的最后一条; 结合ResultSet对象提供的previous方法,在while循环中移动记录指针,向上逐条地将数据库中的记录依次获取; 在移动到记录的最前

11、一条,由previous方法返回值false来结束循环。 rs.last(); out.print(“该表共有“+rs.getRow()+“条记录“); rs.afterlast(); while(rs.previous() rs.getXXX(“字段名称”); ,SQL语言,SQL(Structured Query Language,结构查询语言): 是关系型数据库管理系统的标准语言,主要功能是与各种数据库进行联系、通信,实现对数据库的控制与管理; 关系数据库系统:Oracle、Sybase、Microsoft SQL Server、Acess等,都采用SQL作为数据库的操作语言。,DML(

12、Data Manipulation Language,数据操作语言);,用于执行数据库的检索或者修改数据,其分为以下几个语句: SELECT 用于检索数据; INSERT 用于增加数据到数据库; UPDATE 用于从数据库中修改现存的数据; DELETE 用于从数据库中删除数据;,SELECT语句,是SQL的核心,主要用于查询数据库并检索匹配指定条件的选择数据,语法格式为: SELECT 字段名称,字段名称2, FROM 数据表名,数据表名2 GROUP BY ”字段名称” HAVING ”分组条件” ORDER BY ”字段名称” 升序(ASC)|降序(DESC),练习,数据库:studen

13、t 数据源:student 程序:sql_select.jsp(数据查询语句测试) sql_recordPoint.jsp(数据插入、删除、修改测试) sql_while.jsp(逆序获取记录) sql_iud.jsp(记录指针) 要求:利用4个jsp程序,练习sql语句。,SELECT基本语句的应用,基本SELECT语句是指将数据表中的数据在不经过条件提取的情况下提取的全部数据; 格式:SELECT * FROM STUDENT(表名) 例如:SELECT ID,NAME,CHINESE,MATHS,PYSICS,CHEMISTRY FROM STUDENT,WHERE子句的应用,可选语句,

14、是对数据表中的数据进行有条件的查询; 语法结构:where “查询数据满足的条件”; LIKE运算符:满足与用户规定格式相同的记录,可与”%”,”_”,”#”配合使用; 通配符”%”:用来代替一个未知的字符串 例如:select * from student where name like 李%,查找姓李的所有同学的数据,通配符“_”,“_”用来代替一个未知的字符 例如:select * from student where name like 李_ 语句意义:查找只有两个字符,而且第一个字符必须为“李”的同学的数据;,比较运算符,运用比较运算符(1),等于运算符(=) 语句实例:select

15、 *from student where chinese=92 大于运算符:() 语句实例:select *from student where chinese75 小于运算符:() 语句实例:select *from student where chinese75,运用比较运算符(2),大于等于运算符:(=) 语句实例:select *from student where chinese=75 小于等于运算符:() 语句实例:select *from student where chinese75,NOT运算符,语法结构: where not 字段名称1 like; 或者 where not

16、字段名称1 not like; 语句实例: select * from student where not name like 李% ; 或者: select * from student where name not like 李% ; 语句意义:查询不姓李的同学的数据。,IN运算符语法结构,语法结构: where 字段名称 in(值1,值); 语句实例: select * from student where name in (李凌霜,高山雪) 语句意义: 查询姓名为李凌霜,高山雪二位同学的数据。,BETWEENAND运算符,语法结构: where 字段名称 between 值 1 and 值 2; 语句实例: select * from student where maths between 80 and 90; 语句意义: 查询数学成绩在80分90分之间的同学的数据.,AND运算符,语法结构:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号