JDBC技术备课.docx

上传人:b****6 文档编号:5871419 上传时间:2023-01-01 格式:DOCX 页数:10 大小:18.16KB
下载 相关 举报
JDBC技术备课.docx_第1页
第1页 / 共10页
JDBC技术备课.docx_第2页
第2页 / 共10页
JDBC技术备课.docx_第3页
第3页 / 共10页
JDBC技术备课.docx_第4页
第4页 / 共10页
JDBC技术备课.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

JDBC技术备课.docx

《JDBC技术备课.docx》由会员分享,可在线阅读,更多相关《JDBC技术备课.docx(10页珍藏版)》请在冰豆网上搜索。

JDBC技术备课.docx

JDBC技术备课

JDBC技术

->为什么要访问数据库?

答:

开发程序的目的是为企业服务的,例如:

小型的MS信息系统,客户信息,业务往来信息等等,而这些信息是以数据的形式存放在数据库中的,但你不能要一般的员工去直接操作数据库,因为他们不是专业人士,不了解数据库,那么我们需要编写简单的界面去操作数据库,简化他们的劳动强度,而我们现在是用JAVA编程,通过JAVA编程访问数据的技术:

我们称为:

JDBC。

JDBC:

java程序对数据库的连接。

(二)数据库有很多,如:

Mysql,SQLServer,Oracle,DB2等等,所以程序员针对不同的数据库要开发不同版本的应用程序,这样做麻烦,所以引入:

ODBC->由Microsoft公司提供的开放式连接,它可以跟任何版本的数据库连接,而我们的应用程序只需要跟ODBC连接即可,在控制面板中可以演示给学生看。

ODBC:

能确保跟任何数据库建立连接。

ODBC:

数据源

ODBC:

是微软公司提供的数据源,它跟操作系统捆绑在一起,windows2000及以上的操作系统都带了ODBC。

而JDBC:

是由sun公司提供的一系列应用程序编程接口,是java基础类库的一部分,由SUN公司提供的一些类完成对数据库的操作,而这些类全部在SQL包中,所以我们导入importjava.sql.*;

 

(三)JDBC驱动程序:

说明书

例如:

在坐的各位同学应该听过驱动程序,你买显卡时,有一张光碟给你,这张光碟就是:

驱动程序。

例如:

假设你很有钱,你买了一款很新潮的手机,你回来时发现这个手机的科技含量很高,这时你会去看说明书,看了说明书,你就会用这款手机了,专业术语:

因为看了说明书,所以说你驱动了这款手机。

你买了显示卡,插上去,计算机也不懂,所以用驱动程序,不是简体版的,是机器语言版的说明书。

java程序是运行在虚拟机上的,虚拟机只能看懂JAVA程序,实际上,驱动程序就是用java写的类。

(四)我们要访问数据库,必须要有驱动程序才搞得定,JDBC提供了四种驱动,S1:

JDBC—ODBC桥驱动,而ODBC不存在的情况下,我们用纯JAVA驱动(不需要ODBC,直接用程序操作数据库).

你们不要慌张,不管用哪种驱动程序,只有两句话不同,要操作数据库,要导入importjava.sql.*

(五)

(1)建立数据源:

(2)加载驱动程序

例如:

假设你今晚准备约你朋友吃宵夜,你要想办法跟她联系,而你连手机都没有,这时你去买了个手机,但是手机太高级了,你不知道怎么用,那么你必须先看懂说明书,才知道怎么用这个电话,这时,你必须看懂说明书,才知道怎么用这个电话,这时,你需要阅读说明书,那么Class的forName()方法相当:

让虚拟机去阅读那本说明书,class类的静态forName()方法,把完整的类名以字符串的形式传进去。

例如:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

(3)说明书看懂了,你会用这个电话了,接下来你准备做什么?

拨号--->建立连接。

Connection对象:

抛异常,因为手机可能关机,可能不在服务区内。

(4)打通过了,要讲话,要用statement语句对象,(statement相当麦克风)。

(5)你能否把朋友约出来,就看SQL语句怎么写了

(6)电话打完后,要挂断,即关闭资源。

例题1JDBC例子:

删除数据

importjava.sql.*;

publicclassJDBCDemo

{

publicstaticvoidmain(String[]args)

{

StringstrCon="jdbc:

odbc:

myODBC";

StringstrUser="sa";

StringstrPwd="";

System.out.println("正在连接数据库:

");

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connectioncon;

con=DriverManager.getConnection(strCon,strUser,strPwd);

System.out.println("成功的连接数据库");

Statementsta=con.createStatement();

StringstrSql="deletefromFriendswherename='郑六'";

intcount=sta.executeUpdate(strSql);

System.out.println("成功删除"+count+"行记录");

sta.close();

con.close();

}

catch(java.lang.ClassNotFoundExceptioncnfe)

{

cnfe.printStackTrace();

}

catch(java.sql.SQLExceptionsqle)

{

sqle.printStackTrace();

}

}

}

二>查询数据的例题:

importjava.sql.*;

publicclassJDBCDemo1

{

publicstaticvoidmain(String[]args)

{

StringstrCon="jdbc:

odbc:

myODBC";

System.out.println("正在连接数据库");

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connectioncon;

con=DriverManager.getConnection(strCon,"sa","");

System.out.println("成功连接数据库");

java.sql.Statementsta=con.createStatement();

StringstrSql="select*fromFriends";

java.sql.ResultSetrs=sta.executeQuery(strSql);

System.out.println("查询到数据如下:

");

while(rs.next())

{

System.out.print(rs.getString("name")+"\t");

System.out.print(rs.getString("address")+"\t");

System.out.print(rs.getInt("Telephone")+"\t");

System.out.print(rs.getDate("Hiredate")+"\t");

System.out.println(rs.getFloat("salary"));

}

rs.close();

sta.close();

con.close();

}

catch(java.lang.ClassNotFoundExceptioncnfe)

{

cnfe.printStackTrace();

}

catch(java.sql.SQLExceptionsqle)

{

sqle.printStackTrace();

}

}

}

三>preParedStatement例题

importjava.sql.*;

publicclassPreparedStatementDemo

{

publicstaticvoidmain(String[]args)

{

StringstrCon="jdbc:

odbc:

myODBC";

System.out.println("正在连接数据库...");

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connectioncon;

con=java.sql.DriverManager.getConnection(strCon,"sa","");

java.sql.PreparedStatementps;

ps=con.prepareStatement("UpdateFriendssetAddress=?

wherename=?

");

//ps.setString(1,"长沙");

//ps.setString(2,"张三");

ps.setString(1,"大连");

ps.setString(2,"李四");

intcount=ps.executeUpdate();

System.out.println("成功更新:

"+count+"行记录");

ps.close();

con.close();

}

catch(java.lang.ClassNotFoundExceptioncnfe)

{

cnfe.printStackTrace();

}

catch(java.sql.SQLExceptionsqle)

{

sqle.printStackTrace();

}

}

}

<四>为什么要有纯Java驱动?

答:

因为JDBC-ODBC桥驱动必须要有ODBC数据源,缺点:

程序的运行效率取决于ODBC的运行效率.

2,ODBC是Windows操作系统自带的,离开Windows操作系统就不可能有ODBC了,为了达到跨平台的效果,所以我们只好采用纯驱动的方式。

1,采用纯驱动,就不用建数据源,但要在程序中加载驱动程序。

第一个任务:

加载驱动包(下载,或者学校机器的E:

\java开发工具)三个.jar的文件拷贝下来。

setup.exe安装也是得到三个.jar文件。

2,开发环境中设置路径:

我们现在的开发环境是:

JCreator->Option->JDKproperties->JDK版本-点击Edit选中三个.jar文件即可。

3,JDBC-ODBC桥驱动方式:

Class.forName(“sun.jdbc.odbc.jdbcodbcDriver”);

而纯驱动为:

Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);

四>纯JAVA驱动连接SQLServer插入数据。

涉及到拼SQL语句:

importjava.sql.*;

publicclassInsertDemo

{

publicstaticvoidmain(String[]args)

{

StringstrCon="jdbc:

odbc:

myODBC";

try

{

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

//开始->SQLServer->客户端网络实用工具->TCpip->属性

Connectioncon=java.sql.DriverManager.getConnection("jdbc:

Microsoft:

sqlServer:

//127.0.0.1:

1433;databasename=pubs","sa","");

java.sql.Statementsta=con.createStatement();

//insertintoFriendsvalues('Andy','长沙',3342,'1990-4-3',5000);

StringstrSql="insertintoFriendsvalues('";

strSql+="Andy"+"','";

strSql+="长沙"+"',";

strSql+=3344+",'";

strSql+="1990-4-3"+"',";

strSql+=5000+")";

System.out.println(strSql);

intcount=sta.executeUpdate(strSql);

System.out.println("成功插入"+count+"行数据");

}

catch(java.lang.ClassNotFoundExceptioncnfe)

{

cnfe.printStackTrace();

}

catch(java.sql.SQLExceptionsqle)

{

sqle.printStackTrace();

}

}

}

控制台接收输入,拼SQL语句,将数据插入到数据库的表中.

importjava.io.*;

importjava.sql.*;

publicclassInsertDemo

{

publicstaticvoidmain(String[]args)throwsIOException

{

java.io.InputStreamReaderisr=newInputStreamReader(System.in);

java.io.BufferedReaderbr=newBufferedReader(isr);

System.out.println("请输入姓名:

");

StringstrName=br.readLine();

System.out.println("请输入家庭地址:

");

StringstrAddress=br.readLine();

System.out.println("请输入电话:

");

inttel=Integer.parseInt(br.readLine());

System.out.println("请输入日期:

");

StringstrDate=br.readLine();

System.out.println("请输入收入:

");

floatsalary=Float.parseFloat(br.readLine());

StringstrCon="jdbc:

odbc:

myODBC";

try

{

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

//开始->SQLServer->客户端网络实用工具->TCpip->属性

Connectioncon=java.sql.DriverManager.getConnection("jdbc:

Microsoft:

sqlServer:

//127.0.0.1:

1433;databasename=pubs","sa","");

java.sql.Statementsta=con.createStatement();

//insertintoFriendsvalues('Andy','长沙',3342,'1990-4-3',5000);

StringstrSql="insertintoFriendsvalues('";

strSql+=strName+"','";

strSql+=strAddress+"',";

strSql+=tel+",'";

strSql+=strDate+"',";

strSql+=salary+")";

System.out.println(strSql);

intcount=sta.executeUpdate(strSql);

System.out.println("成功插入"+count+"行数据");

}

catch(java.lang.ClassNotFoundExceptioncnfe)

{

cnfe.printStackTrace();

}

catch(java.sql.SQLExceptionsqle)

{

sqle.printStackTrace();

}

}

}

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1