购买

¥ 30.0

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 第4章JDBC技术

第4章JDBC技术.ppt

第4章JDBC技术

烟雨梦兮
2018-10-14 0人阅读 举报 0 0 暂无简介

简介:本文档为《第4章JDBC技术ppt》,可适用于IT/计算机领域

|海有|壁无|一份耕耘。|纳容|立欲|一份收获!|百乃|千则|岂能事事如意但求无愧于心!|川大|仞刚|把微笑留给世界让世界因你微笑!温故而知新!第章JavaBean技术JavaBean基础知识编写和使用JavaBean编写JavaBean组件在JSP页面中使用JavaBeanJavaBean的作用域JavaBean应用实例使用JavaBean访问数据库使用JavaBean实现猜数游戏使用JavaBean实现购物系统第章JDBC技术JDBC基础知识通过JDBCODBC桥访问数据库通过JDBC驱动访问数据库查询数据库更新数据库(增、删、改)JSP在数据库应用中的相关问题学生信息管理系统应用实例JDBC基础知识JDBC全称为JavaDataBaseConnectivity两组分别面向应用程序开发人员和数据库驱动程序开发人员的应用程序接口(ApplicationProgrammingInterfaceAPI)以及将前者向后者转化的内在封装逻辑。JDBC是一个面向对象的应用程序接口(API)通过它可访问各类关系数据库。JDBC也是java核心类库的一部分由一些Java语言编写的类和界面组成。JDBC为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口使开发人员可以用纯Java语言编写完整的数据库应用程序。JDBC的功能:()同一个数据库建立连接()向数据库发送SQL语句()处理数据库返回的结果。JDBC结构应用程序应用程序实现JDBC的连接、发送SQL、然后获取结果的功能执行以下任务:与数据源请求建立连接向数据源发送SQL请求为结果集定义存储应用和数据类型询问结果处理错误控制传输提交操作关闭连接。JDBCAPIJDBC API是一个标准统一的SQL数据存取接口。为Java程序提供统一的操作各种数据库的接口。程序员编程时不用关心它所要操作的数据库是哪种数据库从而提高了软件的通用性。只要系统上安装了正确的驱动器组件JDBC应用程序就可以访问其相关的数据库。驱动程序管理器JDBC驱动程序管理器的主要作用是代表用户的应用程序调入特定驱动程序要完成的任务包括:为特定数据库定位驱动程序处理JDBC初始化调用等。驱动程序驱动程序实现JDBC的连接向特定数据源发送SQL声明并且为应用程序获取结果。数据库数据库是应用程序想访问的数据源(如Oracle、Microsofing("国学(论语)")><td><td><=rsgetString("高数")><td><td><=rsgetString("Java")><td><td><=rsgetString("JSP")><td><td><=rsgetString("计算机网络")><td><td><=rsgetString("Java项目实训")><td><td><=rsgetString("JSP项目实训")><td><tr><}><="查询Excel成功!"><rsclose()stmtclose()connclose()><table><body><html>通过JDBCODBC桥访问数据库通过桥访问Access通过桥访问Excel通过桥访问MicrosoftSQLServer创建表本例中使用SQLServer建一个student数据库并在该数据库中创建一个info表数据库、表以及表的字段如图所示。表的数据如图所示。配置MicrosoftSQLServer数据源编写JSP文件访问MicrosoftSQLServer(ODBCSQLServerjsp)【】使用数据源访问SQLServer的JSP页面(ODBCSQLServerjsp)<pageimport="javasql*"><pagecontentType="texthtml"pageEncoding=""><html><head><metahttpequiv="ContentType"content="texthtmlcharset="><title>通过数据源访问SQLServer<title><head><body><center><br><br><br><br><h>通过数据源访问SQLServer数据库<h><hr><br><tableborder=align="center"bgcolor="ccceee"><tr><th>学号<th><th>姓名<th><th>性别<th><th>年龄<th><th>体重<th><tr><Stringurl="jdbc:odbc:ch"Stringuser="sa"Stringpassword="root"Connectionconn=DriverManagergetConnection(url,user,password)Statementstmt=conncreateStatement()Stringsql="select*frominfo"ResultSetrs=stmtexecuteQuery(sql)while(rsnext()){><tr><td><=rsgetString("studentNumber")><td><td><=rsgetString("studentName")><td><td><=rsgetString("studentSex")><td><td><=rsgetString("studentAge")><td><td><=rsgetString("studentWeight")><td><tr><}rsclose()stmtclose()connclose()><table><hr><center><body><html>第章JDBC技术JDBC基础知识通过JDBCODBC桥访问数据库通过JDBC驱动访问数据库查询数据库更新数据库(增、删、改)JSP在数据库应用中的相关问题学生信息管理系统应用实例第章JSP中基本数据库操作JDBC基础知识通过JDBCODBC桥访问数据库通过JDBC驱动访问数据库查询数据库及其应用实例更新数据库(增、删、改)及其应用实例JSP在数据库应用中的相关问题学生信息管理系统应用实例常见问题及解决方案通过JDBC驱动访问数据库访问MySQL数据库访问MicrosoftSQLServer数据库访问MicrosoftSQLServer数据库前面介绍了如何使用JDBC-ODBC连接Access数据库使用JDBC-ODBC还可以连接SQLServer数据库。其实有很多数据库提供商提供了数据库的JDBC驱动程序可以直接访问数据库例如微软提供了JDBC直接连接SQLServer数据库JDBC驱动程序sqlserverdriverforjdbc使得可以直接使用JDBC访问SQLServer数据库。MySQLJDBC驱动下载和配置本书使用的是MySQL下载支持版本的JDBC驱动。本书使用的JDBC驱动是mysqlconnectorjavabinjar。下载完成MySQL的JDBC驱动后把该文件可以放到任意目录下这里假设该目录是“D:JavaWeb技术整合应用与项目实战(JSPServletStrutsHibernateSpring)ch”。然后设置ClassPath以保证Web服务器能够访问到这个驱动程序。设置方法如下:()依次进入“我的电脑”>“系统”>“设置环境变量”如果已经有ClassPath变量就编辑该变量的值否则增加ClassPath变量。()设置ClassPath的值为:“D:JavaWeb技术整合应用与项目实战(JSPServletStrutsHibernateSpring)chmysqlconnectorjavabinjar”。()重新启动服务器即可。()MySQL的JDBC驱动在NetBeans中的配置在NetBeans项目“ch”上右单击如图所示单击“属性”弹出对话框在对话框中选择“库”>“添加JAR文件夹(F)”找到MySQLJDBC驱动所在位置如图所示。找到驱动位置后点击“打开”MySQLJDBC驱动配置完成。()MySQL的JDBC驱动在MyEclipse中的配置在MyEclipse项目“ch”上右单击在属性菜单中单击“BuildPath”>“ConfigureBuildPath…”如图所示。单击“ConfigureBuildPath…”弹出对话框如图在对话框中选择卡“Libraries”>“AddExternalJARS…”找到MySQLJDBC驱动所在位置如图所示。找到驱动位置后点击“打开”MySQLJDBC驱动在MyEclipse中配置完成。MySQL建立数据库和表编写JSP文件访问数据库(accessMySQLjsp)<pageimport="javasql*"><pagecontentType="texthtml"pageEncoding=""><html><head><metahttpequiv="ContentType"content="texthtmlcharset="><title>通过MySQL的JDBC驱动访问数据库<title><head><body><h>使用MySQL的JDBC驱动访问MySQL数据库<h><hr><tableborder=""bgcolor="#ccceee"align="center"><tr><thwidth=""align="center">学号<th><thwidth=""align="center">姓名<th><thwidth=""align="center">专业<th><tr><Connectioncon=Statementstmt=ResultSetrs=ClassforName("commysqljdbcDriver")*localhost表示主机地址即本机为端口号student为数据库名url后面加的useUnicode=truecharacterEncoding=gbk是为了处理向数据库中添加数据时出现乱码的问题。*Stringurl="jdbc:mysql:localhost:studentuseUnicode=truecharacterEncoding=gbk"con=DriverManagergetConnection(url,"root","root")stmt=concreateStatement()Stringsql="select*fromsinfo"rs=stmtexecuteQuery(sql)while(rsnext()){><tr><td><=rsgetString("studentNumber")><td><td><=rsgetString("studentName")><td><td><=rsgetString("studentClass")><td><tr><}rsclose()stmtclose()conclose()><table><hr><body><html>通过JDBC驱动访问数据库访问MySQL数据库访问MicrosoftSQLServer数据库访问MicrosoftSQLServer数据库MicrosoftSQLServerJDBC驱动下载和配置(安装)复制MicrosoftSQLServerDriverforJDBCLib下面的jar包到服务器commonlibMicrosoftSQLServer建立数据库和表本例使用了SQLServer自带的pubs数据库将其设置为Windows和SQL混合模式登录用户名字为sa密码为空。登录模式和sa设置步骤为:()点击属性点击“开始”>“所有程序”>“MicrosoftSQLServer”>“企业管理器”>“(local)(WindowsNT)”>“属性”如图所示。()设置混合登录模式在图中在“身份验证”中选择“SQLServer和Windows【s】”。()添加系统管理员sasa是SQLServer默认的数据库管理员用户名。在图企业器属性结构中选择“安全性”> “登录”>“新建登录”如图所示。点击“新建登录”后弹出如图所示对话框在该对话框中输入用户名为“sa”身份验证选择“SQLServer身份验证”为用户输入密码选择要操作的数据库名“pubs”。()设置其它选项卡在图“服务器角色”选项卡中选择数据库管理员身份“SystemAdministrators”如图所示。在图“数据库访问”选项卡中选择要访问的数据库名并指定对该数据库所允许的操作public是公共操作dbowner是数据库所有者能够进行的操作如图所示。编写JSP文件访问数据库(accessSQLServerjsp)【】使用驱动访问SQLServer的JSP页面(accessSQLServerjsp)<pageimport="javasql*"><pagecontentType="texthtml"pageEncoding=""><html><metahttpequiv="ContentType"content="texthtmlcharset="><head><title>通过SQLServer的JDBC驱动访问数据库<title><head><body><center><br><br><br><h>欢迎使用SQLServer的JDBC驱动访问SQLServer数据库<h><hr><tableborder=bgcolor="ccceee"align="center"><tr><td>jobid<td><td>jobdesc<td><td>minlvl<td><td>maxlvl<td><tr><ClassforName("commicrosoftjdbcsqlserverSQLServerDriver")Stringurl="jdbc:microsoft:sqlserver:localhost:DatabaseName=pubs"Stringuser="sa"Stringpassword=""Connectionconn=DriverManagergetConnection(url,user,password)Statementstmt=conncreateStatement()Stringsql="selecttop*fromjobs"ResultSetrs=stmtexecuteQuery(sql)while(rsnext()){><tr><td><=rsgetString("jobid")><td><td><=rsgetString("jobdesc")><td><td><=rsgetString("minlvl")><td><td><=rsgetString("maxlvl")><td><tr><}rsclose()stmtclose()connclose()><table><hr><center><body><html>通过JDBC驱动访问数据库访问MySQL数据库访问MicrosoftSQLServer数据库访问MicrosoftSQLServer数据库MicrosoftSQLServerJDBC驱动下载和配置如果数据库使用的MicrosoftSQLServer在Microsoft网站下载MicrosoftJDBCDriverforSQLServer。下载后进行解压解压后如图所示有个JAR包。设置ClassPath以保证Web服务器能够访问到这个驱动程序。设置方法如下:()依次进入“我的电脑”>“系统”>“设置环境变量”如果已经有ClassPath变量就编辑该变量的值否则增加ClassPath变量()设置ClassPath的值为:“D:JavaWeb技术整合应用与项目实战(JSPServletStrutsHibernateSpring)chMicrosoftJDBCDriverforSQLServersqljdbcchssqljdbcjar”。只使用图中的sqljdbcjar文件sqljdbcjar文件不使用所以不需要配置。()重新启动服务器即可。如果开发JavaWeb项目使用的是NetBeans、MyEclipse和Eclipse。加载JDBC驱动和加载MySQL的驱动相似不过在使用MicrosoftJDBCDriverforSQLServer驱动时需要sqljdbcjar文件如图所示。MicrosoftSQLServer建立数据库和表使用的数据库、表以及数据如图、图所示。登录模式和sa设置步骤为:编写JSP文件访问数据库(accessSQLServerjsp)【】使用驱动访问SQLServer的JSP页面(accessSQLServerjsp)<pageimport="javasql*"><pagecontentType="texthtml"pageEncoding=""><html><head><metahttpequiv="ContentType"content="texthtmlcharset="><title>通过JDBC驱动访问SQLServer<title><head><body><center><br><br><br><h>使用JDBC驱动访问SQLServer数据库<h><hr><tableborder=bgcolor="ccceee"align="center"><tr><th>学号<th><th>姓名<th><th>性别<th><th>年龄<th><th>体重<th><tr><SQLServer的驱动名和SQLServer不一样请比较ClassforName("commicrosoftsqlserverjdbcSQLServerDriver")SQLServer的URL和SQLServer不一样请比较Stringurl="jdbc:sqlserver:localhost:databasename=student"Stringuser="sa"数据库登录用户名Stringpassword="root"数据库登录密码Connectionconn=DriverManagergetConnection(url,user,password)Statementstmt=conncreateStatement()Stringsql="select*frominfo"ResultSetrs=stmtexecuteQuery(sql)while(rsnext()){><tr><td><=rsgetString("studentNumber")><td><td><=rsgetString("studentName")><td><td><=rsgetString("studentSex")><td><td><=rsgetString("studentAge")><td><td><=rsgetString("studentWeight")><td><tr><}rsclose()stmtclose()connclose()><table><hr><center><body><html>第章JDBC技术JDBC基础知识通过JDBCODBC桥访问数据库通过JDBC驱动访问数据库查询数据库更新数据库(增、删、改)JSP在数据库应用中的相关问题学生信息管理系统应用实例查询数据库SQL的查询语句JSP发送执行查询语句SQL的查询语句在查询数据库中的记录时都是通过标准的SQL语句来实现的。SQL的查询语句即SELECT语句是SQL语言的核心其语法格式为:SELECTALL|DISTINCTcolumn,columnFROMtable,tableWHERE"conditions"GROUPBY"columnlist"HAVING"conditionsORDERBY"columnlist"ASC|DESC其中column,column为要查询的列名。table,table用来指定要查询的表的名称。WHERE“conditions”用来指定用于限制返回的结果的搜索条件。HAVING“conditions用来指定组或聚合的搜索条件。ORDERBY”columnlist“ASC|DESC用来指定结果集的排序。例如:SELECTid,nameFROMstuinfoWHERE(age<)ORDERBYidDESCJSP发送执行查询语句JDBC提供了三种接口来实现SQL语句的发送执行它们分别是Statement、PreparedStatement和CallableStatement。PreparedStatement继承了Statement而CallableStatement又从PreparedStatement继承而来。它们用于执行不同的SQL语句:Statement接口的对象用于执行简单的不带参数的SQL语句PreparedStatement接口的对象用于执行带有IN类型参数的预编译过的SQL语句而CallableStament接口的对象用于执行一个数据库的存储过程。Statement类Statementstmt=connectioncreatStatement(inttype,intconcurrency)Type参数:ResultSetTYPEINSENSITIVE游标上下滚动数据库变化时当前结果集不变。ResultSetTYPESENSITIVE游标上下滚动数据库变化时当前结果集随着变化。Concurrency参数:ResultSetCONCURREADONLY不能用结果集更新数据库中的表。ResultSetCONCURREADUPDATETABLE可用结果集更新数据库中的表。Statement类还提供了一些操作结果集的方法表列出利用Statement类创建对象的一些常用方法。PreparedStatement类PreparedStatement类可以将SQL语句传给数据库做预编译处理即在执行的SQL语句中包含一个或多个IN参数可以通过设置IN参数值多次执行SQL语句不必重新给出SQL语句这样可以大大提高执行SQL语句的速度。所谓IN参数就是指那些在SQL语句创立时尚未指定值的参数在SQL语句中IN参数用“”号代替。例如:PreparedStatementpstmt=connectionpreparedStatement("SELECT*FROMstudentWHERE年龄>=AND性别=")【】利用PreparedStatement对象查询info表信息(PreparedStatementSQLjsp)<pageimport="javasql*"><pagecontentType="texthtml"pageEncoding=""><html><head><metahttpequiv="ContentType"content="texthtmlcharset="><title>PreparedStatement类的使用<title><head><body><br><br><center><h>使用PreparedStatement类访问SQLServer<h><hr><tableborder=bgcolor="ccceee"align="center"><tr><th>学号<th><th>姓名<th><th>性别<th><th>年龄<th><th>体重<th><tr><ClassforName("commicrosoftsqlserverjdbcSQLServerDriver")Stringurl="jdbc:sqlserver:localhost:databasename=student"Stringuser="sa"Stringpassword="root"Connectionconn=DriverManagergetConnection(url,user,password)Stringsql="select*frominfowherestudentAge>=andstudentAge<="PreparedStatementstmt=connprepareStatement(sql)stmtsetInt(,)stmtsetInt(,)ResultSetrs=stmtexecuteQuery()while(rsnext()){><tr><td><=rsgetString("studentNumber")><td><td><=rsgetString("studentName")><td><td><=rsgetString("studentSex")><td><td><=rsgetString("studentAge")><td><td><=rsgetString("studentWeight")><td><tr><}rsclose()stmtclose()connclose()><table><hr><center><body><html>ResultSet的方法可以通过ResultSet对象的方法在结果集中进行滚动查询。常用滚动查询的方法见表。【】ResultSet对象的游标滚动(ResultSetSQLjsp)<pageimport="javasql*"><pagecontentType="texthtml"pageEncoding=""><html><head><metahttpequiv="ContentType"content="texthtmlcharset="><title>ResultSet方法使用<title><head><body><h>使用ResultSet方法访问SQLServer<h><hr><tableborder=""bgcolor="ccceee"align="center"><tr><th>学号<th><th>姓名<th><th>性别<th><th>年龄<th><th>体重<th><tr><ClassforName("commicrosoftsqlserverjdbcSQLServerDriver")Stringurl="jdbc:sqlserver:localhost:databasename=student"Stringuser="sa"Stringpassword="root"Connectionconn=DriverManagergetConnection(url,user,password)Statementstmt=conncreateStatement(ResultSetTYPESCROLLSENSITIVE,ResultSetCONCURREADONLY)Stringsql="select*frominfo"ResultSetrs=stmtexecuteQuery(sql)rslast()rsafterLast()while(rsprevious()){><tr><td><=rsgetString("studentNumber")><td><td><=rsgetString("studentName")><td><td><=rsgetString("studentSex")><td><td><=rsgetString("studentAge")><td><td><=rsgetString("studentWeight")><td><tr><}rsclose()stmtclose()connclose()><table><hr><center><body><html>第章JDBC技术JDBC基础知识通过JDBCODBC桥访问数据库通过JDBC驱动访问数据库查询数据库更新数据库(增、删、改)JSP在数据库应用中的相关问题学生信息管理系统应用实例更新数据库(增、删、改)SQL的更新语句JSP发送执行更新语句SQL的更新语句SQL语言中使用UPDATE语句来更新表中的现有数据。其语法格式为:UPDATEtablenameSETcolumnname=expression[columnname=expression]WHEREsearchcondition]其中tablename:用来指定需要更新的表的名称。如果该表不在当前服务器或数据库中或不为当前用户所有这个名称可用链接服务器、数据库和所有者名称来限定。SETcolumnname=expression[columnname=expression]:指定要更新的列或变量名称的列表columnname指定含有要更改数据的列的名称。WHEREsearchcondition:指定条件来限定所更新的行。根据所使用的WHERE子句的形式有两种更新形式:一种是搜索更新指定搜索条件来限定要删除的行另一种是定位更新使用CURRENTOF子句指定游标更新操作发生在游标的当前位置。JSP发送执行更新语句Statement类提供的executeUpdate()方法执行INSERT、UPDATE或DELETE语句以及SQLDDL(数据定义语言)语句。INSERT、UPDATE或DELETE语句的效果是修改表中零行或多行中的一列或多列。executeUpdate()的返回值是一个整数指示受影响的行数(即更新计数)。对于CREATETABLE或DROPTABLE等不操作行的语句executeUpdate()的返回值总为零。executeUpdate()方法和执行SELECT声明的executeQuery()方法相似但是它不返回一个ResultSet而是返回受到INSERT、UPDATE、或者DELETE操作影响的行数。将stuinfo表中姓名为“张江伟”的同学性别改为“M”。Statementstmt=concreateStatement()stmtexcuteUpdate(“UPDATEstuinfoSETsex=‘男’WHEREname=‘张江伟’”)stmtclose()或者Stringsql=“UPDATEstuinfoSETsex=‘M’WHEREname=‘张江伟’”stmtexcuteUpdate(sql)stmtclose()添加记录SQL的插入语句发送执行插入语句SQL的插入语句在SQL语言中使用INSERT语句将新行添加到表或视图中。INSERT语句的语法格式为:INSERTINTOtablenamecolumnlistVALUES({DEFAULT||expression},n)tablename:指定将要插入数据的表或table变量的名称。columnlist:要在其中插入数据的一列或多列的列表。必须用圆括号将columnlist括起来并且用逗号进行分隔。VALUES({DEFAULT||expression},n):引入要插入的数据值的列表。对于columnlist(如果已指定)中或者表中的每个列都必须有一个数据值且必须用圆括号将值列表括起来。如VALUES列表中的值与表中列的顺序不相同或者未包含表中所有列的值那么必须使用columnlist明确地指定存储每个传入值的列。例:INSERTINTOstuinfo(id,name,sex,age,weight)VALUES(,’马欢’‘M’,’’,)发送执行插入语句JSP中和更新记录一样可以使用executeUpdate()方法来发送执行插入语句。例:Statementstmt=concreateStatement()Stringsql=“INSERTINTOstuinfo(id,name,sex,age,weightVALUES(,’马欢’‘M’,’’,)”stmtexcuteUpdate(sql)stmtclose()删除记录SQL的删除语句JSP发送执行删除语句SQL的删除语句在SQL语言中使用DELETE语句删除数据表中的行。DELETE语句的语法格式为:DELETEFROMtablenameWHEREsearchconditiontablename:用来指定从中删除记录的表的名称。WHERE:用来指定用于限制删除行数的条件。如果没有提供WHERE子句则DELETE删除表中的所有行。例如要从stuinfo表中删除学号为“”的学生的记录则SQL语句为:DELETEFROMstuinfoWHEREid=JSP发送执行删除语句JSP中删除语句的发送和执行也是通过executeUpdate()方法来实现的其实现方法和更新语句、插入语句相同。例如实现从stuinfo表中删除学号为“”的学生的记录的JSP代码为:Statementstmt=conncreateStatement()Stringsql="DELETEFROMstuinfoWHEREid="stmtexecuteUpdate(sql)stmtclose()应用实例更新数据库实例。本例使用SQLServer数据库数据库、表以及表中记录参考图和图。程序有一个添加学生信息页面(inputjsp)如图所示。在图中输入信息。点击“提交”后请求提交到inputcheckjsp页面处理数据inputCheckjsp页面中实现了对数据的添加、更改和删除操作。运行效果如图所示。【】添加学生信息页面(inputcheckjsp)<pagecontentType="texthtml"pageEncoding=""><html><head><metahttpequiv="ContentType"content="texthtmlcharset="><title>JSP中更新数据库<title><head><bodybgcolor="CCCFFF"><br><br><center><formaction="inputCheckjsp"method="post"><h>输入要添加学生的信息<h><hr><tableborder=""width=""><tr><td>学号<td><td><inputtype="text"name="studentNumber"><td><tr><tr><td>姓名<td><td><inputtype="text"name="studentName"><td><tr><tr><td>性别<td><td><inputtype="text"name="studentSex"><td><tr><tr><td>年龄<td><td><inputtype="text"name="studentAge"><td><tr><tr><td>体重<td><td><inputtype="text"name="studentWeight"><td><tr><tralign="center"><tdcolspan=""><inputname="sure"type="submit"value="提交"><inputname="clear"type="reset"value="取消"><td><tr><table><hr><form><center><body><html>【】处理数据页面(inputCheckjsp)<pageimport="javasql*"><pagecontentType="texthtml"pageEncoding=""><html><head><metahttpequiv="ContentType"content="texthtmlcharset="><title>数据更新后的页面<title><head><body><center><h>已添加学生信息<h><hr><StringstudentNumber=requestgetParameter("studentNumber")byteb=studentNumbergetBytes("ISO")studentNumber=newString(b,"")StringstudentName=requestgetParameter("studentName")byteb=studentNamegetBytes("ISO")studentName=newString(b,"")StringstudentSex=requestgetParameter("studentSex")byteb=studentSexgetBytes("ISO")studentSex=newString(b,"")StringstudentAge=requestgetParameter("studentAge")byteb=studentAgegetBytes("ISO")studentAge=newString(b,"")StringstudentWeight=requestgetParameter("studentWeight")byteb=studentWeightgetBytes("ISO")studentWeight=newString(b,"")ClassforName("commicrosoftsqlserverjdbcSQLServerDriver")Stringurl="jdbc:sqlserver:localhost:databasename=student"Stringuser="sa"Stringpassword="root"Connectionconn=DriverManagergetConnection(url,user,password)Statementstmt=conncreateStatement()Stringsql="insertintoinfovalues('"studentNumber"','"studentName"','"studentSex"',"studentAge","studentWeight")"stmtexecuteUpdate(sql)stmtclose()connclose()><h>已更改学生信息<h><hr><ClassforName("commicrosoftsqlserverjdbcSQLServerDriver")Stringurl="jdbc:sqlserver:localhost:databasename=student"Stringuser="sa"Stringpassword="root"Connectionconn=DriverManagergetConnection(url,user,password)Statementstmt=conncreateStatement()Stringsql="updateinfosetstudentAge="stmtexecuteUpdate(sql)stmtclose()connclose()><h>已删除学生信息<h><hr><ClassforName("commicrosoftsqlserverjdbcSQLServerDriver")Stringurl="jdbc:sqlserver:localhost:databasename=student"Stringuser="sa"Stringpassword="root"Connectionconn=DriverManagergetConnection(url,user,password)Statementstmt=conncreateStatement()Stringsql="deletefrominfowherestudentSex='男'"stmtexecuteUpdate(sql)stmtclose()connclose()><h>经过以上操作后数据库中有以下记录<h><hr><tableborder=bgcolor="ccceee"align="center"><tr><td>学号<td><td>姓名<td><td>性别<td><td>年龄<td><td>体重<td><tr><ClassforName("commicrosoftsqlserverjdbcSQLServerDriver")Stringurl="jdbc:sqlserver:localhost:databasename=student"Stringuser="sa"Stringpassword="root"Connectionconn=DriverManagergetConnection(url,user,password)Statementstmt=conncreateStatement()Stringsql="select*frominfo"ResultSetrs=stmtexecuteQuery(sql)while(rsnext()){><tr><td><=rsgetString("studentNumber")><td><td><=rsgetString("studentName")><td><td><=rsgetString("studentSex")><td><td><=rsgetString("studentAge")><td><td><=rsgetString("studentWeight")><td><tr><}rsclose()stmtclose()connclose()><table><hr><center><body><html>第章JDBC技术JDBC基础知识通过JDBCODBC桥访问数据库通过JDBC驱动访问数据库查询数据库更新数据库(增、删、改)JSP在数据库应用中的相关问题学生信息管理系统应用实例JSP在数据库应用中的相关问题JSP的分页技术汉字处理JSP的分页技术在实际应用中如果从数据库中查询得到的记录特别多甚至超过了显示器屏幕范围这时可将结果分页显示。本例使用的数据库以及表是上一节使用的student数据库和info表。假设总记录数为intRowCount每页显示记录的数量为intPageSize总页数为intPageCount那么总页数的计算公式为:如果(intRowCountintPageSize)>则intPageCount=intRowCountintPageSize。如果(intRowCountintPageSize)=则intPageCount=intRowCountintPageSize。翻页后显示第intPage页的内容将记录指针移动到(intPage)*intPageSize。【】分页显示实例(pageBreakjsp)<pageimport="javasql*"><pagecontentType="texthtml"pageEncoding=""><html><head><metahttpequiv="ContentType"content="texthtmlcharset="><title>分页浏览记录<title><head><body><center>分页显示记录内容<hr><tableborder=""bgcolor="cccfff"align="center"><tr><th>学号<th><th>姓名<th><th>性别<th><th>年龄<th><th>体重<th><tr><ClassforName("commicrosoftsqlserverjdbcSQLServerDriver")Stringurl="jdbc:sqlserver:localhost:databasename=student"Stringuser="sa"Stringpassword="root"Connectionconn=DriverManagergetConnection(url,user,password)intintPageSize一页显示的记录数intintRowCount记录总数intintPageCount总页数intintPage待显示页码StringstrPageintiintPageSize=设置一页显示的记录数strPage=requestgetParameter("page")取得待显示页码if(strPage==){*表明在QueryString中没有page这一个参数此时显示第一页数据*intPage=}else{将字符串转换成整型intPage=javalangIntegerparseInt(strPage)if(intPage<)intPage=}Statementstmt=conncreateStatement(ResultSetTYPESCROLLSENSITIVE,ResultSetCONCURREADONLY)Stringsql="select*frominfo"ResultSetrs=stmtexecuteQuery(sql)rslast()光标指向查询结果集中最后一条记录intRowCount=rsgetRow()获取记录总数记算总页数intPageCount=(intRowCountintPageSize)intPageSizeif(intPage>intPageCount)调整待显示的页码intPage=intPageCountif(intPageCount>){rsabsolute((intPage)*intPageSize)将记录指针定位到待显示页的第一条记录上显示数据i=while(i<intPageSize!rsisAfterLast()){><tr><td><=rsgetString("studentNumber")><td><td><=rsgetString("studentName")><td><td><=rsgetString("studentSex")><td><td><=rsgetString("studentAge")><td><td><=rsgetString("studentWeight")><td><tr><rsnext()i}}><table><hr><divalign="center">第<=intPage>页共<=intPageCount>页<if(intPage<intPageCount){><ahref="pageBreakjsppage=<=intPage>">下一页<a><}if(intPage>){><ahref="pageBreakjsppage=<=intPage>">上一页<a><}rsclose()stmtclose()connclose()><div><center><body><html>JSP在数据库应用中的相关问题JSP的分页技术汉字处理在JSP访问数据库时一般不需要特别的汉字处理。但如果执行带参数的SQL语句并且参数是由用户指定则需要处理由客户端传递过来的汉字字符类型参数这时需要先进行汉字处理才能加载到SQL语句中具体代码如下:Stringname=requestgetParameter(“name”)Byteb=namegetBytes(“ISO”)name=newString(b,"")或者Stringname=newString(requestgetParameter("name")getBytes("ISO"),"")Stringcondition="insertintostudentvalues('"name"')"第章JDBC技术JDBC基础知识通过JDBCODBC桥访问数据库通过JDBC驱动访问数据库查询数据库更新数据库(增、删、改)JSP在数据库应用中的相关问题学生信息管理系统应用实例学生信息管理系统应用实例学生信息管理系统主页面功能的实现学生信息查询功能的实现学生信息添加功能的实现学生信息删除功能的实现学生信息修改功能的实现本节介绍一个综合应用实例说明如何对数据库进行操作。本实例用到的数据库及其表与和节一样。本实例有一个学生信息管理系统主页面(stuAdminjsp)该页面提供对学生信息的基本操作。主页面提供学生信息查询、学生信息添加、学生信息删除和学生信息修改功能页面都存放在studentManage文件夹中。主页面如图所示。总结与回顾!第章JDBC技术JDBC基础知识通过JDBCODBC桥访问数据库通过桥访问Access通过桥访问Excel通过桥访问MicrosoftSQLServer通过JDBC驱动访问数据库访问MySQL数据库访问MicrosoftSQLServer数据库访问MicrosoftSQLServer数据库查询数据库更新数据库(增、删、改)JSP在数据库应用中的相关问题JSP的分页技术汉字处理学生信息管理系统应用实例请复习已学知识!预习后面章节的内容并完成第章项目的部分功能

VIP尊享8折文档

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/175

第4章JDBC技术

¥30.0

会员价¥24.0

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利