访问数据库课件

上传人:我*** 文档编号:144765283 上传时间:2020-09-14 格式:PPT 页数:31 大小:1.41MB
返回 下载 相关 举报
访问数据库课件_第1页
第1页 / 共31页
访问数据库课件_第2页
第2页 / 共31页
访问数据库课件_第3页
第3页 / 共31页
访问数据库课件_第4页
第4页 / 共31页
访问数据库课件_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《访问数据库课件》由会员分享,可在线阅读,更多相关《访问数据库课件(31页珍藏版)》请在金锄头文库上搜索。

1、Java程序设计,26访问数据库,目 标,连接数据库,能够增删改查 掌握PreparedStatement 事务,环境准备,打开 SQL查询分析器-帮助-关于 查看MSSQL的详细版本号 如果 是 8.00.194 就是还没打补丁 8.00.760 就是SP3 8.00.2039 就是SP4 必须安装了SQL Server 2000 SP3或者SP4补丁,SQL2000 JDBC驱动文件,SQL2005 JDBC驱动文件,SQLServer2000-配置TCP/IP端口,1打开企业管理器,依次在控制台根目录 -Microsoft SQL Servers-SQL Server 组,列出一部分数据

2、库服务器。 2右击我们要连接的数据库服务器,选择属性,在常规选项卡点击网络配置弹出新窗口。 3在启用的协议区域选择 TCP/IP ,点击属性按钮,弹出新窗口。在这个窗口有网络协议默认值设置,一般默认端口是:1433。 如果你在dbUrl中用的端口号与这个不同,就会出现错误。应保持二者相同。,默认的端口号是1433. 打开sql2005的SQL Server Configuration Manager -展开网络配置 -点击MYSQLSERVER协议 -双击TCP/IP -选择IP地址就能看到端口号了。,SQLServer2005-配置TCP/IP端口,Why JDBC?,统一的数据库接口JDB

3、C就是一种接口,JDBC两端有不同种类库,数据库介绍,ODBC-Open DataBase Connection,开放数据库互连 为了使数据库系统的应用开发能够更加轻松,微软公司提供了一套数据库接口规范ODBC(对,你没看错是ODBC,为了大家能够更加清楚地认识JDBC,我们先给大家介绍一下ODBC)。它为编程语言访问数据库提供了一个标准接口 整个过程就是,应用程序通过ODBC接口来访问数据库,并且无需关心是什么数据库;而当ODBC接口收到这个数据库操作请求时,就通过驱动程序管理器找到相应的数据库ODBC驱动程序;最后ODBC驱动程序连接数据库完成操作。 ODBC的出现使得应用程序访问、操作数

4、据库更加容易,迅速成为了一个通用的标准。而Java做为了一种网络化的编程语言,也少不了要与数据库打交道,要让Java程序访问数据库更加容易,也必须提供相应的机制把不同数据库系统所带来的差异屏蔽掉。因此,就导致了JDBC(Java DataBase Connectivity)的诞生。,两种不同访问数据库的方式,通过HTTP侦听程序访问数据库 在这种情况下,Java程序通过使用一些RPC或一个HTTP发送者-侦听者协议与网络上的数据库服务器交谈,实现数据库的访问与操作。,通过JDBC-ODBC桥接器访问数据库 在这种情况下,JDBC通过访问一个本地模块JDBC-ODBC桥接器(JDBCODBC.D

5、LL)来与数据库交互。这个数据库可以在本地,也可以在远程。,JDBC,Java.sql包 访问数据库的API DriverManager类 Connection接口 Statement类 ResultSet接口 PreparedStatement接口 ResultSetMetaData接口,JDBC API构成,DriverManager,Connection,Statement,ResultSet,处理驱动程序的加载,处理与特定数据库的连接,处理SQL语句,处理数据库操作的结果集,建立ODBC数据源: 设置控制面板管理工具数据源(ODBC)系统DSN添加选择SQLServer驱动填写ODBC

