2022年如何用jsp连接Access数据库 .pdf

上传人:C****o 文档编号:34255249 上传时间:2022-08-15 格式:PDF 页数:16 大小:206.96KB
返回 下载 相关 举报
2022年如何用jsp连接Access数据库 .pdf_第1页
第1页 / 共16页
2022年如何用jsp连接Access数据库 .pdf_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《2022年如何用jsp连接Access数据库 .pdf》由会员分享,可在线阅读,更多相关《2022年如何用jsp连接Access数据库 .pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、如何用 jsp连接 Access数据库复制内容到剪贴板代码: jsp1 % try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException e) out.print(数据库驱动程序装入错误); try String url=jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=+request.getRealPath(/)+test.mdb; / 特别注意上面的Driver和(*.mdb)之间是有空格的/* 这个 test.mdb文件是存放在Web M

2、odule目录下的,当然可以自行改变路径*/ Connection conn=DriverManager.getConnection(url); Statement stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery(SELECT * FROM log);/log为表名,和SQL 一样while(rs.next() out.print(rs.getInt(ID)+ ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第

3、 1 页,共 16 页 - - - - - - - - - out.print(rs.getString(username)+ ); out.print(rs.getString(password)+ );/log表中三个字段,主键是ID ,自增的。username和 password是文本类型。 out.println(); rs.close(); stmt.close(); conn.close(); catch(Exception ex) out.print(ex); % 下面是网上搜的一些JSP 或 JavaBean连接 ACCESS的代码,摘自【http:/ 连接 Access数据库

4、的代码。要正确的使用这段代码,你需要首先在Access数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。欢迎各位提出改进的意见。以下用两种方式来实现jsp 连接 access数据库。第一种 JSP 形式。复制内容到剪贴板代码: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - - - % /* * JDBC_ODBC连接 Access数据库,不需要设置数据源* Date:

5、2005.8 * Email: * Author: DreamTime 梦想年华 * 有任何欢迎提出指正*/ / * 数据库连接代码开始 * / 异常处理语句Try / 以下几项请自行修改String spath = data/test.mdb;/Access 数据库路径String dbpath = application.getRealPath(spath);/转化成物理路径String dbname = ; /Acvess 数据库用户名,没有则为空String user = ; /Access 数据库密码,没有则为空/ 数据库连接字符串String url =jdbc:odbc:Driv

6、er=Microsoft Access Driver (*.mdb);DBQ=+dbpath; / 加载驱动程序Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 16 页 - - - - - - - - - / 建立连接Connection conn= DriverManager.getConnection(url); /创建语句对象Statement stmt=conn.create

7、Statement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); / * 数据库连接代码结束 * /* 测试数据代码开始 * / 请在数据库中建立username表,表中建立两个字段uid 和 pwd, 类型为文本String sql = select * from username; ResultSet rs = stmt.executeQuery(sql); while(rs.next() out.print(用户名 : + rs.getString(uid); out.print( 密码 : + rs.getSt

8、ring(pwd) + ); out.print(恭喜你!数据库连接成功!); rs.close(); /关闭记录集对象stmt.close(); /关闭语句对象conn.close(); /关闭连接对象catch(Exception e) out.print(数据库连接错误!,错误信息如下:); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 16 页 - - - - - - - - - out.print(e.getMessage(); /* 测试数据代码结束 * %

9、 第二种, JavaBean的形式。复制内容到剪贴板代码: /* * 作用: java连接 Access数据库代码* 作者:梦想年华* Email: * Author:梦想年华* CopyRight(c)2005-2006 by DreamTime * */ /color package conn; /导入包import java.sql.*; /导入数据库操作的类public class DBConnAccess /构造方法,初始化 private Connection conn; /连接对象private Statement stmt; /语句对象private ResultSet rs;

10、 /结果集对象private String accessdriver; /保存 Access驱动程序字符串private String accessURL; /保存 Access连接字符串名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - public DBConnAccess() /Access驱动程序accessdriver = sun.jdbc.odbc.JdbcOdbcDriver; / 连接字符串accessURL =

11、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(操作数据

12、库出错,请仔细检查); System.err.println(e.getMessage(); return conn; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 16 页 - - - - - - - - - / 关闭数据库连接 public void close() try /rs.close(); /stmt.close(); conn.close(); catch(SQLException sqlexception) sqlexception.printStac

13、kTrace(); 调用方法如下:复制内容到剪贴板代码: % / 连接 Access 数据库 String dbpath=data/test.mdb; /数据库的路径,请自行修改Connection conn=DBConn.getConnToAccess(application.getRealPath(dbpath); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 16 页 - - - - - - - - - Statement stmt=conn.createStat

14、ement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); String sql=select * from username order by id; /String sql1=insert into username (uid,pwd) values(wsp,wsp); /stmt.executeUpdate(sql1); ResultSet rs=stmt.executeQuery(sql); while(rs.next() out.print(用户名 :); out.print(rs.getString(ui

15、d)+ 密码 :); out.println(rs.getString(pwd)+); DBConn.close(); % 以上两个方法值得注意的地方是:1、 连接字符串的正确写法,“jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ= ”后面再加上 Access数据库文件的地址及文件名;注意到其中的Driver (*.mdb) 中的“ r”与“ (”之间一定要有空格,否则出错,我就是犯了这个错误,花了很多冤枉时间才改正过来。2、 经过测试发现Access数据库文件的地址书写方式,E:/test.mdb 、E:/test.mdb 、E:te

16、st.mdb 都能测试通过,但是E:test.mdb 就失败了!JSP 连接 Access 数据库第一步,建立数据库及表格用 Access 建立一数据库,名为numb1 ,新建一表格(命名为 lyb)设置 5个字段,字段名分别为:id、name 、mail 、web 、 qq。建完表格后,向其中插入几条数据库,如图所示第二步,建立数据源名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 16 页 - - - - - - - - - 打开 “ 控制面板 ”“管理工具 ”“数据源

17、 (ODBC) ” ,选择 “ 系统 DNS” 选项卡,单击添加,选择“ Dirver do Microsoft Access(*.mdb )” 单击完成,数据源命名为:jspdata ,单击选择按钮,选择新建数据库位置后点确定就OK 了。如图所示第三步,编写代码 JSP连接 Access 数据库 JSP连接 Access 数据库 NUMB1数据表中记录如下 编号 姓名 E-mail 网站 QQ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 16 页 - - - -

18、- - - - - 如果您能看到表格中的数据,说明连接数据库成功! 说明: Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 通用格式为: Statement stmt=con.createStatement(int type,int concurrency);我们在访问数据库的时候,在读取返回结果的时候,可能要前后移动指针,比如我们先计算有多少条信息,这是我们就需要把指针移到最后来计算,然后再把指针移到最前面,逐条读取,有时我们只需要逐条读取就

19、可以了。还有就是有只我们只需要读取数据,为了不破坏数据,我们可采用只读模式,有时我们需要望数据库里添加记录,这是我们就要采用可更新数据库的模式。下面我们就对其参数进行说明:参数 int type ResultSet.TYPE_FORWORD_ONLY 结果集的游标只能向下滚动。ResultSet.TYPE_SCROLL_INSENSITIVE 结果集的游标可以上下移动,当数据库变化时,当前结果集不变。ResultSet.TYPE_SCROLL_SENSITIVE 返回可滚动的结果集,当数据库变化时,当前结果集同步改变。参数 int concurrency ResultSet.CONCUR_RE

20、AD_ONLY 不能用结果集更新数据库中的表。ResultSet.CONCUR_UPDATETABLE 能用结果集更新数据库中的表。查询语句ResultSet re=stmt.executeUpdate(SQL语句);用来更新数据库信息或插入数据ResultSet re=stmt.executeQuery(SQL语句);用来查询数据库信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 16 页 - - - - - - - - - 当我们使用ResultSet re=st

21、mt.executeQuery(SQL语句)查询后,我们可以使用下列方法获得信息:public boolean previous() 将游标向上移动,该方法返回boolean 型数据,当移到结果集第一行之前时,返回false。public void beforeFirst 将游标移动到结果集的初始位置,即在第一行之前。public void afterLast() 将游标移到结果集最后一行之后。public void first() 将游标移到结果集的第一行。public void last() 将游标移到结果集的最后一行。public boolean isAfterLast() 判断游标是否

22、在最后一行之后。public boolean isBeforeFirst() 判断游标是否在第一行之前。public boolean ifFirst() 判断游标是否指向结果集的第一行。public boolean isLast() 判断游标是否指向结果集的最后一行。public int getRow() 得到当前游标所指向行的行号,行号从1开始,如果结果集没有行,返回0。public boolean absolute(int row) 将游标移到参数row 指定的行号。如果row 取负值,就是倒数的行数, absolute(-1) 表示移到最后一行,absolute(-2) 表示移到倒数第2

23、行。当移动到第一行前面或最后一行的后面时,该方法返回false。转自: http:/ Excel , 复制粘贴一下要不就在 其中一个数据库上面,建立一个链接表INSERT INTO A2 ( ID, XM ) SELECT ID, XM FROM A1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 16 页 - - - - - - - - - - / / Access 的数据库连接字符串. / private const String connString = Pro

24、vider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|TeamMemberManager.mdb; / / 用于查询的 SQL 语句 . / private const String SQL = SELECT member_type_code, member_type_name FROM team_member_type; / / 将数据读取到 DataSet 中 . / public void ReadDataToDataSet() Console.WriteLine(使用 DataAdapter ,将数据填充到DataSet 中,

25、然后脱离数据库,直接对 DataSet 进行处理。 ); / 建立数据库连接. OleDbConnection conn = new OleDbConnection(connString); / 创建一个适配器 OleDbDataAdapter adapter = new OleDbDataAdapter(SQL, conn); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 16 页 - - - - - - - - - / 创建 DataSet ,用于存储数据. Da

26、taSet testDataSet = new DataSet(); / 执行查询,并将数据导入DataSet. adapter.Fill(testDataSet, team_member_type); / 关闭数据库连接. conn.Close(); / 处理 DataSet 中的每一行数据. foreach (DataRow testRow in testDataSet.Tablesteam_member_type.Rows) / 将检索出来的数据,输出到屏幕上. Console.WriteLine(ID: 0 Name: 1, testRowmember_type_code, testR

27、owmember_type_name ); 数据 读取到 DataSet 以后, 再打开另外一个数据库,执行插入/ / 用于 新增记录的 SQL 语句名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 16 页 - - - - - - - - - / private const String INSERT_SQL = INSERT INTO team_member_type (member_type_code, member_type_name) VALUES (?, ?)

28、; / / 插入数据 . / / private void InsertData(OleDbConnection conn) / 创建一个 Command. OleDbCommand insertCommand = conn.CreateCommand(); / 定义需要执行的SQL 语句 . insertCommand.CommandText = INSERT_SQL; / 定义要查询的参数. / 注意: Access 与 Oracle/SQL Server 不同, / Access 的 SQL 中的查询的参数,无法命名。只能用 ? 来表明这是外部传入的参数. / 因此,参数只能按照 SQL

29、 中 ? 的顺序,进行添加. insertCommand.Parameters.Add(new OleDbParameter(?, TEST_TYPE_CODE); insertCommand.Parameters.Add(new OleDbParameter(?, 新插入的名字 ); / ExecuteNonQuery 方法,表明本次操作,不是一个查询的操作。将没有结果集合返回. / 返回的数据,将是被影响的记录数. int insertRowCount = insertCommand.ExecuteNonQuery(); Console.WriteLine(尝试插入数据,结果造成了 0条记录的插入。, insertRowCount); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 16 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 16 页 - - - - - - - - -

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