传递知识,分享成功

java高级(JDBC)

发送Email给你好友吧

分享给

登录右侧的邮箱可以直接导出你好友的Email或用户名,然后添加过来就可以了,也可以直接输入好友的Email,每行一个。

发送信息

邮箱地址

和我的好友分享:java高级(JDBC)

描述

插入到下面网站书签

关于课件,你可以发表一下个人意见或提出新的问题

问题描述

详细描述问题的状况,字数在800以内。

复制下面的代码,你可以通过QQ或MSN发给朋友欣赏,也可以发布到自己的博客或论坛上

将该课件推荐到我所在的圈子

Slide 1:  

Slide 2:  

Slide 3:  

Slide 4:  

Slide 5:  

Slide 6:  

Slide 7:  1、桥接器提供通过JDBC API存取ODBC的接口,而每个本地(client)端的数据库必须要装载ODBC。利用此桥接器,能与以ODBC(存取微软数据库共通接口)为资料来源的数据库相连接。因为安装上程序繁琐,所以现行的应用程序很少使用此驱动方式。
2、 JDBC通过调用数据库端的应用程序及通过ODBC与数据库连接。此种方式与桥接器作法类似。
3、利用数据库制造商所提供的DBMS协议(Data Base Management System-Protocol)编写JDBC应用程序,而数据库制造商也必须将JDBC技术附加于该数据库中。
4、

Slide 8:  

Slide 9:  下图来表示应用程序

Slide 10:  由数据库连接到查询结果大致可分为三个阶段:数据库驱动含连接、SQL语句产生、查询结果。

Slide 11:  

Slide 12:  

Slide 13:  

Slide 14:  

Slide 15:  

Slide 16:  

Slide 17:  

Slide 18:  补充资料

Slide 19:  

Slide 20:  

Slide 21:  

Slide 22:  

Slide 23:  

Slide 24:  

Slide 25:  

Slide 26:  

Slide 27:  

Slide 28:  

Slide 29:  

Slide 30:  

Slide 31:  

Slide 32:  

Slide 33:  

Slide 34:  

Slide 35:  

Slide 36:  

Slide 37:  

Slide 38:  

Slide 39:  

我要评论

 看不清,换一张

课件内容

Slide 1:  Java与数据库

Slide 2:  课程内容
MySQL数据库简介
SQL语句
JDBC简介
主要JDBC类
工作步骤:
实例

Slide 3:  SQL语句(1)
(1)SELECT[ALL|DISTINCT|DISTINCTROW|TOP]
{*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]}
FROM tableexpression[,…][IN externaldatabase]
[WHERE…]
(2)更新查询语法:
UPDATE 表名
SET新值
WHERE 准则
(3)DELETE子句的语法:
DELETE [表名.*]
FROM来源表
WHERE 准则
(4)INSERT子句的语法:
INSETR INTO目的表或查询(字段1,字段2,…)
valueS(数值1,数值2,…)

Slide 4:  SQL语句(2)
(5)建立第一个表
create table 表名(字段名);
(6)删除表
drop table 表名;

Slide 5:  JDBC简介(1)
•JDBC(JAVA DataBase Connectivity)主要的功能是
作为连接数据库与JAVA应用程序的接口
(interface)。
•JDBC的出现,让应用程序在转换数据库上作最
简单的修改(只需一行代码),再加上JAVA的跨平
台机制,使得数据库资间也有了共通的接口。
•JDBC在应用程序与数据库之间的关系,可以利用下图来
说明:

Slide 6:  JDBC在应用程序与数据库之间的关系

Slide 7:  JDBC简介(2)
• JDBC驱动程序依连接方式不同可分为以
下四类:
1.JDBC-ODBC桥接器驱动程序
2.采用部分JAVA代码所编写的驱动程序
3.JAVA网络协议驱动程序(Net-protocol fully
Java technology-enabled Driver):
4.Java原始协议驱动程序(Native-protocol
fully Java technology-enabled Driver):
JDBC直接使用DBMS协议连接数据库。
各数据库制造商依据JAVA数据库存取协
议提供相对应的驱动程序。

