已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
概念:JDBC及驱动程序 数据库:MS Access;MS Excel;JavaDB 数据库连接(JDBC URL) 数据库访问(含SQL),本章目标,Ch05-数据库,济南大学信息科学与工程学院 制作人:乔善平,课程:Java程序设计 e-mail:ise_,主要的包、类及接口,java.sql DriverManager Connection Statement(PreparedStatement;CallableStatement) ResultSet DatabaseMetaData;ResultSetMetaData,济南大学信息科学与工程学院 制作人:乔善平,课程:Java程序设计 e-mail:ise_,实例,使用JavaDB设计一个单选题数据库 设计一个类,实现下列功能: 连接数据库 随机选择n道题目 输出题目内容 考虑难度和分布选择n道题目 练习对Excel的操作(student.xls) 练习对Access的操作(words.mdb),数据库编程,概述 基本SQL语句 访问数据库 实例,本章基本要求,了解JDBC及其驱动程序的类型 熟悉基本的SQL语句 会访问数据库,概述,济南大学信息科学与工程学院 - 2011,常用数据库 Java DB MySQL Microsoft Access Microsoft SQL Server Oracle Sybase ,济南大学信息科学与工程学院 - 2011,JDBC JDBC Java Database Connectivity JDBC的体系结构,济南大学信息科学与工程学院 - 2011,JDBC驱动程序的类型,济南大学信息科学与工程学院 - 2011,import java.sql.*; import javax.sql.*; java.sql.SQLException,济南大学信息科学与工程学院 - 2011,基于JDBC的数据库访问的基本步骤: 建立数据库(含启动服务器、设置数据源等) 加载JBDC驱动程序 获得到数据库的连接 创建执行SQL语句的声明 向数据库发送并执行SQL语句 处理执行的结果 关闭连接,基本SQL语句,济南大学信息科学与工程学院 - 2011,表操作 创建表 create table 表名(字段名1 数据类型1, ) create table 成绩表(学号 integer, 姓名 char(20), 成绩 double) 删除表 drop table 表名 drop table 成绩表,济南大学信息科学与工程学院 - 2011,列操作 添加列 alter table 表名 add 字段名 数据类型 alter table 成绩表 add 性别 char(2) 删除列 alter table 表名 drop column 字段名 alter table 成绩表 drop column 性别 修改列 alter table 表名 alter column 字段名 数据类型 alter table 成绩表 alter column 姓名 char(30),济南大学信息科学与工程学院 - 2011,记录操作 插入记录 insert into 表名 values(值1,) insert into 成绩表 VALUES(2008010441,王二 ,85) 删除记录 delete from 表名 where 条件表达式 delete from 成绩表 where 姓名=王二 更新记录 update 表名 set 字段名=值 where 条件表达式 update 成绩表 set 姓名=王三 where 姓名=王二,济南大学信息科学与工程学院 - 2011,查询记录 select语句 SELECT * FROM SCORE WHERE C180 SELECT * FROM stu ORDER BY 成绩 SELECT * FROM stu WHERE 姓名 LIKE 张%,访问数据库,济南大学信息科学与工程学院 - 2011,此处以访问 Microsoft Access 数据库为例进行讲解,对其他类型数据库的访问类似。主要区别在于连接数据库的方法。,济南大学信息科学与工程学院 - 2011,创建数据库并设置数据源 设计满足系统需求的数据库和相关表 完成基本数据的录入,完成数据库的建立 设置数据源(Windows XP下) 控制面板管理工具数据源(ODBC) 用户DSN标签添加选择驱动程序完成 输入数据源名选择数据库确定 /在此可使用高级按钮设置登录用户和密码,济南大学信息科学与工程学院 - 2011,加载驱动程序类 Class.forName(“驱动程序类名”); JDBC-ODBC桥接器 在JDK中已经提供 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); 第4类JDBC Driver 需要下载相关的jar文档 将jar文档添加到开发环境中,济南大学信息科学与工程学院 - 2011,获得一个到数据库的连接 JDBC URL 格式:jdbc: 例如 String urlstr = “jdbc:odbc:mydb”; String urlstr = “jdbc:odbc:Driver=Microsoft Access Driver (*.mdb);DBQ=path/mydb.mdb”;,济南大学信息科学与工程学院 - 2011,获得连接 Connection conn; conn = DriverManager.getConnection(urlstr); conn = DriverManager.getConnection (urlstr, user, pwd);,济南大学信息科学与工程学院 - 2011,创建一个使用SQL语句的对象 Statement stmt; stmt = conn.createStatement(); stmt = conn.createStatement(int,int); int:结果集游标的滚动类型及对数据库变化的反映 ResultSet.TYPE_FORWARD_ONLY ResultSet.TYPE_SCROLL_INSENSITIVE ResultSet.TYPE_SCROLL_SENSITIVE int:是否能用结果集对数据库进行更新 ResultSet.CONCUR_READ_ONLY ResultSet.CONCUR_UPDATABLE,济南大学信息科学与工程学院 - 2011,执行SQL语句并获得结果 ResultSet rset; 查询语句(SELECT) rset = stmt.executeQuery(SQL语句); 更新语句(INSERT、UPDATE、DELETE) int ret = stmt.executeUpdate(SQL语句);,济南大学信息科学与工程学院 - 2011,处理结果 说明 ResultSet对象维护一个指向当前行的位置光标,初始在第1行前面,next()方法可下移,当没有多余行时返回false ResultSet提供了一组get方法用于获取当前行中各列值,按照left-to-right顺序读取,且每列只能读取一次。列号从1开始,济南大学信息科学与工程学院 - 2011,ResultSet接口提供以下操作结果集数据的方法 光标位置 boolean next(); boolean previous(); boolean first(); boolean last(); void beforeFirst(); void afterLast(); boolean absolute(int); boolean relative(int); boolean isBeforeFirst(); boolean isAfterLast(); boolean isFirst(); boolean isLast();,济南大学信息科学与工程学院 - 2011,操作列数据 boolean getBoolean(int/String) byte getByte(int/String) short getShort(int/String) int getInt(int/String) long getLong(int/String) float getFloat(int/String) double getDouble(int/String) String getString(int/String) Time getTime(int/String) Date getDate(int/String) Object getObject(int/String) int findColumn(String columnName),济南大学信息科学与工程学院 - 2011,操作行数据 rs.absolute(5); rs.updateString(“NAME“, “Zhansan“); rs.updateRow(); rs.moveToInsertRow(); rs.updateString(1, “Zhansan“); rs.updateInt(2, 35); rs.updateBoolean(3, true); rs.insertRow(); rs.moveToCurrentRow();,济南大学信息科学与工程学院 - 2011,关闭连接 rset.close(); stmt.close(); conn.close();,实例,济南大学信息科学与工程学院 - 2011,问题描述(Example11_Word.java) 设已存在一个Access数据库words.mdb,其中有一个表words,表结构如下: 设计一个数据库程序,完成英汉查询的功能。即输入一个英文单词,显示出查询结果,本章问题小结,JDBC的含义与作用是什么? 数据库编程一般需要导入什么包和处理什么异常? 如何设置ODBC的DSN? 如何加载数据库驱动程序? 如何获得到一个数据库的连接(Connection)? 如何获得一个使用SQL语句的对象(Statement)? 如何执行SQL语句? 如何处理处理结果(ResultSet)? 如何关闭连接? 会使用基本的SQL语句。,济南大学信息科学与工程学院 - 2011,作业,什么是JDBC? 说说使用JDBC访问数据库的基本步骤。,其它内容,济南大学信息科学与工程学院 - 2011,SQL99的主要数据类型,济南大学信息科学与工程学院 - 2011,Class.forName(“com.mysql.jdbc.Driver“); Connection conn = DriverManager.getConnection(“jdbc:mysql:/localhost:3306/DBname“, “, “); Class.forName(“org.apache.derby.jdbc.ClientDriver“); Connection conn = DriverManager.getConnection(“jdbc:derby:/localhost:1527/DBname“, “, “); Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); Connection conn = DriverManager.getConnection(“jdbc:odbc:driver=Microsoft Access Driver (*.mdb);DBQ=e:/qsp.mdb“, “, “); Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver“); Connection conn = DriverManager.getConnection( “jdbc:microsoft:sqlserver:/localhost:1433;databaseName=master“, “, “);,济南大学信息科学与工程学院 - 2011,Connection的主要方法 void commit() void rollback() DatabaseMetaData getMetaData() Statement createStatement() Statement createStatement(int, int) PreparedStatement prepareStatement(String) CallableStatement prepareCall(String) void close(),济南大学信息科学与工程学院 - 2011,Statement的主要方法 ResultSet executeQuery(String sql) int executeUpdate(sql) boolean execute(sql) ResultSet getResultSet() int getUpdateCount() Connection getConnection() void close() void clearBatch() void addBatch(String sql) int executeBatch(),济南大学信息科学与工程学院 - 2011,元数据 DatabaseMetaData 用于获取描述数据库的元数据 ResultSetMetaData 用于获取描述表的元数据,济南大学信息科学与工程学院 - 2011,PreparedStatement( extends Statement ) PreparedStatement ps = conn.pre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中学生应急预案(3篇)
- 武汉市政治考试题及答案
- DB1306T 283-2025 蟾蜍养殖中防逃防天敌技术规程
- 2025年现代通信概论试卷及答案
- 2025年用户体验研究员人员岗位招聘面试参考试题及参考答案
- 2025年房产投资顾问岗位招聘面试参考题库及参考答案
- 奢侈品跨界合作模式分析-洞察与解读
- 2025年风险投资顾问岗位招聘面试参考题库及参考答案
- 翼城英语考试题型及答案
- 2025年公关经理人员岗位招聘面试参考试题及参考答案
- 篮球交叉步持球突破教学设计-高二下学期体育与健康人教版
- 1到六年级古诗全部打印
- 转动机械找对轮找中心有图有公式
- BIM-建筑信息模型
- GB/T 22415-2008起重机对试验载荷的要求
- 中国地质大学武汉软件工程专业学位研究生实践手册
- 《投资银行》或《资本运营》风险投资业务课件
- DBJ50T-163-2021 既有公共建筑绿色改造技术标准 清晰正式版
- 低阶煤、褐煤干法制备气化用高浓度水煤浆技术
- GB∕T 37458-2019 城郊干道交通安全评价指南
- DB33_T 2301-2020番茄水肥一体化技术规程(高清正版)
评论
0/150
提交评论