6、数据源名字选择数据库服务器(本地服务器可以写.)选择登陆方式(默认使用windows NT验证)更改默认数据库为所有数据库完成测试成功则建立完毕。,jdbc-odbc桥方式,JDBC-ODBC桥连接方式使用数据库,加载驱动,建立连接,发出请求,处理结果,Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);或常用方式: DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver();,Connection con = DriverManager.getConnection(jdbc:odbc:

7、xx,us,pa);,Statement st = con.createStatement(); ResultSet rs = st.executeQuery(select * from titles);,while (rs.next() System.out.println(rs.getString(title_id); ,rs.close(); st.close(); con.close();,关闭,ODBC 连接名字,JDBC直接访问数据库五步曲,访问数据库分以下几步: 加载JDBC驱动程序 Class.forName(com.microsoft.jdbc.sqlserver.SQLSe

8、rverDriver); DriverManager.registerDriver(new com.microsoft.jdbc.sqlserver.SQLServerDriver(); 连接到数据库 URL = jdbc:microsoft:sqlserver:/127.0.0.1:1433; DatabaseName=pubs Connection conn = DriverManager.getConnection(URL,sa,);,创建statement对象,发送sql语句 Statement smt = conn.createStatement(); 创建resultset对象,处

9、理查询结果 ResultSet rs = smt.executeQuery(sql); 关闭数据库连接资源 rs.close(); smt.close(); conn.close(); 注意: 该方法不需要建立ODBC数据源; 需要配置SQLServer数据库属性中的安全项目中为SQL和windowsNT系统验证模式。 需要添加SUN公司提供的jar包,数据库操作,查询、修改、插入 、删除 select * from 表名 update 表名 set 字段=“+变量+ where字段=值 insert into 表名(字段,字段,字段) values(值1,值2,值3) delete from

10、 表名 where字段=值,获取数据库元数据信息,获取数据库的元数据信息 DatabaseMetaData meta = conn.getMetaData(); meta.getDatabaseProductName()/获取数据库名称 meta.getDatabaseProductVersion()/获取数据库版本 获取表单的元数据信息 ResultSetMetaData rsMeta = rs.getMetaData(); rsMeta.getColumnCount()/列数 rsMeta.getColumnName(1)/第一列的名称 rsMeta.getColumnTypeName(1

11、)/第一列类型名称,如char,数据库定义操作,建立数据表和释放数据表 一般用于临时表 创建表sql语句:create 执行更新 executeUpdate 用完删除 drop 建立视图和释放视图 (步骤同上),滚动游标,Statement stmt=con.createStatement(int Type,int Concurrency); Type的取值,决定滚动方式,取值可以是 Result.TYPE_FORWORD_ONLY结果集的游标只能向下滚动 Result.TYPE_SCROLL_INSENSITIVE结果集的游标可以上下移动,当数据库变化时,当前结果集不变 Result.TYP

12、E_SCROLL_SENSITIVE返回可滚动的结果集,当数据库变化时,当前结果集同步改变 Concurrency的取值,决定是否可以用结果集更新数据库,取值可以是 ResultSet.CONCUR_READ_ONLY不能用结果集更新数据库中的表 ResultSet.CONCUR_UPDATETABLE能用结果集更新数据库中的表,20,ResultSet方法,ResultSet result =stmt.executeQuery(SELECT * FROM message); next()会将resultset游标向后移动一行 afterLast()会将resultset读取游标移动至最后一行

13、之后 beforeFirst()会将resultset读取游标移动至第一行之前 absolute()方法制定查询到的行之位置,例如absolute(4)表示第四行,abdolute(10)则是第十行,如果制定负数,则从最后往前数,absolute(-1)则是最后一行。 relative()方法则从目前游标处制定相对位置,例如目前在第25行,则relative(-2)则表示第23行,而relative(4)则表示第29行 first()可以将游标移至第一行 last()可以将游标移至最后一行 getXXX()获得行 ifFirst()判断游标是否指向结果集的第一行 isLast()判断游标是否指

14、向结果集的最后一行,行集,可滚动的结果集虽然功能强大,但是有一个重要的缺陷。在与用户交互的整个过程中,必须始终保持数据库连接。这种方式非常有问题因为数据库连接属于稀有资源。在这种情况下我们可以使用行集。, ResultSet, CacheRowSet, RowSet, JdbcRowSet, Joinable, WebRowSet, FilterRowSet, JoinRowSet,行集,javax.sql.rowset包提供的接口,它们都扩展了RowSet接口: CachedRowSet WebRowSet FilteredRowSet和JoinRowSet jdbcRowSet Sun公司

15、为这些接口提供了可供参考的实现。JDK 5.0中包含了这些参考实现。也可以从,行集,被缓存的行集 CachedRowSet接口继承了ResultSet接口,所以完全可以像使用结果集一样来使用被缓存的行集。 被缓存的行集不适用于处理大量查询结果。将大量的纪录从数据库复制到内存的做法是非常低效的。 行集填充方式:数据库、XML文件、excel等格式数据,1、ResultSet result = stat.executeQuery(queryString); CachedRowSet rowset = new com.sun.rowset.CachedRowSetImpl(); rowset.pop

16、ulate(result);/ ResultSet填充之后可以关闭连接 2、CachedRowSet对象自己设置查询命令,然后将查询结果填充到行集 rowset.setCommand(“SELECT * FROM Books”); rowset.execute(); 3、 RowSet rs = new JdbcRowSetImpl(); rs.setUrl(jdbc:mysql:/test);rs.setUsername(root);rs.setPassword();rs.setCommand(SELECT * FROM EMPLOYEES);rs.execute();,行集,(1)更新数据rs.absolute(5);rs.updateString(2, “John”);rs.updateRow();(2)插入数据rs.moveToInsertRow(); rs.updateInt(1, 10);rs.updateString(2, John);rs.

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号