第10章 数据库编程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

清华大学出版社JavaEE基础教程第10章数据库编程10.1MySql数据库的安装与配置10.2JDBC技术简介10.3JDBC访问数据库10.4数据库的操作示例JavaEE基础教程22020年1月23日星期四10.1MySql数据库的安装与配置TitleMySql数据库的安装TitleMyEclipse中连接和使用MySql数据库返回JavaEE基础教程32020年1月23日星期四MySql数据库的安装返回MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracal收购。目前MySQL被广泛地应用在Internet上的中小型网站中。数据库的安装步骤:运行setup.exe进行安装,选典型安装是否要创建一个Mysql网站登录用户,这里选skipsign-up配置数据库给出服务名称设置数据库root账号的密码安装完成之后,从开始菜单运行MySql命令程序,出现命令行窗口JavaEE基础教程42020年1月23日星期四MyEclipse中连接和使用MySql数据库在MyEclipse中可建立与数据库的连接,并可修改和查看已连接的数据库,给编程带来很大的方便。在建立连接之前要准备MySql数据库的JDBC驱动程序,此处驱动程序为mysql-connector-java-3.1.12-bin.jar,此程序可在源代码javaEE\WebRoot\WEB-INF\lib目录下找到。在MyEclipse中建立好数据库连接后可通过DBBrowser窗口查看连接的数据库及其中的表返回JavaEE基础教程52020年1月23日星期四JDBC是Javadatabaseconnectivity的缩写。JDBC是Sun提供的一套数据库编程接口API函数,由Java语言编写的类、界面组成。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统。JDBC为程序开发提供了标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准接口。10.2JDBC技术简介10.2JDBC技术简介返回JavaEE基础教程62020年1月23日星期四JDBC的工作原理Java应用程序JDBCAPIJDBCDriverManagerJDBC驱动SqlServerJDBC驱动MysqlJDBC驱动Oracle返回JavaEE基础教程72020年1月23日星期四JDBCAPI是一组由Java语言编写的类和接口,其包含在JDK的java.sql和javax.sql两个包中Java.sql为核心包,它包括了JDBC1.0规范中规定的API和新的核心APIjavax.sql包扩展了JDBCAPI的功能,使其从客户端发展了服务器端,成为了JavaEE组成的一部分。10.2JDBC技术简介返回JavaEE基础教程82020年1月23日星期四JDBC驱动程序的分类10.2JDBC技术简介JDBC-ODBC通过ODBC驱动器提供数据库连接,要求在客户安装ODBC驱动JDBC本地API驱动把客户机上的JDBC调用转换为对应的DBMS的调用JDBC网络纯Java驱动程序将JDBC调用转换为与DBMS无关的网络协议本地协议纯Java驱动将JDBC调用直接转换为DBMS所使用的网络协议返回JavaEE基础教程92020年1月23日星期四10.3JDBC访问数据库JDBCAPI中主要用到java.sql包中的如下几个类和接口DriverManger(类)Connection(接口)Statement(接口)PreparedStatement(接口)ResultSet(接口)返回JavaEE基础教程102020年1月23日星期四DriverManager类DriverManager类是JDBC的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。在使用此类之前,必须先加载数据库驱动程序加载方式:Class.forName(JDBC数据库驱动程序)返回JavaEE基础教程112020年1月23日星期四注意事项在加载驱动程序之前,必须确保驱动程序已经在Java编译器的类路径中,否则会抛出找不到相关类的异常信息。不同的数据库其JDBC驱动程序是不同的,下面给出了常用的数据库的JDBC驱动程序的写法:Mysql数据库驱动:com.mysql.jdbc.DriverSQLServer2005数据库驱动:com.microsoft.sqlserver.jdbc.SQLServerDriverOracel数据库驱动:com.microsoft.sqlserver.jdbc.SQLServerDriver返回JavaEE基础教程122020年1月23日星期四Connection接口数据库驱动程序加载之后,可以调用DriverManagergetConnection()方法得到数据库的连接。在DriverManager类中定义了三个重载的getConnection()方法,分别如下:staticConnectiongetConnection(Stringurl);staticConnectiongetConnection(Stringurl,Propertiesinfo);staticConnectiongetConnection(Stringurl,Stringuser,Stringpassword);返回JavaEE基础教程132020年1月23日星期四Connection接口方法中的参数含义如下:url:表示数据库资源的地址;info:是一个java.util.Properties类的实例;user:是建立数据库连接所需用户名;password:是建立数据库所需的密码。返回JavaEE基础教程142020年1月23日星期四Connection接口其中url是建立数据库连接的字符串,不同的数据库其连接字符串也不一样。常用的数据库连接字符串如下:Mysql数据库:jdbc:mysql://主机名:3306/数据库名SQLServer2005数据库:jdbc:sqlserver://主机名:1433;databaseName=数据库名Oracle数据库:jdbc:oracle:thin:@主机名:1521:数据库名返回JavaEE基础教程152020年1月23日星期四Connection接口例10-1通过JDBC驱动与Mysql数据库中的books数据库建立连接。程序清单:ConnectionManager.java此示例演示了如何加载数据库驱动程序及如何获得一个数据库的连接.返回JavaEE基础教程162020年1月23日星期四Statement接口Statement接口对象用于将普通的SQL语句发送到数据库中。建立了到数据库的连接后,就可以创建Statement对象。Statement接口对象可以通过调用Connection接口的createment()方法创建。示例代码如下:Connectioncon=DriverManager.getConnection(url,”user”,”password”);Statementstmt=con.createStatement();返回JavaEE基础教程172020年1月23日星期四Statement接口Statement接口提供了四种执行SQL语句的方法:executeQuery()executeUpdate()executeBatch()execute()。返回JavaEE基础教程182020年1月23日星期四Statement接口executeUpdate()方法用于更新数据,如执行INSERT、UPDATE和DELETE语句及SQLDDL(数据定义)语句,这些语句都不返回记录集,而是返回一个整数,表示受影响的行数。其方法原型:intexecuteUpdate(Stringsql);executeQuery()方法用于执行SELECT语句,此方法返回一个结果集,其类型为ResutSet。ResultSet是一个数据库游标,通过他可访问数据库中的记录,在后面有详细讲解。executeQuery()方法原型:ResultSetexecuteQuery(Stringsql);返回JavaEE基础教程192020年1月23日星期四Statement接口例10-2已知数据库books中有一个titles表,表的结构如下:图书表titles的结构字段类型说明ISBNVarchar(20)Isbn号titleVarchar(100)书名copyrightVarchar(4)版权imageFileVarchar(20)封面图像文件名称editionNumberINTEGER版本号publisherIDINTEGER出版商IDpriceDOUBLE价格返回JavaEE基础教程202020年1月23日星期四Statement接口用Statement对象查询显示titles表中所有图书的ISBN号和图书名。数据库的连接可以调用例10-1所定义的类ConnectionManager的getConnection()方法获得。程序清单:ShowTitles.java返回JavaEE基础教程212020年1月23日星期四PreparedStatement接口PreparedStatement接口继承Statement接口,所以它具有Statement的所有方法,同时添加了一些自己的方法。PreparedStatement与Statement有以下两点不同:PreparedStatement接口对象包含已编译的SQL语句;PreparedStatement接口对象中的SQL语句可包含一个或多个IN参数,也可用“?”作为占位符。返回JavaEE基础教程222020年1月23日星期四PreparedStatement接口PreparedStatemen对象可以通过调用Connection接口对象的prepareStatement()方法得到。代码示例如下:Connectioncon=DriverManager.getConnection(url,”user”,”password”);PreparedStatementpstmt=con.preparedStatement(Stringsql);返回JavaEE基础教程232020年1月23日星期四PreparedStatement接口创建PreparedStatement对象与创建Statement对象不同点:在创建PreparedStatement对象时需要SQL命令字符串作为preparedStatement()方法的参数在调用PreparedStatement对象的executeQuery()或executeUpdate()方法执行查询时,不再需要参数使用PreparedStatement对象的SQL命令字符串中可用“?”作为占位符返回JavaEE基础教程242020年1月23日星期四PreparedStatement接口例10-3利用PreparedStatement对象在userinfo表中插入一条记录,用户名为admin,密码为:11。Userinfo表的结构如表所示。字段类型说明userIdint用户IDloginNameVarchar(20)用户名passwordVarchar(20)密码程序清单:InsertUser.java返回JavaEE基础教程252020年1月23日星期四ResultSet接口ResultSet接口用于获取执行SQL语句/数据库存储过程返回的结果,它的实例对象包含符合SQL语句中条件的所有记录的集合,并且它可以通过一套getXXX()方法提供对这个集合的访问。next()方法用于移动数据库游标到记录集中的下一行

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功