数据库应用程序设计概要_第1页
数据库应用程序设计概要_第2页
数据库应用程序设计概要_第3页
数据库应用程序设计概要_第4页
数据库应用程序设计概要_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库应用程序设计概要2022-3-15数据库应用程序设计概要上一讲回顾nJava与与Internetn使用使用InetAddress编程编程n使用使用URL编程编程nSocketn数据报通信编程数据报通信编程2022-3-15数据库应用程序设计概要学习要点学习要点nJDBC与数据库概述与数据库概述 n访问数据库访问数据库n数据库查询数据库查询n更新、添加、删除记录更新、添加、删除记录nJDBC事务支持事务支持2022-3-15数据库应用程序设计概要13.1 JDBC与数据库概述 n数据库编程数据库编程 n种类nSQL语言nJDBC框架结构框架结构 nJDBC-ODBC桥接器 n配置ODBC数

2、据源nJDBC驱动程序2022-3-15数据库应用程序设计概要13.1 JDBC与数据库概述 nJDBC典型应用模型典型应用模型 n两层模型, 三层模型2022-3-15数据库应用程序设计概要nJDBC体系结构:体系结构:n常用于Java程序访问数据库的体系结构分为4种2022-3-15数据库应用程序设计概要13.1 JDBC与数据库概述 nJDBC中的主要类中的主要类(包包java.sql) n驱动程序相关nDriver,DriverManager n连接数据库nConnectionn执行SQL语句 n Statement,PreparedStatement,CallableStatemen

3、t 2022-3-15数据库应用程序设计概要13.2 数据库访问 2022-3-15数据库应用程序设计概要nJDBC中的主要类中的主要类(包包java.sql)n结果集 nResultSet n数据库操作错误nSQLException,SQLWarningn数据库及结果集 n DatabaseMetaData,ResultSetMetaData 2022-3-15数据库应用程序设计概要nJDBC中的主要类中的主要类(包包java.sql)n时间日期 nDate,Time,Timestamp n其它 nTypes,DataTruncation 2022-3-15数据库应用程序设计概要13.3 J

4、DBC编程2022-3-15数据库应用程序设计概要13.3 JDBC编程n1、连接数据库(JDBC- ODBC) nJDBC URLn语法:jdbc:n如:jdbc:odbc:studentdb , jdbc:dbpro:stunjdbc:odbc/ site :5000/stun建立连接nClass.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);nString url=“jdbc:odbc:studentdb”;nConnection con=DriverManager.getConnection(url,”user”,”pass”);2022-3-15数据

5、库应用程序设计概要2、连接MS SQLSERVER 2000nJDBC驱动程序。在安装目录的驱动程序。在安装目录的lib子目录中子目录中:nmsbase.jar、mssqlserver.jar、msutil.jar。n驱动程序的名称:驱动程序的名称:(参看该驱动程序安装目录下的文档参看该驱动程序安装目录下的文档)n “com.microsoft.jdbc.sqlserver.SQLServerDriver”。n加载加载MS SQLSERVER 2000 JDBC驱动程序:驱动程序:n Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDri

6、ver);2022-3-15数据库应用程序设计概要n建立数据库连接:建立数据库连接:n String url =jdbc:microsoft:sqlserver: /127.0.0.1:1433;n Connection con=DriverManager.getConnection(url,admin,xyz );n con.setCatalog(bookTest);2022-3-15数据库应用程序设计概要3、连接MySQLnJDBC驱动程序驱动程序(官方网站官方网站):nMySQL 5.0 mysqlnMySQL 4.0 mysqlgan加载加载MySQL JDBC驱动程序驱动程序:驱动程

7、序的名称:驱动程序的名称:(参看相应参看相应文档文档) :Class.forName(com.mysql.jdbc.Driver).newInstance(); MySQL4. 0:Class.forName(org.gjt.mm.mysql.Driver); 2022-3-15数据库应用程序设计概要n建立数据库连接:建立数据库连接: String url =jdbc:mysql:/localhost:3306/; Connection con=DriverManager.getConnection(url, root,); con.setCatalog(“test”); /设置缺省数据库设置

8、缺省数据库conn = DriverManager.getConnection(jdbc:mysql:/localhost:3306/test?user=root&password=);conn = DriverManager.getConnection( jdbc:mysql:/localhost/test?useUnicode=true&characterEncoding=gb2312, root,);2022-3-15数据库应用程序设计概要4、使用配置文件n在应用程序所在的目录中创建一个配置文件在应用程序所在的目录中创建一个配置文件db.cfg,该文件中的内容为:该文件中