Slide 8:  连接数据库
• 由数据库连接到查询结果大致可分为三个阶段:
数据库驱动含连接、SQL语句产生、查询结果。
在资料取得的过程中,每个阶段皆使用相对的
方法产生下一个阶段的对象,直到最后取得资
料结果。这样的流程就像程序式中的程序编写
一样,步骤指令与步骤指令之间环环相扣,只
是现在把每个步骤指令作成对象,步骤之间再
利用对象所属方法产生下一个步骤的对象。

Slide 9:  主要JDBC类(1)
• Driver类:用来与数据库通信的软件.
• DriverManager类:是JDBC基础,用来管理和卸
载JDBC驱动程序.该类有一个getConnection()
方法,用于验证JDBC数据源,并返回Connection
对象.
• Connection类:该类的CreateStatement()方法连
接JDBC数据源,返回Statement对象.

Slide 10:  主要JDBC类(2)
• Statement类:将SQL行为封装起来交给数据库
引擎,调用该类的execute()等方法,执行SQL语句,
返回resultSet对象.
• ResultSet类:封装了一个由SQL查询返回的结果.
该类的getString(),getInt()等方法获得一栏数据
的存取,next()方法到下一行.

Slide 11:  工作步骤:
(1)加载JDBC Driver:
Class.forName(驱动程序名称字符串); //加载驱动程序
驱动程序名称字符串的格式如下:
jdbc:subprotocol name:other stuff
注:
• 子协议名称(subprotocol name):选择数据库所使用
的驱动程序。以本章所使用驱动程序其名称为:
"acs.jdbc.Driver"。
• 其他要素(other stuff):依DBMS厂商所提供的驱动
程序说明而定。

