JSP中实现数据库操作
jsp的功能
jsp的功能JSP(JavaServer Pages)是一种用来开发动态Web页面的Java技术。
它可以将Java代码嵌入到HTML文档中,以实现更丰富的页面交互和动态数据展示功能。
以下是JSP的一些常见功能。
1. 动态页面生成:JSP可以根据用户请求,动态生成HTML页面,并将页面内容返回给浏览器。
这使得网页内容可以根据不同的条件和参数进行自适应的展示。
开发者可以在JSP中使用Java代码来处理用户请求,调用数据库、调用其他Java对象等。
2. 数据库访问:JSP可以直接连接数据库,并执行数据库操作。
通过使用Java的数据库连接API,JSP可以从数据库中查询、添加、修改和删除数据,然后将结果展示在Web页面上。
这可以实现数据的持久化和动态更新。
3. 表单处理:JSP可以处理用户提交的表单数据。
通过在JSP页面中定义HTML表单元素,并在表单的提交动作中指定JSP的URL,JSP可以接收表单数据,并对数据进行验证、处理和存储。
这些可以用来实现用户注册、登录、数据录入等功能。
4. 条件判断和循环:JSP支持使用Java的条件语句和循环语句。
这使得可以在JSP页面中根据不同的条件展示不同的内容,或者重复展示一段代码块。
通过使用if语句、switch语句和for循环等,可以实现更复杂的页面逻辑。
5. 页面重定向和转发:JSP可以将请求重定向到其他页面,或者将请求转发到另一个JSP或Servlet。
这使得可以在不同的页面之间进行跳转和协作,实现业务流程的分步处理。
6. 用户认证和会话管理:JSP提供了与用户认证和会话管理相关的内置对象。
通过这些对象,可以实现用户登录、注销、用户角色权限控制等功能。
同时,JSP还支持在页面级别和应用程序级别上进行会话管理。
7. 页面模板和复用:JSP支持使用页面模板和标签库进行页面复用。
可以将多个JSP页面中的公共部分抽取出来,形成一个模板文件,然后在其他JSP页面中引用该模板文件。
用jsp程序对数据库表进行增、删、差、改操作
pstmt.setString(6,request.getParameter("Phone")) ;
pstmt.setFloat(7,Float.parseFloat(Grade)) ;//这个地方的问题要牢记
pstmt.setFloat(8,Float.parseFloat(Use)) ;//这个地方的问题要牢记
生 日 费:<input type="text"name="Use"><br>
<input type="submit"value="添加">
<input type="reset"value="重置">
</font>
</form>
<h3><a href="admin.jsp">返回</a>管理员页面</h3>
int x = pstmt.executeUpdate() ;//这个用法牢记
%>
<%
if(x>=1){
flag = true;
%>
添加信息成功!
<h3><a href="admin.jsp">返回</a>管理员页面</h3>
<%
}
%>
<%
}catch(Exception e){
e.printStackTrace() ;
使用JSP对数据库进行增删改查
使用JSP对数据库进行增删改查JSP(Java Server Pages)是一种用于开发Web应用程序的Java技术。
它可以直接在HTML页面中嵌入Java代码,实现动态生成页面内容。
在使用JSP进行数据库的增删改查操作时,通常需要借助JDBC(Java Database Connectivity)来进行数据库的连接和操作。
接下来,需要进行数据库的连接。
可以使用JDBC提供的DriverManager类和Connection接口来实现。
首先,需要定义数据库的相关信息,如驱动程序名称、数据库URL、用户名和密码。
然后,使用DriverManager的静态方法getConnection(来获取数据库连接,传入相应的参数。
例如,对于MySQL数据库,可以使用如下代码进行连接:String url = "jdbc:mysql://localhost:3306/database_name"; // 数据库URLString userName = "root"; // 数据库用户名String password = "password"; // 数据库密码try//加载驱动程序Class.forName(driverName);//获取数据库连接Connection connection = DriverManager.getConnection(url, userName, password);//...} catch (ClassNotFoundException e)e.printStackTrace(;} catch (SQLException e)e.printStackTrace(;连接成功后,接下来可以进行数据库的增删改查操作。
通常,可以使用JDBC的Statement或PreparedStatement对象来执行SQL语句。
Statement对象用于静态SQL语句,而PreparedStatement对象用于动态SQL语句。
jsp连接数据库代码大全
jsp连接数据库代码大全时间:2009-07-13 15:47来源:网络作者:编辑点击:68 次我要投稿注册IT家园现在初学jsp的网友常问数据库怎么连接啊,怎么老出错啊?这里写了篇文章供大家参考,其实这种把数据库逻辑全部放在jsp里未必是好的做法,但是有利于初学者学习,所以我就这样做了,当大家学到一定程度的时候,可以考虑用MVC的模式开发。
在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建create table test(test1 varchar(20),test2 varchar(20)然后向这个表写入一条测试纪录那么现在开始我们的jsp和数据库之旅吧。
一、jsp连接Oracle8/8i/9i数据库(用thin模式)testoracle.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();String url="jdbc:oracle:thin:@localhost:1521:orcl";//orcl为你的数据库的SIDString user="scott";String password="tiger";Connection conn= DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>二、jsp连接Sql Server7.0/2000数据库testsqlserver.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();String url="jdbc:microsoft: sqlserver://localhost:1433;DatabaseName=pubs";//pubs为你的数据库的String user="sa";String password="";Connection conn= DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>三、jsp连接DB2数据库testdb2.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance();String url="jdbc: db2://localhost:5000/sample";//sample为你的数据库名String user="admin";String password="";Connection conn= DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>四、jsp连接Informix数据库testinformix.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("rmix.jdbc.IfxDriver").newInstance();String url ="jdbc:informix- sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver;user=testuser;password=testpassword";//testDB为你的数据库名Connection conn= DriverManager.getConnection(url);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>五、jsp连接Sybase数据库testmysql.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("com.sybase.jdbc.SybDriver").newInstance();String url =" jdbc:sybase:Tds:localhost:5007/tsdata";//tsdata为你的数据库名Properties sysProps = System.getProperties();SysProps.put("user","userid");SysProps.put("password","user_password");Connection conn= DriverManager.getConnection(url, SysProps);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>六、jsp连接MySQL数据库testmysql.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("org.gjt.mm.mysql.Driver").newInstance();String url ="jdbc: mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncodin g=8859_1"//testDB为你的数据库名Connection conn= DriverManager.getConnection(url);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>七、jsp连接PostgreSQL数据库testmysql.jsp如下:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*"%><html><body><%Class.forName("org.postgresql.Driver").newInstance();String url ="jdbc: postgresql://localhost/soft"//soft为你的数据库名String user="myuser";String password="mypassword";Connection conn= DriverManager.getConnection(url,user,password);Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDA TABLE);String sql="select * from test";ResultSet rs=stmt.executeQuery(sql);while(rs.next()) {%>您的第一个字段内容为:<%=rs.getString(1)%>您的第二个字段内容为:<%=rs.getString(2)%><%}%><%out.print("数据库操作成功,恭喜你");%><%rs.close();stmt.close();conn.close();%></body></html>文章来自: 中国IT在线() 详文参考:/tech/program/other/1132.html。
jsp数据库操作之数据更新
jsp数据库操作之数据更新代码还是承接那个select.jspupdate.jsp<%--Created by IntelliJ IDEA.User: 长风Date: 2019/9/21Time: 20:03To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" import="java.sql.*" %><html><head><title>数据更新</title></head><body><%!public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";public static final String DBURL = "jdbc:mysql://localhost:3306/webstore?&useSSL=false&serverTimezone=UTC"; public static final String DBUSER = "root";public static final String DBPASS = "123456";%><%Connection conn = null;PreparedStatement pst = null;ResultSet rs = null;String id = null;%><%try {Class.forName(DBDRIVER);conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS);request.setCharacterEncoding("utf-8");id = request.getParameter("id");String sql_update = "select * from user_table where id='" + id + "'";//获取你要更新数据的id的数据库信息pst = conn.prepareStatement(sql_update);rs = pst.executeQuery();if (rs.next()) {%><form action="doupdate.jsp?id=<%=rs.getString("id")%>" method="post"><%--切换到doupdate,显⽰要更新的数据信息--%>⽤户名:<input type="text" value="<%=rs.getString("⽤户名")%>" name="user">密码: <input type="text" value="<%=rs.getString("密码") %>" name="psw">⽤户类型:<select name="ty"><option value="管理员">管理员</option><option value="普通⽤户">普通⽤户</option></select><input type="submit" value="修改"><input type="reset" value="取消"></form><%}} catch (Exception e) {out.println(e);}%></body></html>doupdate.jsp:<%--Created by IntelliJ IDEA.User: 长风Date: 2019/9/21Time: 20:03To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" import="java.sql.*" %><html><head><title>数据更新</title></head><body><%!public static final String DBDRIVER="com.mysql.cj.jdbc.Driver";public static final String DBURL="jdbc:mysql://localhost:3306/webstore?&useSSL=false&serverTimezone=UTC"; public static final String DBUSER="root";public static final String DBPASS="123456";%><%Connection conn=null;PreparedStatement pst=null;int rs=0;String ids=null;String user=null;String psw=null;String ty=null;%><%try{Class.forName(DBDRIVER);conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);request.setCharacterEncoding("utf-8");ids=request.getParameter("id");user=request.getParameter("user");psw=request.getParameter("psw");ty=request.getParameter("ty");String sql_update="update user_table set ⽤户名='"+user+"',密码='"+psw+"',⽤户类型='"+ty+"'where id='"+ids+"'"; pst=conn.prepareStatement(sql_update);rs=pst.executeUpdate();if(rs!=0){out.println("更新成功");%><jsp:forward page="select.jsp"></jsp:forward><%--修改之后转到展⽰页⾯--%><%}}catch(Exception e){out.println(e);}%></body></html>运⾏结果更新前更新中:更新后:。
js中连接数据库的方法
js中连接数据库的方法在JavaScript中,通常我们使用来连接数据库。
以下是一些常见的数据库和如何使用连接它们的方法:1. MySQL使用`mysql`模块:```javascriptconst mysql = require('mysql');const connection = ({host: 'localhost',user: 'root',password: 'password',database: 'my_db'});((err) => {if (err) throw err;('Connected to the MySQL server.');});```2. MongoDB使用`mongodb`模块:```javascriptconst MongoClient = require('mongodb').MongoClient; const url = "(url, function(err, db) {if (err) throw err;('Connected to MongoDB server.');();});```3. PostgreSQL使用`pg`模块:```javascriptconst { Pool } = require('pg')const pool = new Pool({user: 'myuser',host: 'localhost',database: 'mydb',password: 'mypassword',port: 5432,})((err, client) => {if (err) throw err;('Connected to PostgreSQL server.'); ()})```4. SQLite使用`sqlite3`模块:```javascriptconst sqlite3 = require('sqlite3').verbose(); // Use verbose mode to enable debug outputconst db = new (':memory:'); // Create a in-memory database. You can also specify a filename instead of ':memory:' to persist data to disk.(function() {("SELECT rowid AS id, name FROM lorem", function(err, row) {( + ": " + );});});();```请注意,这些示例假设您已经正确地安装了相应的数据库和模块。
JSP第九章 在JSP中使用数据库(新)
source d:/1000/group.sql
9.1 数据库系统-MySQL
➢删除数据库的命令:drop database <数据库名>, 例如:删除名为tiger的数据库:
drop database tiger; ➢删除表的命令:drop table <表名>,例如,使用 book数据库后,执行
软件开发环境
主讲教师 刘凡 fanliu@
第九章 在JSP中使用数据库
本章主要内容
9.1 MySQL数据库管理系统 9.2 JDBC 9.3 连接MySQL数据库 9.4 查询记录 9.5 更新、添加、删除记录 9.6 用结果集操作数据库中的表 9.7 预处理语句 9.8 事务 9.9 分页显示记录 9.10 常见数据库连接 9.11 标准化考试
9.1 数据库系统-MySQL
➢ MySQL提供的监视器(MySQL monitor),允许用户使用命令 行方式管理数据库。如果有比较好的数据库知识,特别是 SQL语句的知识,那么使用命令行方式管理MySQL数据库也是 很方便的.
➢ 需要再打开一个MS-DOS命令行窗口,并使用MS-DOS命令进入 到 bin 目 录 中 , 然 后 使 用 默 认 的 root 用 户 启 动 MySQL 监 视 器 (在安装MySQL时root用户是默认的一个用户,没有密码)。 命令如下:
ISBN varchar(100) not null , name varchar(100) CHARACTER SET gb2312, price float , PRIMARY KEY (ISBN) );
插入记录的SQL语句: insert into bookList values('7-302-01465-5','高等数学',28.67);
JSP 更新、添加与删除操作
JSP 更新、添加与删除操作更新数据库中的数据,可以使用SQL语句的UPDATE、INSERT和DELETE 操作,然后将包含UPDATE、INSERT、DELETE的SQL语句交给Statement对象的executeUpdate()方法执行。
Statement对象用于执行不带参数的简单SQL语句。
在J SP程序中,由于外部环境的变化,后台连接数据库中的数据每隔一段时间,就需要更新。
我们不可能直接打开MySQL数据库进行更新,一般情况下都是借助JSP程序进行更新。
1.数据添加案例现在创建一个案例,演示对数据库完成添加操作。
在JSP中,要完成数据库记录的添加操作,需要两个JSP页面,一个为数据输入页面,一个为处理数据页面。
参数值,并依据这些参数值创建sql添加语句。
变量name在获取name的参照值后,还需要进行编码转换,其语句为“name=new String(name.getBytes("iso-8859-1"))”。
下面使用对象stmt的方法executeUpdate执行相应的sql语句。
将上述两个文件复制到Tomcat服务器运行目录下。
打开IE浏览器,在地址栏中输入http://localhost:8080/JSPExample/MySQLInsert.jsp,单击【转到】,会显示如图6-10所示窗口:图6-10 数据添加输入页面在图6-10中的文本域中,分别输入要添加的信息。
然后单击【提交】按钮,会显示如图6-11所示窗口:图6-11 数据添加成功2.删除和修改数据执行删除与修改操作也非常简单,都可以通过向数据库发送sql语句来完成。
只不过执行的sql语句不同罢了。
下面创建一个案例,演示对MySQL数据库执行数据修改和删除。
打开记事本,创建MySQLGeng.jsp文件,完成数据的修改和删除操作。
其代码如下所示:将上述代码保存,并将文件复制到C:\Tomcat 6.0\webapps\JSPExample目录下。
使用JSPSERVLETJDBC实现对数据库的增删改查(详细)(精)
public void setCurrentRecord(int currentRecord{
this.currentRecord=currentRecord;
}
//获得和设置每页记录数量
public int getPageSize({
return pageSize;
}
public void setPageSize(int pageSize{
private int totalRecord;
private int currentRecord;
private int pageSize=8;
//获得和设置当前页
public int getCurrentPage({
return currentPage;
}
public void setCurrentPage(int currentRecord,int pageSize{
String major=request.getParameter("major";
conn=connect(;
stat=conn.createStatement(;
stat.execute("insert into student(id,name,age,gender,major values("+id+",'"+name+"',"+age+",'"+gender+"','"+major+"'";
// TODO Auto-generated catch block
使用JS动态调用数据库的值在前台显示
使用JS动态调用数据库的值在前台显示动态调用数据库的值在前台显示是一个常见的需求,在前端开发中使用JavaScript可以轻松完成这个任务。
下面我将详细介绍如何使用JavaScript动态调用数据库的值,并将其显示在前台页面上。
首先,我们需要建立一个数据库用来存储我们想要显示的数据。
常用的数据库系统包括MySQL、MongoDB、SQLite等。
本示例中,我将使用MySQL数据库。
在MySQL数据库中,我们首先需要创建一个表用来存储数据。
打开MySQL的命令行终端,并连接到数据库服务器。
```sqlCREATE DATABASE mydb;USE mydb;CREATE TABLE mytableid INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),age INT,email VARCHAR(255)INSERT INTO mytable (name, age, email) VALUES```以上代码创建了一个名为mydb的数据库,并在其中创建了一个名为mytable的表。
表中有四个字段:id(自增主键)、name、age和email。
还插入了三行数据用于测试。
接下来,我们需要建立一个连接到数据库的JavaScript脚本。
在项目目录下,新建一个名为db.js的文件并添加以下内容:```javascript// 导入mysql模块const mysql = require('mysql');//创建数据库连接const connection = mysql.createConnectionhost: 'localhost',user: 'root',password: 'password',database: 'mydb'});//连接到数据库connection.connect(;//导出数据库连接对象供其他模块使用module.exports = connection;```以上代码使用了Node.js的mysql模块创建了一个数据库连接对象,并通过连接对象导出连接到数据库的实例。
jsp数据库实验报告
jsp数据库实验报告JSP数据库实验报告引言:JSP(JavaServer Pages)是一种用于开发动态Web应用程序的Java技术。
它允许开发人员将Java代码嵌入到HTML页面中,以实现动态内容的生成和展示。
在本次实验中,我们将探索JSP与数据库的结合,以实现数据的存储和检索功能。
一、实验背景随着Web应用程序的发展,对于数据的存储和管理需求也越来越高。
数据库成为了解决这一问题的重要工具。
在本次实验中,我们将使用MySQL数据库,并通过JSP技术实现与数据库的交互。
二、实验环境本次实验所使用的环境如下:1. 操作系统:Windows 102. 开发工具:Eclipse3. 服务器:Apache Tomcat4. 数据库:MySQL三、实验步骤1. 创建数据库在MySQL中创建一个名为"student"的数据库,用于存储学生信息。
2. 创建表在"student"数据库中创建一个名为"student_info"的表,用于存储学生的姓名、年龄和成绩等信息。
3. 编写JSP页面创建一个名为"student.jsp"的JSP页面,用于展示学生信息和实现数据的存储和检索功能。
在页面中,我们可以通过HTML表单收集学生信息,并将其存储到数据库中。
同时,我们还可以通过查询表单实现对学生信息的检索。
4. 编写JavaBean创建一个名为"Student.java"的JavaBean类,用于封装学生信息。
该类包含姓名、年龄和成绩等属性,并提供相应的getter和setter方法。
5. 编写数据库操作类创建一个名为"DBUtil.java"的数据库操作类,用于与MySQL数据库进行交互。
该类包含连接数据库、插入数据和查询数据等方法。
6. 配置web.xml文件在web.xml文件中配置JSP页面的访问路径和数据库连接信息。
js sql方法
js sql方法JS SQL 方法是指使用JavaScript语言实现对数据库的操作的方法。
JavaScript是一种脚本语言,广泛用于网页开发中,而SQL (Structured Query Language)是一种用于管理关系型数据库的语言。
JS SQL 方法结合了JavaScript和SQL的特点,使得开发人员可以通过编写JavaScript代码来对数据库进行增删改查等操作。
使用JS SQL 方法进行数据库操作的第一步是连接数据库。
在JavaScript中,可以使用不同的方法来连接数据库,例如使用原生的XMLHttpRequest对象、使用jQuery的ajax方法或者使用第三方库如axios等。
连接数据库的具体方法会根据开发者的需求和具体环境而有所不同。
连接数据库之后,就可以使用JS SQL 方法来执行各种数据库操作了。
常见的数据库操作包括插入数据、更新数据、删除数据和查询数据等。
下面分别介绍这几种操作方法的具体实现。
插入数据是向数据库中添加新记录的操作。
在JS SQL 方法中,可以使用INSERT INTO语句来实现插入数据的操作。
例如,可以使用以下代码向名为"users"的表中插入一条记录:```javascriptconst sql = "INSERT INTO users (name, age) VALUES ('John', 25)";// 执行插入数据的SQL语句db.execute(sql);```更新数据是修改数据库中已有记录的操作。
在JS SQL 方法中,可以使用UPDATE语句来实现更新数据的操作。
例如,可以使用以下代码将名为"users"的表中名字为"John"的记录的年龄更新为30:```javascriptconst sql = "UPDATE users SET age = 30 WHERE name = 'John'";// 执行更新数据的SQL语句db.execute(sql);```删除数据是从数据库中删除记录的操作。
第7章 JSP中使用数据库
7.2.3 Statement接口 CallableStatement接口主要用于执行存储过程,其主要 方法同Statement。存储过程有两种参数,IN参数和 OUT参数。CallableStatement接口继承了 PerpareedStatement接口的setXXX方法对IN参数赋值。 在CallableStatement接口中使用OUT参数,要做两件事 情,一是对OUT参数进行类型注册,二是获取OUT参数 的值。 CallableStatement提供了多种方法进行类型注册,下面 是常用的两种:
7.2.5 数据库元数据--DatabaseMetaData和 ResultSetMetaData ResultSetMetaData接口用来获取数据库表的结 构。通过它提供的一些常用方法,可以获得 ResultSet对象中的类型和属性信息的对象。常 用方法如下:
int getColumnType(int column):检索指定列的 SQL类型; String getTableName(int column):获取指定列的 名称;
7.2.5 数据库元数据--DatabaseMetaData和 ResultSetMetaData DatabaseMetaData接口可以从数据库管理系统 中获得数据库的信息,例如数据库所有的表名、 存储过程名等信息。这个类提供了许多方法来 取得这些信息,常用的方法如下:
String getDatabaseProductName():获得数据库的 名称。 ResultSet getCooumns(String databasename,String dboname, String tablename,String columnname):获得表字 段信息,以列的方式存储在一个ResultSet对象中。
如何用jsp连接Access数据库
如何用jsp连接Access数据库帐户gjt的163博客前期准备:建立一个Access数据库test.mdb,在里面建立一个表username,其中包含两个字段uid和pwd,均为文本型。
放在项目的web里面(也可以在其他地方)。
方法一:直接用jsp网页链接,代码如下:<%@page contentType="text/html" pageEncoding="UTF-8" language="java"import="java.sql.*"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><%try {String spath = "test.mdb";String dbpath = application.getRealPath(spath);String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=" + dbpath;Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection conn = DriverManager.getConnection(url);Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);String sql = "select * from username";ResultSet rs = stmt.executeQuery(sql);while (rs.next()) {out.print("用户名:");out.print(rs.getString("uid") + " 密码:");out.print(rs.getString("pwd") + "<br>");}out.print("<br>恭喜你!数据库连接成功!");rs.close();stmt.close();conn.close();} catch (Exception e) {out.print("数据可连接错误!,错误信息如下:<br>");out.print(e.getMessage());}%>方法二:建立Access连接的JavaBean,再用jsp引用(推荐这个方法)首先建立一个JavaBean文件DBConnAccess.java,代码如下import java.sql.*; //导入数据库操作的类public class DBConnAccess { //构造方法,初始化private Connection conn; //连接对象private Statement stmt; //语句对象private ResultSet rs; //结果集对象private String accessdriver; //保存Access驱动程序字符串private String accessURL; //保存Access连接字符串public DBConnAccess(){//Access驱动程序accessdriver = "sun.jdbc.odbc.JdbcOdbcDriver";//连接字符串accessURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="; conn = null;}public Connection getConnToAccess(String dbpath){try{accessURL = accessURL + dbpath;Class.forName(accessdriver);conn = DriverManager.getConnection(accessURL);}catch(Exception e){System.out.println("操作数据库出错,请仔细检查");System.err.println(e.getMessage());}return conn;}//关闭数据库连接public void close(){try{//rs.close();//stmt.close();conn.close();}catch(SQLException sqlexception){sqlexception.printStackTrace();}}}再建立一个jsp文件test.jsp用于测试数据访问效果,代码如下:<%@page contentType="text/html" pageEncoding="UTF-8" language="java"import="java.sql.*"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="DBConn" scope="page" class="cn.fsmo.baidu.base.DBConnAccess"/> <%//连接Accesss数据库String dbpath = "test.mdb"; //Connection conn = DBConn.getConnToAccess(application.getRealPath(dbpath));Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);String sql = "select * from username order by uid";ResultSet rs = stmt.executeQuery(sql);while (rs.next()) {out.print("用户名:");out.print(rs.getString("uid") + " 密码:");out.print(rs.getString("pwd") + "<br>");}DBConn.close();%>以上两个方法值得注意的地方是:1、连接字符串的正确写法,“jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=”后面再加上Access数据库文件的地址及文件名;注意到其中的Driver (*.mdb)中的“r”与“(”之间一定要有空格,否则出错,我就是犯了这个错误,花了很多冤枉时间才改正过来。
用JSP实现将图片存入数据库或从数据库中取出
数据库应用程序,特别是基于WEB的数据库应用程序,常会涉及到图片信息的存储和显示。
通常我们使用的方法是将所要显示的图片存在特定的目录下,在数据库中保存相应的图片的名称,在JSP中建立相应的数据源,利用数据库访问技术处理图片信息。
但是,如果我们想动态的显示图片,上述方法就不能满足需要了。
我们必须把图片存入数据库,然后通过编程动态地显示我们需要的图片。
实际操作中,可以利用JSP的编程模式来实现图片的数据库存储和显示。
2、建立后台数据库假定处理的是图片新闻,那么我们可以建立相应的数据库及数据表对象。
我们要存取的数据表结构的SQL脚本如下所示:if exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[picturenews]') andOBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[picturenews]GOCREATE TABLE [dbo].[picturenews] ([id] [int] IDENTITY (1, 1) NOT NULL ,[image] [image] NULL ,[content] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL ,[detail] [varchar] (5000) COLLATE Chinese_PRC_CI_AS NULL) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GO表picturenews中,字段id作为标识,每存储一行数据,自动增加1。
字段image 用于存储图片信息,其数据类型为“image”。
3、向数据库存储二进制图片启动Dreamweaver MX后,新建一个JSP文件。
其代码如下所示。
<%@ page contentType="text/html;charset=gb2312"%><HTML><HEAD><TITLE>存储图片</TITLE></HEAD><body><!-- 下面的窗体将以Post方法,将数据传递给testimage.jsp文件 --><FORM METHOD=POST ACTION="testimage.jsp">新闻标题:<INPUT TYPE="text" NAME="content"><BR>新闻图片:<INPUT TYPE="file" NAME="image"><BR>新闻内容:<TEXTAREA name="txtmail" rows="15" cols="90"style="BORDER-BOTTOM: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; FONT-SIZE: 9pt;HEIGHT: 200px; WIDTH: 100%" wrap="physical" ></TEXTAREA><br><INPUT TYPE="submit"></form></HTML>将此文件保存为InputImage.jsp文件,其中testimage.jsp文件是用来将图片数据存入数据库的,具体代码如下所示:<%@ page contentType="text/html;charset=gb2312"%><%@ page import="java.sql.*" %><%@ page import="java.util.*"%><%@ page import="java.text.*"%><%@ page import="java.io.*"%><html><body><%Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载驱动程序类Connectioncon=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");//建立数据库联机,其中denglu为数据库名,sa为连接数据库的帐号及密码。
JSP连接数据库代码
private String dbdriver = "com.mysql.jdbc.Driver";
//连接数据库URL
private String URL = "jdbc:mysql://localhost:3306/a";
System.out.println("连接数据库成功!");
System.out.println("url:" + URL + ",username:" + username
+ ",password:" + password);
} catch (Exception e) {
System.err.println("连接数据库失败!");
//连接数据库用户名
private String username = "root";
//连接数据库密码
private String password = "root";
//私有的构造方法
private ConnectionDB() {
//加载数据库驱动
try {
Class.forName(dbdriver);
System.out.println("加载数据库驱动成功!" + dbdriver);
} catch (Exception e) {
System.err.println("加载数据驱动失败!具体信息:" + dbdriver);
}
//连接数据库
try {
使用JSP对数据库进行增删改查
使用JSP对数据库进行增删改查注意红体字!首先,打开sql server 2005,输入用户名(我用的登录名是panpan)密码(我设置的是123)。
先建个表student,Create table stu(id number(30) ,name varchar(50) ,age number(30),sex varchar(30),major varchar(50) );打开MyEclipse,新建一个新项目,让后将index.jsp删除,然后在webRoot文件中新建以下几个jsp文件。
index.jsp<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><base href="<%=basePath%>"><title>输入学生信息界面</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><script type="text/javascript"">function validate(){var id=document.forms[0].id.value;var name=document.forms[0].name.value;var age=document.forms[0].age.value;var major=document.forms[0].major.value;if(id<=0){alert("学号不能为空,请输入学号!");return false;}else if(name.length<=0){alert("姓名不能为空,请输入姓名!");return false;}else if(age<=0){alert("请输入合法年龄!");return false;}else if(major.length<=0){alert("专业不能为空,请输入所学专业!");return false;}else{return true;}}</script></head><body><br><center><h2>学生信息输入</h2><hr><form action="insert.jsp" method="post" id="form" onSubmit= "validate()" ><h4> 学号:<input type="text" name="id" class="{required:true}"></input><br></h4> <h4> 姓名:<input type="text" name="name"></input><br></h4><h4> 年龄:<input type="text" name="age"></input><br></h4><h4> 性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br></h4><h4> 专业:<input type="text" name="major"></input><br></h4><input type="submit" value="提交"/></form><a href=layout.jsp>查看已输入信息</a></center></body></html>insert.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.sql.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><base href="<%=basePath%>"><title>插入学生信息</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><%request.setCharacterEncoding("gb2312");String id=request.getParameter("id");String name=request.getParameter("name");System.out.println(name);String age=request.getParameter("age");String sex=request.getParameter("sex");String major=request.getParameter("major");Connection conn=null;Statement stat=null;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String url="jdbc:sqlserver://localhost:1433;DatabaseName=Test";String user="panpan"; (我的数据库登录名是我自己新建的,你可以根据你自己的String password="123"; 登录名和密码进行修改)conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();int rs=stat.executeUpdate("insert into stu(id,name,age,sex,major)values("+id+",'"+name+"',"+age+",'"+sex+"','"+major+"')");%><center><br><a href=index.jsp>返回信息输入页面</a> <a href=layout.jsp>进入信息查询页面</a></center><%if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>layout.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.sql.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><base href="<%=basePath%>"><title>学生信息</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><%response.setCharacterEncoding("gb2312");request.setCharacterEncoding("gb2312");String id=request.getParameter("id");String name=request.getParameter("name");String age=request.getParameter("age");String sex=request.getParameter("sex");String major=request.getParameter("major");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String url="jdbc:sqlserver://localhost:1433;DatabaseName=Test";String user="panpan"; (我的数据库登录名是我自己新建的,你可以根据你自己的String password="123"; 登录名和密码进行修改)conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();rs=stat.executeQuery("select * from stu");%><br><h2>学生信息</h2> <hr><br><h3>全部学生信息如下</h3><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%while(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("sex")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");%><td><a href="delete.jsp?id=<%=rs.getInt("id") %>">删除</a></td><td><a href="update.jsp?id=<%=rs.getInt("id") %>">修改</a></td><%out.print("</tr>");}%></table><br><h3><a href=index.jsp>返回信息输入页面</a></h3><br><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>update.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.sql.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><base href="<%=basePath%>"><title>学生信息</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><%response.setCharacterEncoding("gb2312");request.setCharacterEncoding("gb2312");String id=request.getParameter("id");Connection conn=null;Statement stat=null;ResultSet rs=null;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String url="jdbc:sqlserver://localhost:1433;DatabaseName=Test";String user="panpan"; (我的数据库登录名是我自己新建的,你可以根据你自己的Stringpassword="123"; 登录名和密码进行修改)conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();rs=stat.executeQuery("select * from stu where id="+id+"");%><br><h2>学生信息</h2> <hr><br><h3>要修改的学生信息如下</h3><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%while(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("sex")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");out.print("</tr>");%></table><br><br><h3>将学生信息更改为:</h3><form action="update2.jsp" method="post" ><h4> 学号:<input type="text" name="id"value="<%=rs.getInt("id") %>" title="学号不能改变"></input><br></h4><h4> 姓名:<input type="text" name="name"title="姓名不能为空"></input><br></h4><h4> 年龄:<input type="text" name="age"title="年龄不能为空"></input><br></h4><h4> 性别:<input type="radio" name="sex" value="男">男<input type="radio" name="sex" value="女">女<br></h4><h4> 专业:<input type="text" name="major"title="专业不能为空"></input><br></h4><input type="submit" value="修改"/></form><br><h3><a href=index.jsp>返回信息输入页面</a></h3><h3><a href=layout.jsp>返回信息查询页面</a></h3><%}%><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null){conn.close();}%></body></html>update2.jsp<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%><%@ page import="java.sql.*"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head><base href="<%=basePath%>"><title>修改页面</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><%request.setCharacterEncoding("gb2312");String id1=request.getParameter("id");String name1=request.getParameter("name");String age1=request.getParameter("age");String sex1=request.getParameter("sex");String major1=request.getParameter("major");Connection conn=null;Statement stat=null;Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");String url="jdbc:sqlserver://localhost:1433;DatabaseName=Test";String user="panpan"; (我的数据库登录名是我自己新建的,你可以根据你自己的String password="123"; 登录名和密码进行修改)conn=DriverManager.getConnection(url,user,password);stat=conn.createStatement();stat.execute("update stu set id="+id1+",name='"+name1+"',age="+age1+",sex='"+sex1+"',major='"+major1+"'whereid="+id1+"");ResultSet rs=stat.executeQuery("select * from stu where id="+id1+"");%><br><h3>修改成功!</h3><br><h3>修改后的信息为:</h3><hr><br><br><table width="450" border="100" cellSpacing=1 style="font-size:15pt;border:dashed 1pt"> <tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>专业</td></tr><%while(rs.next()){out.print("<tr>");out.print("<td>"+rs.getInt("id")+"</td>");out.print("<td>"+rs.getString("name")+"</td>");out.print("<td>"+rs.getInt("age")+"</td>");out.print("<td>"+rs.getString("sex")+"</td>");out.print("<td>"+rs.getString("major")+"</td>");out.print("</tr>");}%></table><br><br><h3><a href=index.jsp>返回信息输入页面</a></h3><h3><a href=layout.jsp>返回信息查询页面</a></h3><%if(rs!=null){rs.close();}if(stat!=null){stat.close();}if(conn!=null) {conn.close();}%></body></html>。
chap6_在JSP中使用数据库剖析
15
ResultSet对象
ResultSet对象以统一形式的列组织的 数据行组成 Next()方法可以移动游标到下一行 getXxx()方法可以获得字段值,参数为 位置索引或列名 总是可以使用getString()返回字段值的 串表示 不可以颠倒字段的顺序
16
JDBC API中重要的接口和类
与一个数据库建立连接。 向已连接的数据库发送SQL语句。 处理SQL语句返回的结果。
5
3.数据库连接的常用方式
JDBC-ODBC桥接器 纯Java数据库驱动程序
6
JDBC-ODBC桥接器
应用程序建立JDBC和ODBC之间的连接, 即所谓的建立JDBC-ODBC桥接器,而 和数据库的连接由ODBC完成
19
其它查询
条件查询 例5 排序查询 例6 模糊查询 例7
20
5. 更新、添加与删除操作
Statement对象调用方法: public int executeUpdate(String sqlStatement); 通过参数sqlStatement指定的方式实 现对数据库表中记录的更新、添加和删 除操作.
使用 应用 程序
加载
11
连接数据库的步骤
加载纯Java驱动程序 和指定的数据库建立连接
12
加载纯Java驱动程序
安装驱动程序后,将驱动程序文件 sqljdbc .jar复制到JDK的\jre\lib\ext文件 夹中,或者Tomcat服务器安装目录的 common\lib文件夹中 加载驱动程序类,forName方法以完整的 Java类名字符串为参数,该方法将自动创建一 个驱动程序类的实例: Class.forName(“com.microsoft.sqlserver .jdbc.SQLServerDriver”);
用jsp实现 数据修改和删除
insert.java 数据库插入操作
Error.jsp
Left.html
添加 查询
Stu.jsp
Add.jsp
Table.inc Pages.htm Form.inc
Combinequery.jsp
Selpage.jsp
Page.js
修改…
update.jsp
Update_item.jsp
HTML页面URL传参
URL传参数:
URL?参数名=参数值
<td><a href='del.jsp?cid="+cid+"&action=del' title='删除'>删除</a></td>
&表示加上一个参数,这里两个参数,一个 cid,一个action;
接收传递过来的页面参数
删除
Del.jsp
如果disabled,既不能修改,也不能传参
本次实训的文件结构:
Topgin.jsp身份验证
Database.java 连接数据库实现用户身份验证
ISOtoGb2312.java 实现表半单汉字的转换
Stu.html
Teacher.jsp
select.java 数据库操作
String action=ISOtoGb2312.convert(request.getParameter("action")); String cid=ISOtoGb2312.convert(request.getParameter("cid"));
实现记录的删除:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 数据库运行环பைடு நூலகம்介绍
本书采用免费的数据库系统MySQL软件; 为了用Java访问数据库,本教程采用如下数据库环境:
1)MySQL数据库管理系统作为数据库服务器; 2)采用MySQL-Front或Navicat for MySQL作为MySql数据库客户 端软件; 3)MySQL驱动程序为mysql-connector-java-5.1.5-bin.jar(或其 他版本)。
案例3-1
4. 代码(researchdb.java)解释
1)在Java程序中加载驱动程序 Class.forName(“com.mysql.jdbc.Driver”); 2)创建数据连接对象 Connection conn= DriverManager.getConnection(“连接数据 库的URL", "用户名", "密码”) ; 3)创建Statement对象 Statement stat =conn.createStatement(); 4) 调用Statement对象的相关方法执行相对应的 SQL 语句 ResultSet rs = stat.executeQuery("select * from user"); 然后才可以对rs中被访问出的数据对象进行操作。
3.1 Java程序访问数据库
应用程序中常常有对数据库的操作,即需要将处理的业务 数据存储在数据库中,然后通过程序对其进行操作处理。 在Java程序设计的课程中一般会介绍采用JDBC方式连接 数据库,并通过该连接实现对数据库的操作。 类似Java语言,JSP程序中也能对数据库进行操作与数据 显示。
本章目标
熟练掌握对MySQL数据库的建库、建表与对数据的操作 了解用Java语言对MySQL数据库的访问的编码实现 熟练掌握在JSP网页中编码对MySQL中数据的访问操作 熟练掌握通用的创建数据连接类的创建及在JSP中的应用 熟练掌握用JSP开发数据库应用程序(包括对数据库的增、 删、改、查询操作)的方法与过程
如果采用用Java类进行封装,在JSP需要的时候进行调用, 则可以改进上述存在的这些问题。
案例3-3
【案例3-3】编写Java类封装数据库处理代码,以供JSP等 程序复用。 为了改善对数据库访问的JSP代码,可将程序分为四个部 分: 1)封装数据库连接的共享Java类(共享工具类); 2)封装数据的Java类(实体类); 3)封装业务处理的Java类(模型类); 4)JSP主程序(主控程序)。
然后部署该项目,启动服务器后运行,则在JSP中显示了 数据库中的数据。
3.2 封装数据库处理类的创建
从案例3-2中可以看出,JSP文件实现了数据库的操作。 但是上述JSP对数据库的操作有如下一些缺陷:
1)代码累赘,大量的Java代码段在JSP中,显得JSP文件复杂且不 利于修改; 2)代码重用性差,因为每个JSP都需要进行相同的重复操作,不利 于代码复用; 3)影响性能,由于通过JSP进行数据库连接操作,需要从客户端到 服务器端交互,影响软件的性能; 4)安全性差,用户的验证代码在客户端的JSP程序中,具有不安全 性; 5)连接数据库的代码大量冗余,不利于系统维护。
案例3-3
3.编写封装业务处理的类
public class Model { private Statement stat; private ResultSet rs; Dbconn s=new Dbconn(); //定义返回查询处理后获取的对象集合并返回 public List<User> userSelect(){ List users=new ArrayList(); try { Connection conn=s.getConnection(); String sql="select * from user"; stat=conn.createStatement(); rs = stat.executeQuery(sql); User user; while(rs.next()){ user=new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setPassword(rs.getString("password")); users.add(user); } s.closeAll(conn,stat,rs); } catch (SQLException e) { e.printStackTrace(); } return users; } }
【案例3-2】在JSP中编写Java代码显示数据库中的用户信 息。
将案例3-1中的Java代码以<% %>的形式放到JSP文件中,则可 以在JSP中访问并显示数据库中的数据。
案例3-2
在JSP中显示数据库的数据,其实只要在案例3-1的基础 上做简单的修改:
1)创建JSP文件,如:researchdb.jsp。 2)将案例3-1中的java代码中try- catch中的代码,以<% %>的形 势放到JSP的<body> </body>标记中。 3)将,java.sql.*加到import语句中,即该语句改为: import="java.util.*,java.sql.*"。 4)将System.out.print语句改为out.print语句。
案例3-3
4.JSP主程序的编写
<%@ page language="java" import="java.util.*,dbutil.*,entity.*,model.*" pageEncoding="utf-8"%> …… <body> <% Model model=new Model(); //调用模型 List<User> list=erSelect(); //执行模型中查询方法,并返回结果 %> 数据库中所有用户 <table border="1"> <%for(int i=0;i<list.size();i++){%>//循环显示获得的结果(用户信息) <tr> //从集合中取出对象的属性进行显示 <td><%=list.get(i).getId()%></td> <td><%=list.get(i).getName() %></td> <td><%=list.get(i).getPassword() %></td> </tr> <% } %> </table> </body>
案例3-3
1.封装获取数据库类的编写
package dbutil; …… public class Dbconn { public Connection getConnection() throws SQLException{//获取连接方法 private Connection conn; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatab ase","root",""); } catch (ClassNotFoundException e) { System.out.println("找不到服务!!"); e.printStackTrace(); } return conn; } } }
id 1 3 name 李国华 张淑芳 password admin zsf
应运行的结果显示:
案例3-1实现
2.创建项目并加载JDBC驱动程序
首先创建一个Web项目如:myweb,在其中创建一个java类如命 名为:researchdb.java 在项目中加载JDBC驱动程序,有两种方法:
1)直接将驱动程序mysql-connector-java-5.1.5-bin.jar复制到项目 myweb的WebRoot\Web-INF\lib文件夹中。 2)在MyEclipse中鼠标右击myweb项目名,依次选择Bulid Path>Add External Archives…,在出现的对话框中寻找到自己存放的 驱动程序mysql-connector-java-5.1.5-bin.jar,并打开。
2. 编写Java程序访问MySQL数据库
【案例3-1】编写Java程序访问并显示数据库中的用户的信息。 案例实现准备:
安装好了MySQL数据库 安装好MySQL客户端程序 下载或准备好了MySQL的JDBC驱动程序 创建好数据库及表
案例3-1实现
1.建立被访问的数据环境
用数据库客户端建立MySQL数据库:mydatabase,编码为utf-8(支持中 文);再建立一个学生表:user,并向其中添加二个用户信息。
基于MVC的JSP软件开发
第3章
在JSP中实现数据库操作
本章任务
通过案例引导的方式,掌握JSP中操作数据库
案例3-1:编写Java程序访问并显示数据库中的用户的信息 案例3-2:在JSP中编写Java代码显示数据库中的用户信息 案例3-3:编写Java类封装数据库处理代码,以供JSP等程序复用 案例3-4:查询3号操作员的信息 案例3-5:用户输入一个用户id,查询该id的用户信息并显示出来 案例3-6:综合运用前面学习的实现技术,编写程序实现对用户信息 进行增加、删除、修改、信息显示的操作