9、的内容为: dbDriver=com.microsoft.jdbc.sqlserver.SQLServerDriver dbIP dbPort=1433 dbUserName=admin dbPassword=xyz defaultDbName=bookTest2022-3-15数据库应用程序设计概要n利用类的利用类的load()方法可以从输入流中读入属性值。示方法可以从输入流中读入属性值。示例:例: Properties prop=new Properties(); prop.load(new FileInputStream(db.cfg);n读入的配置信息是以读入的配置信息是以(关键字,属

10、性值关键字,属性值)对的形式存放对的形式存放在对象在对象prop中的。中的。n例如要取得关键字例如要取得关键字dbDriver的属性值,使用的属性值,使用getProperty()方法:方法: String driver=prop.getProperty(dbDriver);driver中的值为中的值为“com.microsoft.jdbc.sqlserver.SQLServerDriver”。 2022-3-15数据库应用程序设计概要13.3 JDBC编程n5、获取数据库信息、获取数据库信息nDatabaseMetaData对象对象DatabaseMetaData dbma=con.getM

11、etaData();n方法:方法:n取得数据库的基本信息getURL,getUserName(),getDatabaseProduceName(),getDatabaseProduceVersion(),isReadOnly(),getDriverName(),getDriverVersion()n取得表信息 getTabels() 2022-3-15数据库应用程序设计概要13.3 JDBC编程n取得各列的信息取得各列的信息 getColumns()n取得索引信息取得索引信息 getIndexInfo() 2022-3-15数据库应用程序设计概要13.4 数据库查询 所有所有SQL语句都是通过

12、语句都是通过Statement或其子类或其子类(PreparedStatement, CallableStatement )的对象实现。的对象实现。n1、Statement 对象对象用于一般用于一般SQL查询语句的执行查询语句的执行 n创建:用Connection对象的createStatement方法Statement stmt=con.createStatement(); 2022-3-15数据库应用程序设计概要13.4数据库查询 nStatement n执行:executeQuery,executeUpdate,executeString tsql=“select name,age fr

13、om table1”; ResultSet rs=stmt.executeQuery(tsql);非select语句:int nRet=stmt.executeUpdate(tsql);execute方法用于:返回多个结果集、多个更新集n关闭:close stmt.close();2022-3-15数据库应用程序设计概要13.4数据库查询 n2、PreparedStatement 对象对象可以将可以将SQL语句预编译,还可以内嵌参数语句预编译,还可以内嵌参数String sql=“Select * from table1 where id=”+nID+” and name=”+strName+

14、”;或:或:PreparedStatement ps=con.preparedStatement(“delete from table1 where id=? And name=?”); ps.setInt(1,nID); ps.setString(2,strName); ps.executeUpdate();2022-3-15数据库应用程序设计概要方法1 PreparedStatement update=con.prepareStatement(insert into bookInfo values(?,?,?,?); update.setString(1, B0003); update.s

15、etString(2, c+); update.setFloat(3, 78.50f); update.setString(4, “清华大学出版社清华大学出版社”); update.executeUpdate();2022-3-15数据库应用程序设计概要方法2PreparedStatement update=con.prepareStatement(insert into bookInfo values(?,?,?,?); Object line=B0003,C+, new Float(78.50),清华大学清华大学; for(int i=1;i=line.length;i+) update.

16、setObject(i,linei-1); update.executeUpdate();2022-3-15数据库应用程序设计概要13.4数据库查询 n3、CallableStatement 对象对象用于执行存储过程用于执行存储过程创建:创建:Connection对象的对象的PrepareCall()方法方法 CallableStatement cs=con.prepareCall(“call Query1”); call 存储过程名存储过程名 call 存储过程名存储过程名(?,?,) ?=call 存储过程名存储过程名(?,?,)2022-3-15数据库应用程序设计概要n4、ResultS

17、et:对象对象nResultSet对象一次只能看到一个数据行,通过next( )方法移动到下一行,得到一行数据,然后通过getXxx( )方法获取改行的字段值。它的常用方法如下:nboolean absolute( int row) 移到指定行nvoid afterLast( ) 移到最后一条记录后面nvoid beforeFirst( ) 移到第一条记录前面nboolean first( ) 移到第一条记录上nboolean last( ) 移到最后一条记录上nboolean isBeforeFirst( ) 指针是否在第一条记录前面nboolean isAfterLast( ) 指针是否在

18、最后一条记录后面nboolean next( ) 移动记录指针到下一笔记录2022-3-15数据库应用程序设计概要13.4数据库查询 nResultSet rs=st.executeQuery(“Select * from table1”); while(rs.next() rs.getInt , rs.getString , 2022-3-15数据库应用程序设计概要13.5 更新、添加、删除记录 n修改、插入和删除操作修改、插入和删除操作 update,insert,delete 语句语句n创建和删除表创建和删除表 Create Table语句语句n增加和删除表中的列增加和删除表中的列 Alter Table语句语句 2022-3-15数据库应用程序设计概要13.6 JDBC事务支持事务由一个或多个事务由一个或多个SQL语句请求组成,将多条语句请求组成,将多条SQL请求组合为事务的目的是维护数据库的完整性。请求组合为事务的目的是维护数据库的完整性。 nConnection对象的方法:对象的方法:n setAutoCommit(false)ncommit()nrollback() 2022-3-15数据库应用程序设计概要try con.setAutoCommit(false); / 设置为非自动递交模式设置为非自动递交模式 Prepared

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论