网上订餐管理系统 第四章 系统实现主要技术
4.8 数据库编程
4.8.1数据库编程基础及语法
Java 数据库连接 (JDBC) 是一个标准 SQL(Structured Query Language,结构化查询语言)数据库访问接口, 可以为多种关系数据库提供统一访问。JDBC(Java DataBase Connection,Java 数据库连接) 也提供一种基准,据此可以构建更高级的工具和接口。 目前的 JDK(Java Development Kit,Java 开发工具包)软件捆绑包括 JDBC 和 JDBC-ODBC(Open DataBase Connection,开放式数据库连接)桥。你可以从http://java。sun。com/products/JDK/CurrentRelease 找到最新版。
1) 安装驱动程序。
装载驱动程序只需要非常简单的一行代码。例如,你想要使用 JDBC-ODBC 桥驱动程序, 可以用下列代码装载它: Class.forName(\
如果是JDBC Driver装载: Class.forName(\各种数据库驱动见附录。
2) 建立连接
第二步就是用适当的驱动程序类与 DBMS 建立一个连接。下列代码是一般的做法:
3) Connection con = DriverManager.getConnection(url, \, \myPassword \
这个步骤也非常简单,最难的是怎么提供 url。如果你正在使用 JDBC-ODBC 桥, JDBC URL 将以 jdbc:odbc 开始:余下 URL 通常是你的数据源名字或数据库系统。因此,假设你正在使用 ODBC 存取一个叫 \的 ODBC 数据源,你的 JDBC URL 是 jdbc:odbc:webmail 。把 \及空格替换为你登陆 DBMS 的用户名及口令。如果你登陆数据库系统的用户名为 \口令为空,只需下面的 2 行代码就可以建立一个连接: String url = \
Connection con = DriverManager.getConnection(url,\,\
如果你使用的是第三方开发了的 JDBC驱动程序,文档将告诉你该使用什么 subprotocol, 就是在 JDBC URL 中放在 jdbc 后面的部分。例如, 如果驱动程序
27
网上订餐管理系统 第四章 系统实现主要技术
开发者注册了 acme 作为 subprotocol, JDBC URL 的第一和第二部分将是 jdbc:acme。驱动程序文档也会告诉你余下 JDBC URL 的格式。JDBC URL 最后一部分提供了定位数据库的信息。如果配置了连接池则要使用下面几行代码就可以建立一个连接: Context ctx; DataSource ds;
ctx = new InitialContext();
ds = (DataSource)ctx.lookup(\
connection 接口是JSP数据库编程使用多的接口之一,在connection接口中经常使用到一个方法close();要注意在连接用完后必须关闭,否则连接会继续保持,直到超时。
4) 创建 JDBC Statements 对象
Statement 对象用于把 SQL 语句发送到数据库 。你只须简单地创建一个 Statement 对象并且然后执行它,使用适当的方法执行你发送的 SQL 语句。对 SELECT 语句来说,可以使用 executeQuery。要创建或修改表的语句,使用的方法是 executeUpdate。
需要一个活跃的连接的来创建 Statement 对象的实例。在下面的例子中,使用的 Connection 对象 con 创建 Statement 对象 stmt:
Statement stmt = con.createStatement(int resultSetType,int resultSetConcurrency); ResultSet rs=Stmt.executeUpdate(SQL);SQL为数据库查询语句
Con.createStatement()方法包含两参数:resultSetType和resultSetConcurrency
1. resultSetType参数:
用来设定ResultSet对象中的光标是否能够上下自由移动,它的值只能有3种,TYPE_FORWARD_ONLY
、
TYPE_SCROLL_SENSITIVE
或
TYPE_SCROLL_INSENSITEVE。若设为第一种,表示ResultSet对象中的光标能够随心所欲的上下移动,不过他们两者最大的差别在于:当ResultSet对象中的值有变时,TYPE_SCROLL_SENSITIVETYPE_SCROLL_INSENSITIVE不能。
2. resultSetConcurrency参数:
主要设定ResultSet对象是只读(read-only)还是可以改变的(updatable),他的值有两种,CONCUR_READ_ONLY
和
CONCUR_UPDATABLE。若设为
CONCUR_READ_ONLY,则ResultSet对象和JDBC 1.0的功能一样;若为CONCUR_UPDATABLE,那么表示ResultSet对象可以直接执行数据库的新增、修改和移除功能。
在statement执行SQL语句是,有时会返回ResultSet结果集。该结果集往往
28
能够取得改变后的值,而
网上订餐管理系统 第四章 系统实现主要技术
包含的是查询的记录集。通过ResultSet.next()方法把当前的指针向下移动一位,随着每次调用next导致指针向下移动,按照从上到下的次序获取ResultSe行。
Java.sql.ResultSet提供了检索不同的类型字段,其常用的的方法如下: getString():获得数据库里的varchar、char数据类型。 getFloat():获得数据库里的Float数据类型。
getDouble():获得数据库里的Double Precision数据类型。 getBoolean():获得数据库里Boolean数据类型。
getObject():该方法用于在SQL中无对应类型,可以获得系列化对象。 getClob():获得数据库里的Clob(字符串大型对象)数据类型的对象。 getBolb():获得数据库里的Blob(二进制大型对象)数据类型的对象。 5) 数据库SQL基本操作[14]语句:
? 集合查询Select 语句
SELECT <目标列表达式>,<目标列表达式>……FROM <表名> [WHERE<条件表达式>] ? 数据更新插入 INSERT
INTO <表名>[(<属性列1>][,<属性列2>…])] VALUES(<常量>[,<常量>]…); ? 删除数据 DELETE FROM 〈表名〉 [WHERE〈条件〉];
4.8.2 本系统中的连接方式
在本TOMCAT中配置了连接池,连接程序用JavaBean方法封装,放在WEB-INF\\ classse目录下。 import java.sql.*; import javax.sql.*; import javax.naming.*; public class Db { public Connection con; public Statement stmt; public ResultSet rs;
public PreparedStatement pstmt; public static int error=0;
public static synchronized Connection getCon()throws Exception{
29
网上订餐管理系统 第四章 系统实现主要技术
Context ctx; DataSource ds; try{
ctx = new InitialContext();
ds = (DataSource)ctx.lookup(\System.Err.println();
System.err.println(\数据连接+\return ds.getConnection(); }catch(SQLException e){ System.out.print(e); throw e; }
catch(NamingException e){ System.out.print(e); throw e; } }
public Statement getStmtread(){ try{
con=getCon();
stmt=con.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE java.sql.ResultSet.CONCUR_READ_ONLY); }catch(Exception e){
System.out.println(\System.out.println(e.getMessage()); }
return stmt;
}
30
网上订餐管理系统 第六章 问题解决
第五章 程序主要功能截图说明
以下通过截图方式演示程序主要功能:
普通用户登陆后主页
登陆框
31
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库网上订餐JSP系统毕业论文(7)在线全文阅读。
相关推荐: