JDBC技术备课.docx
- 文档编号:5871419
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:10
- 大小:18.16KB
JDBC技术备课.docx
《JDBC技术备课.docx》由会员分享,可在线阅读,更多相关《JDBC技术备课.docx(10页珍藏版)》请在冰豆网上搜索。
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();
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JDBC 技术 备课