JSP与数据库应用(II)
来源:互联网 发布:淘宝品牌授权是正品吗 编辑:程序博客网 时间:2024/06/05 10:53
JSP网络数据库应用架构
存取Web数据库的JSP数据库网络架构如图一所示。基本上来说,这个存取架构是一个B/S架构。在服务器端由Web服务器和数据库服务器组成,而浏览器只需要一个支持Java语言的浏览器即可。
图一 JSP数据库网络架构
服务器端的Web服务器负责执行JSP程序,在JSP程序中通过JDBC(Java DataBase Connectivity)接口来和数据库服务器相连,并取得数据库中的数据,也可以通过JDBC向数据库发送SQL命令,对数据库进行操作(靠JDBC提供的类与方法)。Web服务器还有一个工作,将用户操作数据库的结果,以HTML的形式通过HTTP回传给前端的浏览器。
JDBC驱动:
驱动程序用于连接应用程序和数据库。
主要数据库的JDBC驱动类名:
SQL Server2000的驱动类是:com.microsoft.jdbc.sqlserver.SQLServerDriver。
Oracle的驱动类是:oracle.jdbc.driver.OracleDriver。
MySQL的驱动类是:com.mysql.jdbc.Driver。
MySQL数据库JDBC配置:
对于MySQL的驱动程序,根据所安装的MySQL数据库的版本,从网上下载相应的驱动程序包(http://dev.mysql.com )。将驱动程序所在的jar包(如:mysql-connector-java-5.1.11-bin.jar)复制到%Tomcat%\common\lib(Tomcat5.0)或%Tomcat%\lib(Tomcat6.0)目录下。
JDBC简介
JDBC(Java DataBase Connectivity)是Java语言用来连接和操作关系数据库的应用程序接口(API),由类(Class)和接口(Interface)所组成。
JDBC中常用的类和接口:
DriverManager类:用于处理驱动器的加载、数据库连接的建立。
Connection类:用于处理特定数据库的连接。
Statement接口:处理数据库连接中的SQL语句。
ResultSet接口:用于处理数据库操作的结果集。
PreparedStatement接口:用于处理带有参数的SQL语句。
CallableStatement接口:用于处理数据库存储过程。
注意:调用JDBC的类和接口,需要包含java.sql.*包。(<%@page import="java.sql.*"%>)
JDBC访问数据库主要步骤:
JDBC对数据库的操作通过5个JDBC的类/接口来实现:数据库的JDBC Driver类、DriverManager类、Connection接口、Statement接口和ResultSet接口。
1、加载驱动程序:
调用Class.for.Name()方法。
格式:
Class.forName("MyDriver");
例如:Class.forName("com.mysql.jdbc.Driver");
2、创建与数据库的连接:
调用DriverManager.getConnection()方法取得一个Connection对象,以此来访问数据库表中的记录。
A、数据库的位置:Oracle port=1521; MS SQL Server port=1433; MySQL port=3306;
B、数据库的信息:数据库的名字;
C、用户信息:用户名和口令。
格式:
Connection con=DriverManager.getConnection(url, user, password);
例如:Connection con=
DriverManager.getConnection("jdbc:mysql://localhost:3306/mytest", "root", "root");
Connection con=
DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=dbname", "sa", "");
Connection con=
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "user", "pwd");
3、建立语句:
需要一种方式向数据库服务器发送SQL语句,通过创建Statement对象来完成。
Connection.createStatement()方法创建一个Statement对象。如果需要传递给数据库服务器的SQL是带参数的,则用PreparedStatement对象,该对象是由Connection.prepareStatement()方法创建的。
格式:
Statement stmt=conn.createStatement();
PreparedStatement pstmt=conn.prepareStatement("sql语句");
例如:
String sql="select * from myuser where user_id=? and user_pass=?";
PreparedStatement stmt=conn.prepareStatement(sql);
pstmt.setString(1, user_id);
pstmt.setString(2, user_pass);
说明:PreparedStatement对象所代表的SQL语句中的参数用(?)来表示,setXXX方法来设置这些参数,第一个参数表示要设置的参数的索引(从1开始),第二个参数表示要设置的参数的值。
4、执行SQL语句:
使用语句对象来执行SQL语句。(通过Statement.executeQuery()方法或Statement.executeUpdate()方法来查询或更新数据库记录。)
executeQuery():主要用于执行有结果集返回的SQL语句。(例如如果要查询数据,需要处理查询结果。创建ResultSet的对象来接收这个结果集。通过该对象可以进行数据库记录的浏览、新增、删除和修改。)
executeUpdate():主要用于执行没有结果集返回的SQL语句。(例如对系统发送INSERT、UPDATE、DELETE不需返回结果的SQL语句,返回类型为int,表示数据库中受影响的记录个数)
例如:String sql="select * from students";
ResultSet rs=stmt.executeQuery(sql);
例如:String sql="delete from student where score<=60";
int ret=stmt.executeUpdate(sql);
5、处理结果集:
当发送的SQL语句SELECT语句时,返回的是ResultSer对象表示的结果集,包含了返回数据的行和列。可以通过getXXX方法获取当前行中各数据列中的数据(getString()、getDate()、getInt()等,根据数据列的数据库类型,采用不同的获取方法),并且可以通过使用next()方法每次向前移动一行。
6、关闭数据库连接:
完成数据库操作后,一次调用各个对象的Close()方法,关闭数据库连接,释放JDBC资源。
例如:rs.close(); //关闭结果集
stmt.close(); //关闭语句对象
con.close(); //关闭连接
注意:关闭对象的顺序和创建对象的顺序刚好相反。
7、异常处理:
try{
... //要执行的可能出错的代码
}catch(Exception e){
... //出错后的处理代码
}finally{
... //不管是否出错都要执行的代码
}
- JSP与数据库应用(II)
- JSP与数据库应用(I)
- JSP与JAVABEAN应用
- jsp基础与应用
- 初学JSP与JDBC(mysql数据库)
- jsp与数据库
- JSP与数据库
- JSP与数据库交流
- jsp与数据库
- JSP与数据库链接
- uCos-II原理与ARM应用程序设计(一)
- uCos-II原理与ARM应用程序设计(二)
- 嵌入式实时操作系统ucos/ii 原理与应用(一)
- 嵌入式实时操作系统ucos/ii 原理与应用(二)
- 嵌入式实时操作系统ucos/ii 原理与应用(三)
- 嵌入式实时操作系统ucos/ii 原理与应用(四)
- 嵌入式实时操作系统ucos/ii 原理与应用(五)
- 嵌入式实时操作系统ucos/ii 原理与应用(六)
- AtomicInteger
- 换行问题(out.println与<br>)
- JSP开发中文乱码问题
- JSP动态网页程序设计(II)
- JSP与数据库应用(I)
- JSP与数据库应用(II)
- 如何使用DXUT框架
- 通用SQL数据库查询语句范例(多表查询)【转】
- char *、CString和string之间的类型转换与比较
- SVN分支与合并【转】
- maven2常用命令
- maven2安装配置
- maven2术语及POM简介
- SVN的branch与tag