Slide 12:  • //加载驱动程序
• public class TestDriver{






"+strDriver);







• }
}
catch(Exception e){
}
}
System.out.println("驱动程序加载失败");
public static void main(String[] args){
//驱动程序类名称
String strDriver=" com.mysql.jdbc.Driver ";
try{
System.out.println("加载驱动程序...");
System.out.println("驱动程序字符串:
Class.forName(strDriver);
System.out.println("驱动程序加载成功");

Slide 13:  工作步骤:
(2)建立与数据库连接:
Connection可以建立应用程序与数据库的链接,语法如下:
• Connection conDatabase=null;
• conDatabase=DriverManager.getConnection(URL字符串);
建立conDatabase对象
JDBC的URL语法如下:
Jdbc:数据库厂商(驱动程序)名称:数据库主机地址:输出入端口:
数据库文件完整路径名称
"jdbc:mysql:localhost:3306:/hotel";
//声明一个Connection接口
//

Slide 14:  • import java.sql.*;
• public class ConnectDB{






"+strDriver);







public static void main(String[] args){
//加载驱动程序
String strDriver="com.mysql.jdbc.Driver";
try{
System.out.println("加载驱动程序...");
System.out.println("驱动程序字符串:
Class.forName(strDriver);
}catch(Exception e){
}
System.out.println("驱动程序加载成功");
System.out.println("驱动程序加载失败");
e.printStackTrace();

Slide 15:  • //连接数据库
















Connection conDatabase=null;
String strURL="jdbc:mysql://localhost:3306/hotel";
try{
System.out.println("连接数据库...");
System.out.println("数据库URL:"+strURL);
conDatabase=DriverManager.getConnection(strURL,”root”,”123”);
System.out.println("数据库连接成功");
}catch(SQLException e){
if(conDatabase!=null){
try{conDatabase.close();
}catch(SQLException e2){
e2.printStackTrace();}
}
System.out.println("数据库连接失败");
e.printStackTrace();
return;
}}}

Slide 16:  工作步骤:
(3)读取表:
a.数据库连接后,接着要打开表(table),开起表时需要先建立Statement对
象,方法如下:
• Statement dbState=null;
//产生一个空的Statement参考变量。
• dbState=conDatabase.createStatement();
createStatement方法建立对象。
//利用Connention对象的
b.通过这个对象执行SQL指令才能打开表,方法如下:
• dbState.execute(SQL语句); //通过execute方法执行SQL指令。
c.当Statement对象执行完SQL指令后,还需要ResultSet对象来存放表的
资料。方法如下:
• ResultSet dbRS=null;
dbRS=dbState.getResultSet();
//产生一个空的ResultSet参考变量。
//利用Statement对象的
getResultSet()方法建立对象。

Slide 17:  















//加载驱动程序
//连接数据库
//读取表
Statement dbState=null;
ResultSet dbRS=null;
try{
dbState=conDatabase.createStatement();
dbState.execute(“select * from hotel“);
dbRS=dbState.getResultSet();
System.out.println("表读取成功");
}catch(SQLException e){
System.out.println("表读取失败");
e.printStackTrace();
}
}
}

Slide 18:  实例(1)
//筛选表及显示资料内容

import java.sql.*;



public class CH12_04{
public static void main(String[] args){
//加载数据库驱动程序
• String strDriver="acs.jdbc.Driver";




try{
Class.forName(strDriver);
}catch(Exception e){
败");

}
System.out.println("驱动程序加载失

Slide 19:  













//数据库连接
strURL="jdbc:atinav:localhost:7227:C:\\ADDRESS.mdb";
try{
Connection conDatabase=null;
String
conDatabase=DriverManager.getConnection(strURL);
}catch(SQLException e){
if(conDatabase!=null){
e2){e2.printStackTrace();}
}
}
try{conDatabase.close();}
catch(SQLException
System.out.println("数据库连接失败");
e.printStackTrace();
return;

Slide 20:  











//表加载与表显示
Statement dbState=null;
ResultSet dbRS=null;
ResultSetMetaData接口
try{
ResultSetMetaData dbMD=null;
int intRecCount=0;
//声明Statement接口
//声明ResultSet接口
//声明
dbState=conDatabase.createStatement();
dbState.execute("Select * From ZipCode");
dbRS=dbState.getResultSet();
dbMD=dbRS.getMetaData();
//表区域名称
System.out.print(dbMD.getColumnName(i)+'\t');
System.out.print('\n');
for(int i=2;i<=6;i++)

Slide 21:  












//打印表内容5笔
intRecCount++<=5){
while(dbRS.next() &&
for(int j=2;j<=6;j++){
System.out.print(dbRS.getString(j)+'\t');
}
System.out.print('\n');
}
}catch(SQLException e){
System.out.println("表读取失败");
e.printStackTrace();
}
}
}
?接下来再以此示例改用另外一种写法,让资料查询
依照所自定义的SQL字符串筛选。

Slide 22:  实例(2)
//添加资料至表内
• import java.sql.*;
• public class CH12_06{









SQLException,Exception{
public static void main(String[] args) throws
//加载数据库驱动程序
String strDriver="acs.jdbc.Driver";
Class.forName(strDriver);
//数据库连接
strURL="jdbc:atinav:localhost:7227:C:\\ADDRESS.mdb";
Connection conDatabase=null;
String
conDatabase=DriverManager.getConnection(strURL);

Slide 23:  






//表加载与表显示
Statement dbState=null;
ResultSet dbRS=null;
ResultSetMetaData接口
try{
• //添加资料

ResultSetMetaData dbMD=null;
int intRecCount=0;
//声明Statement接口
//声明ResultSet接口
//声明
ZipCode(City,Area) Values('纽约市','JAVA区')");
• //查询及打印资料



Where City='纽约市' and Area='JAVA区'");
dbState=conDatabase.createStatement();
dbState.executeUpdate("Insert Into
dbState.execute("Select * From ZipCode
dbRS=dbState.getResultSet();
dbMD=dbRS.getMetaData();

Slide 24:  

















• }
//表区域名称
for(int i=2;i<=6;i++)
System.out.print(dbMD.getColumnName(i)+'\t');
System.out.print('\n');
//打印表内容5笔
intRecCount++<=5){
while(dbRS.next() &&
for(int j=2;j<=6;j++)
System.out.print(dbRS.getString(j)+'\t');
}
}catch(SQLException e){
System.out.println("表读取失败");
e.printStackTrace();
}finally{
dbState.close();//关闭Statement对象
conDatabase.close();//关闭Connection对象
}
}
System.out.print('\n');

Slide 25:  11.6实例
(1)安装JDBC驱动程序.
(2)设置classpath参数.
(3)编写以下源代码
import java.applet.*;
import java.sql.*;
public class JDBCExample extends Applet{
Connection myconnection;
Statement mystatement;
ResultSet myset;

Slide 26:  public void init(){
Class.forname(“xxxxxx”);//驱动程序名
Mycoonection=DriverManager.getConnection(“jdbc:msql://主机
名:端口/库名”);
Mystatement=myconnection.CreateStatement();
……}
Public void stop(){
mystatement.close();
Myconnection.close();}

Slide 27:  public void xxxx(….){
Try {
mystatement.execute(„select * from xxx‟);
myset=mystatement.getResultSet();
While(myset.next())
{int xxx1=myset.getInt(„字段1‟) ;
String xxx2=myset.getString(„字段2“);
……
输出结果;}
}
Catch(SQLException e) {……}
}}

Slide 28:  import java.applet.*;
import java.sql.*;
public class JDBCExample {
public static void main(String[] args){
Connection myconnection;
Statement mystatement;
ResultSet myset;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcD
river");//驱动程序名

Slide 29:  }
catch(java.lang.ClassNotFoundException e) {}
try {
myconnection=DriverManager.getConnectio
n("jdbc:odbc:exa");
mystatement=myconnection.createStatement
();
myset=mystatement.executeQuery("select *
from s006 where g>22");

Slide 30:  System.out.println("select * from s006 where
g>22");
while(myset.next())
System.out.println(myset.getString(3));}
catch(java.sql.SQLException e) {}
}
}

Slide 31:  import java.applet.*;
import java.sql.*;
public class JDBCExample1 {
public static void main(String[] args){
Connection myconnection;
Statement mystatement;
ResultSet myset;

Slide 32:  try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDri
ver");//驱动程序名
}
catch(java.lang.ClassNotFoundException e) {}
try {
myconnection=DriverManager.getConnectio
n("jdbc:odbc:exa");
mystatement=myconnection.createStatement
();

Slide 33:  String ss="select * from s006 where
sno="+args[0];
myset=mystatement.executeQuery(ss);
while(myset.next()){
System.out.println("学
号:"+myset.getString(2));
System.out.println("姓
名:"+myset.getString(3));
System.out.println("分
数:"+myset.getString(9)); }
catch(java.sql.SQLException e) {} }}
}

Slide 34:  DatabaseMetaData有关整个数据库的信息:表
名、表的索引、数据库产品的名称和版本、数
据库支持的操作。
ResultSetMetaData 有关ResultSet 中列的名称
和类型的信息。
//从元数据中获得列数
ResultSetMetaData rsmd;
rsmd = results.getMetaData();
numCols = rsmd.getColumnCount();

Slide 35:  ResultSetMetaData
您使用getMetaData()方法从ResultSet
中获取ResultSetMetaData
对象。您可以使用此对象获得列的数
目和类型以及每一列的名称。
getColumnCount();
返回ResultSet 中的列数。
getColumnName(int);
返回列序号为int 的列名。

Slide 36:  DatabaseMetaData
对象可为您提供整个数据库的信息。您
主要用它获取数据库中表的名称,以及表中列
的名称。
getURL(); 获得您所连接的URL名称。
getDriverName(); 获得您所连接的数据库驱动程
序的名称。
getTables()方法来获取数据库中表的信息。

Slide 37:  try { rsmd = results.getMetaData();
numCols = rsmd.getColumnCount();
boolean more = results.next();
while (more)
{ for (i = 1; i <= numCols; i++)
System.out.print(results.getString(i)+"
System.out.println();
more = results.next(); }
results.close();}
catch(Exception e)
{System.out.println(e.getMessage());}
");

Slide 38:  private void dumpResults(String head)
{ //这是打印列标头和每列的内容的通用方法
System.out.println(head);
try { //从元数据中获取列数
rsmd = results.getMetaData();
numCols = rsmd.getColumnCount();
//打印列名
for (i = 1; i<= numCols; i++)
System.out.print(rsmd.getColumnName(i)+" ");
System.out.println(); //打印列内容

Slide 39:  boolean more = results.next();
while (more)
{ for (i = 1; i <= numCols; i++)
System.out.print(results.getString(i)+"
System.out.println();
more = results.next(); } }
catch(Exception e)
{System.out.println(e.getMessage());}}
";

阿拉雷

添加时间: 2010-07-23 17:40:06

RSS订阅

190浏览 | 2收藏 | 9下载 | 0分享

更多>>

谁看过这个课件

  • xf2004ll
  • gaoyong822
  • zy9882
  • rayleonardo
  • awwse
  • kid
  • yubingji
  • fengbaoxp
更多>>

相关课件

更多>>

作者其他课件

类别

相关标签(tag)

嵌入的网站