版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模块6——Java数据库编程模块6——Java数据库编程6.1与数据库的连接及数据的基本操作
项目42使用JDBC-ODBC桥接实现与数据库的连接及查询数据表中的数据
JDBC的基本功能
JavaDataBaseConnectivity,Java数据库连接由一组用Java编程语言编写的类和接口组成,是一种可用于执行SQL语句的JavaAPI在java.sql包中定义6.1与数据库的连接及数据的基本操作
项目42使用JDBC6.1与数据库的连接及数据的基本操作
JDBCAPI中定义的主要类数据库驱动程序管理器类DriverManager在用户程序和数据库系统之间维护着与数据库驱动程序之间的连接实现驱动程序的装载创建与数据库系统连接的Connection类对象6.1与数据库的连接及数据的基本操作
JDBCAPI中定6.1与数据库的连接及数据的基本操作
DriverManager类的常用方法主要功能voidderegisterDriver(Driver
driver)从DriverManager
的列表中删除一个驱动程序
ConnectiongetConnection(String
url)建立到给定数据库URL的连接ConnectiongetConnection(String
url,Properties
info)建立到给定数据库URL的连接ConnectiongetConnection(String
url,String
user,String
password)建立到给定数据库URL的连接Driver:每个驱动程序类必须实现的接口6.1与数据库的连接及数据的基本操作
DriverManag6.1与数据库的连接及数据的基本操作
DrivergetDriver(String
url)查找能理解给定URL的驱动程序
Enumeration<Driver>getDrivers()获取带有当前调用者可以访问的所有当前已加载JDBC驱动程序的EnumerationintgetLoginTimeout()获取驱动程序试图登录到某一数据库时可以等待的最长时间,以秒为单位。voidregisterDriver(Driver
driver)向DriverManager
注册给定驱动程序voidsetLoginTimeout(int
seconds)设置驱动程序试图连接到某一数据库时将等待的最长时间,以秒为单位。6.1与数据库的连接及数据的基本操作
Driverget6.1与数据库的连接及数据的基本操作
类Connection用于管理到指定数据库的连接
方法主要功能voidclearWarning()清除为此Connection
对象报告的所有警告SQLWarninggetWarnings()获取此Connection
对象上的调用报告的第一个警告voidclose()即释放此Connection
对象的数据库和JDBC资源booleanisClosed()查询此Connection
对象是否已经被关闭voidcommit()使所有上一次提交/回滚后进行的更改成为持久更改,并释放此Connection
对象当前持有的所有数据库锁。6.1与数据库的连接及数据的基本操作
类Connection6.1与数据库的连接及数据的基本操作
StatementcreateStatement(int
resultSetType,int
resultSetConcurrency)创建一个Statement
对象,该对象将生成具有给定类型和并发性的ResultSet
对象Statement用于执行静态SQL语句并返回它所生成结果的对象
resultSetType包括:TYPE_FORWARD_ONLY1003指针只能向前移动TYPE_SCROLL_INSENSITIVE1004指针可滚动但通常不受其他的更改影响TYPE_SCROLL_SENSITIVE1005指针可滚动并且通常受其他的更改影响resultSetConcurrency包括CONCUR_READ_ONLY1007不可以更新CONCUR_UPDATABLE1008可以更新6.1与数据库的连接及数据的基本操作
Statementc6.1与数据库的连接及数据的基本操作
StatementcreateStatement()创建一个Statement
对象来将SQL语句发送到数据库StringgetCatalog()获取此Connection
对象的当前目录名称voidsetCatalog(String
catalog)设置给定目录名称DatabaseMetaDatagetMetaData()获取一个DatabaseMetaData
对象,该对象包含关于此Connection
对象所连接的数据库的元数据接口DatabaseMetaData(数据库元数据)关于数据库的整体综合信息元数据:描述数据及其环境的数据能提供基于用户的信息能支持系统对数据的管理和维护6.1与数据库的连接及数据的基本操作
Statementc6.1与数据库的连接及数据的基本操作
booleanisReadOnly()查询此Connection
对象是否处于只读模式voidsetReadOnly(boolean
readOnly)将此连接设置为只读模式CallableStatementprepareCall(String
sql)创建一个CallableStatement
对象来调用数据库存储过程CallableStatement:用于执行SQL存储过程的接口PreparedStatement:表示预编译的SQL语句的对象PreparedStatement
prepareStatement(String
sql)创建一个PreparedStatement
对象来将参数化的SQL语句发送到数据库voidrollback()取消在当前事务中进行的所有更改,并释放此Connection
对象当前持有的所有数据库锁6.1与数据库的连接及数据的基本操作
booleanisR6.1与数据库的连接及数据的基本操作
JDBC访问数据库的两种方式利用数据库产品的面向ODBC驱动程序,在JDBC和ODBC之间建立JDBC-ODBC桥,在Java程序中基于JDBC-ODBC桥的方式访问数据库基于特定数据库产品的JDBC驱动程序,在Java应用程序中利用JDBC数据驱动程序直接与数据库连接
6.1与数据库的连接及数据的基本操作
JDBC访问数据库的两6.1与数据库的连接及数据的基本操作
建立数据库连接
首先必须通过java.lang.Class类的forName()动态加载驱动程序类,加载驱动器的语句为:
Class.forName("sun.jdbc.odbc.JdbcOdbcDrvier");再向DriverManager注册JDBC驱动程序,用DriverManager类中的getConnection()方法建立与数据库的连接。
Connectioncon=DriverManager.getConnection(url,"数据库的用户名","密码");url是由三部分组成,是提供识别数据库方式的串:<protocol>:<subprotocol>:<subname>
例:如果数据源是MyDataSource,则url可以写成:
jdbc:odbc:MyDataSource6.1与数据库的连接及数据的基本操作
建立数据库连接6.1与数据库的连接及数据的基本操作
创建数据源的步骤(WindowsXP)打开控制面版—>性能和维护—>管理工具—>数据源(ODBC)在“用户DSN”中单击添加按钮
6.1与数据库的连接及数据的基本操作
创建数据源的步骤(W6.1与数据库的连接及数据的基本操作
创建数据源的步骤(WindowsXP)选择SQLServer,点击完成按钮在名称栏内写上数据源的名字,如MyDataSource服务如果是用本机的话就直接写上“.”号就可以了,如果是用别的服务器,请单击下拉按钮选择。然后单击下一步6.1与数据库的连接及数据的基本操作
创建数据源的步骤(W6.1与数据库的连接及数据的基本操作
创建数据源的步骤(WindowsXP)可以选择使用用户输入登录的ID和密码的SQLServer验证,然后设置登录SQL的用户名和密码,如用户名为sa,密码为空,然后点下一步更改默认的数据库(你处理哪个数据库中的数据,就把对应的数据库更改为默认数据库,如pubs),然后点下一步
6.1与数据库的连接及数据的基本操作
创建数据源的步骤(W6.1与数据库的连接及数据的基本操作
创建数据源的步骤(WindowsXP)直接点完成点击测试数据源,测试是否连接成功。至此数据源建立完毕。点击确定按钮退出此对话框6.1与数据库的连接及数据的基本操作
创建数据源的步骤(W6.1与数据库的连接及数据的基本操作
创建和执行JDBC语句Statement对象可将简单的查询发送到数据库。创建一个Statement对象将想要执行的SQL语句传递给适当的执行方法执行该Statement对象。
如:Statementstat=con.createStatement();对于SELECT语句,使用的方法是executeQuery()对于创建、插入或更新表的语句,使用的方法是executeUpdate()。如:
stat.executeUpdate(sql);
//sql字符串是一条SQL语句
6.1与数据库的连接及数据的基本操作
创建和执行JDBC语句6.1与数据库的连接及数据的基本操作
处理结果:JDBC将结果集返回给ResultSet对象
ResultSetrs=stat.executeQuery(sql);//sql字符串是一条SQL语句
ResultSet结果集对象所包含的常用方法如下:next():对象rs包含了结果集中显示的表,将光标移到下一行。光标初始定位于ResultSet对象第一行的上面第一次调用next()将光标移到第一行,使它成为当前行。接下来调用next()将使光标从上至下每次移动一行。getString()常用于检索CHAR和VARCHARSQL类型的数据也能检索其他基本SQL类型的数据例:如果用它检索numeric类型的数据,getString()将把numeric值转换成Java的String对象,这样一来,在数据要作为数字前就必须转换回numeric类型6.1与数据库的连接及数据的基本操作
处理结果:JDBC将结6.1与数据库的连接及数据的基本操作
getXXX():适当类型的getXXX方法可用于检索列中的数值,这里的XXX指列的数据类型检索VARCHARSQL类型数值的方法是getString()检索float类型数值的方法是getFloat()while(rs.next()){//每次调用next(),下一行就成为当前行,直到rs中再也没有可向前移动的行为止
Strings=rs.getString(strColumnName1);
floatn=rs.getFloat(strColumnName2);//strColumnName1、strColumnName2都是sql字符串中的列名
System.out.println(s+""+n);}JDBC使用两种方法标识getXXX方法检索数值的列指定列名指定列索引(列的序号),i表示第i列如:Strings=rs.getString(1);floatn=rs.getFloat(2);6.1与数据库的连接及数据的基本操作
getXXX():适当6.1与数据库的连接及数据的基本操作
与数据库连接及数据基本操作的步骤创建数据源建立数据库连接
Class.forName("sun.jdbc.odbc.JdbcOdbcDrvier");Connectioncon=DriverManager.getConnection(url,“数据库用户名”,“密码");
创建和执行JDBC语句:Statementstat=con.createStatement();执行JDBC语句,得到处理结果ResultSetrs=stat.executeQuery(sql);while(rs.next()){××变量名=rs.get××(列名或列索引);……}关闭连接:con.close6.1与数据库的连接及数据的基本操作
与数据库连接及数据基本6.1与数据库的连接及数据的基本操作
【应用扩展】使用预备语句Statement对象是可以将简单的查询发送到数据库发送带参数的查询语句到数据库,可以使用PreparedStatement对象包含一条预编译过的SQL语句DBMS不必编译就可直接运行PreparedStatement的SQL语句代替Statement对象一般会缩短执行时间PreparedStatement对象可用于不带参数的SQL语句,但在多数场合是用于带参数的SQL语句。6.1与数据库的连接及数据的基本操作
【应用扩展】使用预备语6.1与数据库的连接及数据的基本操作
【应用扩展】使用预备语句其用法如下:StringstrSql="UPDATECOFFEESSETSALES=?WHERECOF_NAMELIKE?";PreparedStatementstat=con.prepareStatement(strSql);stat.setInt(1,75);//给上面的SQL语句的第一个问号赋值stat.setString(2,"Colombian");//给上面的SQL语句的第二个问号赋值stat.executeUpdate();//相当于执行UPDATECOFFEESSETSALES=75WHERECOF_NAMELIKE‘Colombian’可用该对象制作成模板实现一次构造多条带参数的SQL语句,简化编码。6.1与数据库的连接及数据的基本操作
【应用扩展】使用预备语6.1与数据库的连接及数据的基本操作
【应用扩展】executeUpdate方法的返回值executeQuery返回一个ResultSet对象executeUpdate返回的是一个整数值,指出了表中已更新的行数。如果executeUpdate的返回值为0表明执行的语句是一不影响任何行的更新语句执行的是一无返回内容的SQL语句,比如DLL语句SQL与Java的数据类型SQL数据类型与Java的数据类型不一致在使用Java类型的应用程序与使用SQL类型的数据库之间,需要某种读写类型转换机制ResultSet类的“get”系列方法Statement及其子类的“set”系列方法都有可能要用到数据转换6.1与数据库的连接及数据的基本操作
【应用扩展】execu6.1与数据库的连接及数据的基本操作
项目43使用纯JavaJDBC实现与数据库的连接及更新JDBC-ODBC桥将JDBC数据转换为ODBC数据源,然后用ODBC与数据连接,速度比较慢。纯JavaJDBC驱动程序用纯Java语言编写独立的JDBC驱动程序直接与数据连接与数据库进行通信的整个过程均由Java语言实现,而不通过桥接或中间件来存取数据库缺点:需要下载相应的类包不同数据库的连接代码可能不同6.1与数据库的连接及数据的基本操作
项目43使用纯Jav6.1与数据库的连接及数据的基本操作
项目43使用纯JavaJDBC实现与数据库的连接及更新JDBC-ODBC桥将JDBC数据转换为ODBC数据源,然后用ODBC与数据连接,速度比较慢。纯JavaJDBC驱动程序用纯Java语言编写独立的JDBC驱动程序直接与数据连接与数据库进行通信的整个过程均由Java语言实现,而不通过桥接或中间件来存取数据库缺点:需要下载相应的类包不同数据库的连接代码可能不同6.1与数据库的连接及数据的基本操作
项目43使用纯Jav使用纯JavaJDBC驱动程序连接数据库装载驱动程序在程序中,利用Class.forName()方法加载指定的驱动程序Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");注意:连接不同的数据库时,加载的驱动程序有所不同。建立与数据库的连接首先创建指定数据库的URLjdbc:subProtlcol:subName://hostname:port;DatabaseName=XXXJDBC表示当前通过Java数据库连接进行数据库访问subProtocal表示某种驱动程序支持的数据库连接机制subName表示在当前连接机制下的具体名称hostname表示主机名。port表示相应的连接端口DatabaseName是要连接的数据库的名称。例如:Stringurl="jdbc:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为数据库名Stringuser=“sa”;//用户名Stringpassword="";//密码Connectionconn=DriverManager.getConnection(url,user,password);使用纯JavaJDBC驱动程序连接数据库6.1与数据库的连接及数据的基本操作
创建存储过程CallableStatement对象为所有的DBMS提供了一种以标准形式调用已储存过程的方法创建一个存储过程:
createprocedurepublishers_titlesasselectpub_name,titlefrompublishers,titleswherepublishers.pub_id=titles.pub_idorderbytitle将SQL语句放到一个字符串中,然后赋给变量createProcedure以备后用:StringcreateProcedure=”
createprocedurepublishers_titlesasselectpub_name,titlefrompublishers,titleswherepublishers.pub_id=titles.pub_idorderbytitle”使用Connection对象con来创建Statement对象,用于把创建存储过程的SQL语句发送给数据库:Statementstmt=con.createStatement();stmt.executeUpdate(createProcedure);存储过程publishers_titles将作为一个可调用的数据库对象在数据库中编译并存储,调用时就像调用其他方法一样6.1与数据库的连接及数据的基本操作
创建存储过程6.1与数据库的连接及数据的基本操作
从JDBC调用存储过程创建一个CallableStatement对象利用一个打开的Connection对象即可完成创建CallableStatement对象包含了存储过程的一个调用;但它不包含存储过程本身如:CallableStatementcs=con.prepareCall("{callpublishers_titles}");ResultSetrs=cs.executeQuery()注意用于执行cs的方法是executeQuery,因为cs调用的存储过程包含一个查询,执行后产生一个结果集如果存储过程包含一条更新或一条DLL语句:executeUpdate方法如果存储过程包含多条SQL语句,产生了多个结果集:execute方法6.1与数据库的连接及数据的基本操作
从JDBC调用存储过程6.2结果集元数据
项目44获取数据表的基本信息结果集元数据(ResultSetMetaData)包含结果集的相关信息如字段名和字段类型。根据结果集的元数据,可以得到一个查询结果集关于查询表中列的个数、各个列名、类型以及各个列的宽度等ResultSetMetaData的对象可以由ResultSet对象的getMetaData()方法得到。在使用结果集前,需要知道记录的行列数此类信息存储在结果集元数据中使用结果集中的成员方法“getMetaData()”,便可得到结果集元数据。ResultSetMetaDatarsmd=results.getMetaData();numCols=rsmd.getColumnCount();//从结果集元数据中取得列数6.2结果集元数据
项目44获取数据表的基本信息结果集6.2结果集元数据
项目44获取数据表的基本信息ResultSetMetaData主要方法主要功能getColumnCount()返回目前ResultSet对象的列数getColumnDisplaySize(intcolumn)返回column指定的列的最大宽度getColumnLabel(intcolumn)返回column指定列的标签getColumnName(intcolumn)返回column指定列的列名getColumnType(int)返回指定号数的字段类型6.2结果集元数据
项目44获取数据表的基本信息Resu6.2结果集元数据
【应用扩展】
数据库元数据(DatabaseMetaData)包含数据库的有关信息如表名、表索引、数据库产品名和版本号、数据库支持的操作等等。DatabaseMetaData对象的创建如下:
DatabaseMetaDatadma=con.getMetaData();//con是Connection的一个对象6.2结果集元数据
【应用扩展】数据库元数据(Data6.2结果集元数据
【应用扩展】
DatabaseMetaData类主要方法主要功能ResultSetgetCatalogs()获取可在此数据库中使用的类别名称。ResultSetgetColumns(catalog,schema,tableNames,columnNames)返回指定表名的表的所有列名getTables(catalog,schema,tablemask,types[])返回符合条件的表的描述StringgetURL()获取此DBMS的URLStringgetDriverName()获取此JDBC驱动程序的名称6.2结果集元数据
【应用扩展】DatabaseMeStringgetDriverVersion()获取此JDBC驱动程序的String
形式的版本号StringgetDatabaseProductName()获取此数据库产品的名称StringgetDatabaseProductVersion()获取此数据库产品的版本号StringgetSQLKeywords()获取此数据库的还“不”是SQL:2003关键字的所有SQL关键字的逗号分隔列表。boolean
supportsANSI92EntryLevelSQL()获取此数据库是否支持ANSI92入门级SQL语法booleansupportsANSI92FullSQL()获取此数据库是否支持受支持的ANSI92完全SQL语法booleansupportsStoredProcedures()获取此数据库是否支持使用存储过程转义语法的存储过程调用StringgetDriverVersion()获取此
参数含义catalog表所在的目录对于JDBC-ODBC数据库,可置为NULL实际上就是数据库所在文件系统的绝对路径。schema数据库的数据模式,通常置为NULL。ablemask对要获取的表的描述。如果要取得所有表名。可使用通配符“%”。types[]这是一个字符串数组,描述要获取的表的类型。如果它为NULL,将得到所有的表。如果是一个单元素的数组含有字符串“TABLES”,只得到与用户有关的表。例如:获取数据库中的表名。con=DriverManager.getConnection(url);dma=con.getMetaData();String[]types=newString[1];types[0]=“TABLES”;results=dma.getTables(null,null,“%”,types);参数含义模块6——Java数据库编程模块6——Java数据库编程6.1与数据库的连接及数据的基本操作
项目42使用JDBC-ODBC桥接实现与数据库的连接及查询数据表中的数据
JDBC的基本功能
JavaDataBaseConnectivity,Java数据库连接由一组用Java编程语言编写的类和接口组成,是一种可用于执行SQL语句的JavaAPI在java.sql包中定义6.1与数据库的连接及数据的基本操作
项目42使用JDBC6.1与数据库的连接及数据的基本操作
JDBCAPI中定义的主要类数据库驱动程序管理器类DriverManager在用户程序和数据库系统之间维护着与数据库驱动程序之间的连接实现驱动程序的装载创建与数据库系统连接的Connection类对象6.1与数据库的连接及数据的基本操作
JDBCAPI中定6.1与数据库的连接及数据的基本操作
DriverManager类的常用方法主要功能voidderegisterDriver(Driver
driver)从DriverManager
的列表中删除一个驱动程序
ConnectiongetConnection(String
url)建立到给定数据库URL的连接ConnectiongetConnection(String
url,Properties
info)建立到给定数据库URL的连接ConnectiongetConnection(String
url,String
user,String
password)建立到给定数据库URL的连接Driver:每个驱动程序类必须实现的接口6.1与数据库的连接及数据的基本操作
DriverManag6.1与数据库的连接及数据的基本操作
DrivergetDriver(String
url)查找能理解给定URL的驱动程序
Enumeration<Driver>getDrivers()获取带有当前调用者可以访问的所有当前已加载JDBC驱动程序的EnumerationintgetLoginTimeout()获取驱动程序试图登录到某一数据库时可以等待的最长时间,以秒为单位。voidregisterDriver(Driver
driver)向DriverManager
注册给定驱动程序voidsetLoginTimeout(int
seconds)设置驱动程序试图连接到某一数据库时将等待的最长时间,以秒为单位。6.1与数据库的连接及数据的基本操作
Driverget6.1与数据库的连接及数据的基本操作
类Connection用于管理到指定数据库的连接
方法主要功能voidclearWarning()清除为此Connection
对象报告的所有警告SQLWarninggetWarnings()获取此Connection
对象上的调用报告的第一个警告voidclose()即释放此Connection
对象的数据库和JDBC资源booleanisClosed()查询此Connection
对象是否已经被关闭voidcommit()使所有上一次提交/回滚后进行的更改成为持久更改,并释放此Connection
对象当前持有的所有数据库锁。6.1与数据库的连接及数据的基本操作
类Connection6.1与数据库的连接及数据的基本操作
StatementcreateStatement(int
resultSetType,int
resultSetConcurrency)创建一个Statement
对象,该对象将生成具有给定类型和并发性的ResultSet
对象Statement用于执行静态SQL语句并返回它所生成结果的对象
resultSetType包括:TYPE_FORWARD_ONLY1003指针只能向前移动TYPE_SCROLL_INSENSITIVE1004指针可滚动但通常不受其他的更改影响TYPE_SCROLL_SENSITIVE1005指针可滚动并且通常受其他的更改影响resultSetConcurrency包括CONCUR_READ_ONLY1007不可以更新CONCUR_UPDATABLE1008可以更新6.1与数据库的连接及数据的基本操作
Statementc6.1与数据库的连接及数据的基本操作
StatementcreateStatement()创建一个Statement
对象来将SQL语句发送到数据库StringgetCatalog()获取此Connection
对象的当前目录名称voidsetCatalog(String
catalog)设置给定目录名称DatabaseMetaDatagetMetaData()获取一个DatabaseMetaData
对象,该对象包含关于此Connection
对象所连接的数据库的元数据接口DatabaseMetaData(数据库元数据)关于数据库的整体综合信息元数据:描述数据及其环境的数据能提供基于用户的信息能支持系统对数据的管理和维护6.1与数据库的连接及数据的基本操作
Statementc6.1与数据库的连接及数据的基本操作
booleanisReadOnly()查询此Connection
对象是否处于只读模式voidsetReadOnly(boolean
readOnly)将此连接设置为只读模式CallableStatementprepareCall(String
sql)创建一个CallableStatement
对象来调用数据库存储过程CallableStatement:用于执行SQL存储过程的接口PreparedStatement:表示预编译的SQL语句的对象PreparedStatement
prepareStatement(String
sql)创建一个PreparedStatement
对象来将参数化的SQL语句发送到数据库voidrollback()取消在当前事务中进行的所有更改,并释放此Connection
对象当前持有的所有数据库锁6.1与数据库的连接及数据的基本操作
booleanisR6.1与数据库的连接及数据的基本操作
JDBC访问数据库的两种方式利用数据库产品的面向ODBC驱动程序,在JDBC和ODBC之间建立JDBC-ODBC桥,在Java程序中基于JDBC-ODBC桥的方式访问数据库基于特定数据库产品的JDBC驱动程序,在Java应用程序中利用JDBC数据驱动程序直接与数据库连接
6.1与数据库的连接及数据的基本操作
JDBC访问数据库的两6.1与数据库的连接及数据的基本操作
建立数据库连接
首先必须通过java.lang.Class类的forName()动态加载驱动程序类,加载驱动器的语句为:
Class.forName("sun.jdbc.odbc.JdbcOdbcDrvier");再向DriverManager注册JDBC驱动程序,用DriverManager类中的getConnection()方法建立与数据库的连接。
Connectioncon=DriverManager.getConnection(url,"数据库的用户名","密码");url是由三部分组成,是提供识别数据库方式的串:<protocol>:<subprotocol>:<subname>
例:如果数据源是MyDataSource,则url可以写成:
jdbc:odbc:MyDataSource6.1与数据库的连接及数据的基本操作
建立数据库连接6.1与数据库的连接及数据的基本操作
创建数据源的步骤(WindowsXP)打开控制面版—>性能和维护—>管理工具—>数据源(ODBC)在“用户DSN”中单击添加按钮
6.1与数据库的连接及数据的基本操作
创建数据源的步骤(W6.1与数据库的连接及数据的基本操作
创建数据源的步骤(WindowsXP)选择SQLServer,点击完成按钮在名称栏内写上数据源的名字,如MyDataSource服务如果是用本机的话就直接写上“.”号就可以了,如果是用别的服务器,请单击下拉按钮选择。然后单击下一步6.1与数据库的连接及数据的基本操作
创建数据源的步骤(W6.1与数据库的连接及数据的基本操作
创建数据源的步骤(WindowsXP)可以选择使用用户输入登录的ID和密码的SQLServer验证,然后设置登录SQL的用户名和密码,如用户名为sa,密码为空,然后点下一步更改默认的数据库(你处理哪个数据库中的数据,就把对应的数据库更改为默认数据库,如pubs),然后点下一步
6.1与数据库的连接及数据的基本操作
创建数据源的步骤(W6.1与数据库的连接及数据的基本操作
创建数据源的步骤(WindowsXP)直接点完成点击测试数据源,测试是否连接成功。至此数据源建立完毕。点击确定按钮退出此对话框6.1与数据库的连接及数据的基本操作
创建数据源的步骤(W6.1与数据库的连接及数据的基本操作
创建和执行JDBC语句Statement对象可将简单的查询发送到数据库。创建一个Statement对象将想要执行的SQL语句传递给适当的执行方法执行该Statement对象。
如:Statementstat=con.createStatement();对于SELECT语句,使用的方法是executeQuery()对于创建、插入或更新表的语句,使用的方法是executeUpdate()。如:
stat.executeUpdate(sql);
//sql字符串是一条SQL语句
6.1与数据库的连接及数据的基本操作
创建和执行JDBC语句6.1与数据库的连接及数据的基本操作
处理结果:JDBC将结果集返回给ResultSet对象
ResultSetrs=stat.executeQuery(sql);//sql字符串是一条SQL语句
ResultSet结果集对象所包含的常用方法如下:next():对象rs包含了结果集中显示的表,将光标移到下一行。光标初始定位于ResultSet对象第一行的上面第一次调用next()将光标移到第一行,使它成为当前行。接下来调用next()将使光标从上至下每次移动一行。getString()常用于检索CHAR和VARCHARSQL类型的数据也能检索其他基本SQL类型的数据例:如果用它检索numeric类型的数据,getString()将把numeric值转换成Java的String对象,这样一来,在数据要作为数字前就必须转换回numeric类型6.1与数据库的连接及数据的基本操作
处理结果:JDBC将结6.1与数据库的连接及数据的基本操作
getXXX():适当类型的getXXX方法可用于检索列中的数值,这里的XXX指列的数据类型检索VARCHARSQL类型数值的方法是getString()检索float类型数值的方法是getFloat()while(rs.next()){//每次调用next(),下一行就成为当前行,直到rs中再也没有可向前移动的行为止
Strings=rs.getString(strColumnName1);
floatn=rs.getFloat(strColumnName2);//strColumnName1、strColumnName2都是sql字符串中的列名
System.out.println(s+""+n);}JDBC使用两种方法标识getXXX方法检索数值的列指定列名指定列索引(列的序号),i表示第i列如:Strings=rs.getString(1);floatn=rs.getFloat(2);6.1与数据库的连接及数据的基本操作
getXXX():适当6.1与数据库的连接及数据的基本操作
与数据库连接及数据基本操作的步骤创建数据源建立数据库连接
Class.forName("sun.jdbc.odbc.JdbcOdbcDrvier");Connectioncon=DriverManager.getConnection(url,“数据库用户名”,“密码");
创建和执行JDBC语句:Statementstat=con.createStatement();执行JDBC语句,得到处理结果ResultSetrs=stat.executeQuery(sql);while(rs.next()){××变量名=rs.get××(列名或列索引);……}关闭连接:con.close6.1与数据库的连接及数据的基本操作
与数据库连接及数据基本6.1与数据库的连接及数据的基本操作
【应用扩展】使用预备语句Statement对象是可以将简单的查询发送到数据库发送带参数的查询语句到数据库,可以使用PreparedStatement对象包含一条预编译过的SQL语句DBMS不必编译就可直接运行PreparedStatement的SQL语句代替Statement对象一般会缩短执行时间PreparedStatement对象可用于不带参数的SQL语句,但在多数场合是用于带参数的SQL语句。6.1与数据库的连接及数据的基本操作
【应用扩展】使用预备语6.1与数据库的连接及数据的基本操作
【应用扩展】使用预备语句其用法如下:StringstrSql="UPDATECOFFEESSETSALES=?WHERECOF_NAMELIKE?";PreparedStatementstat=con.prepareStatement(strSql);stat.setInt(1,75);//给上面的SQL语句的第一个问号赋值stat.setString(2,"Colombian");//给上面的SQL语句的第二个问号赋值stat.executeUpdate();//相当于执行UPDATECOFFEESSETSALES=75WHERECOF_NAMELIKE‘Colombian’可用该对象制作成模板实现一次构造多条带参数的SQL语句,简化编码。6.1与数据库的连接及数据的基本操作
【应用扩展】使用预备语6.1与数据库的连接及数据的基本操作
【应用扩展】executeUpdate方法的返回值executeQuery返回一个ResultSet对象executeUpdate返回的是一个整数值,指出了表中已更新的行数。如果executeUpdate的返回值为0表明执行的语句是一不影响任何行的更新语句执行的是一无返回内容的SQL语句,比如DLL语句SQL与Java的数据类型SQL数据类型与Java的数据类型不一致在使用Java类型的应用程序与使用SQL类型的数据库之间,需要某种读写类型转换机制ResultSet类的“get”系列方法Statement及其子类的“set”系列方法都有可能要用到数据转换6.1与数据库的连接及数据的基本操作
【应用扩展】execu6.1与数据库的连接及数据的基本操作
项目43使用纯JavaJDBC实现与数据库的连接及更新JDBC-ODBC桥将JDBC数据转换为ODBC数据源,然后用ODBC与数据连接,速度比较慢。纯JavaJDBC驱动程序用纯Java语言编写独立的JDBC驱动程序直接与数据连接与数据库进行通信的整个过程均由Java语言实现,而不通过桥接或中间件来存取数据库缺点:需要下载相应的类包不同数据库的连接代码可能不同6.1与数据库的连接及数据的基本操作
项目43使用纯Jav6.1与数据库的连接及数据的基本操作
项目43使用纯JavaJDBC实现与数据库的连接及更新JDBC-ODBC桥将JDBC数据转换为ODBC数据源,然后用ODBC与数据连接,速度比较慢。纯JavaJDBC驱动程序用纯Java语言编写独立的JDBC驱动程序直接与数据连接与数据库进行通信的整个过程均由Java语言实现,而不通过桥接或中间件来存取数据库缺点:需要下载相应的类包不同数据库的连接代码可能不同6.1与数据库的连接及数据的基本操作
项目43使用纯Jav使用纯JavaJDBC驱动程序连接数据库装载驱动程序在程序中,利用Class.forName()方法加载指定的驱动程序Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");注意:连接不同的数据库时,加载的驱动程序有所不同。建立与数据库的连接首先创建指定数据库的URLjdbc:subProtlcol:subName://hostname:port;DatabaseName=XXXJDBC表示当前通过Java数据库连接进行数据库访问subProtocal表示某种驱动程序支持的数据库连接机制subName表示在当前连接机制下的具体名称hostname表示主机名。port表示相应的连接端口DatabaseName是要连接的数据库的名称。例如:Stringurl="jdbc:sqlserver://localhost:1433;DatabaseName=pubs";
//pubs为数据库名Stringuser=“sa”;//用户名Stringpassword="";//密码Connectionconn=DriverManager.getConnection(url,user,password);使用纯JavaJDBC驱动程序连接数据库6.1与数据库的连接及数据的基本操作
创建存储过程CallableStatement对象为所有的DBMS提供了一种以标准形式调用已储存过程的方法创建一个存储过程:
createprocedurepublishers_titlesasselectpub_name,titlefrompublishers,titleswherepublishers.pub_id=titles.pub_idorderbytitle将SQL语句放到一个字符串中,然后赋给变量createProcedure以备后用:StringcreateProcedure=”
createprocedurepublishers_titlesasselectpub_name,titlefrompublishers,titleswherepublishers.pub_id=titles.pub_idorderbytitle”使用Connection对象con来创建Statement对象,用于把创建存储过程的SQL语句发送给数据库:Statementstmt=con.createStatement();stmt.executeUpdate(createProcedure);存储过程publishers_titles将作为一个可调用的数据库对象在数据库中编译并存储,调用时就像调用其他方法一样6.1与数据库的连接及数据的基本操作
创建存储过程6.1与数据库的连接及数据的基本操作
从JDBC调用存储过程创建一个CallableStatement对象利用一个打开的Connection对象即可完成创建CallableStatement对象包含了存储过程的一个调用;但它不包含存储过程本身如:CallableStatementcs=con.prepareCall("{callpublishers_titles}");ResultSetrs=cs.executeQuery()注意用于执行cs的方法是executeQuery,因为cs调用的存储过程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏盐城市大丰区2025-2026学年四年级上学期期末语文试卷(文字版含答案)
- 2026年渔业农技服务事业单位招聘考试笔试试题(含答案)
- 2026年烟草物流外勤调度全年统筹专员烟草公司招聘考试笔试试题(含答案)
- 2026年烟草基建综合统筹岗烟草公司招聘考试笔试试题(含答案)
- 标准租赁合同
- 2026 年 PICU 儿童重症护理质控改进汇报
- 2026 年骨盆骨折合并失血性休克护理个案分享
- 2026年秋季广播电视专业开学第一课 专业社团与学术活动教学设计
- 2026年秋季小学开学第一课 学习方法与效率提升
- 2026年秋季高中数学开学第一课 学科基础知识梳理教案
- 2026年浙江省金华市辅警人员招聘考试试题及答案
- 轨道工程高处坠落场景化风险管控实施细则
- 新版2026年高考化学(云南卷)真题详细解读及评析
- 2025年钢筋工(高级)实操试题(附答案)
- 2025年四川省遂宁市检察官、法官入员额考试真题(附答案)
- 2026中国工业互联网标识解析体系完善与应用深化调研报告
- 2026中国光纤在轨道交通信号传输中的可靠性验证与批量应用报告
- 高考历史世界近代史小论文必背范文梳理
- 自动化设备外包合同
- 2023年上海历史高考试题(含答案)
- 印刷类原辅料进料检验标准
评论
0/150
提交评论