java显示数据库表格-java显示数据库表格
《第7章 Java数据库编程.ppt》由会员分享,可在线阅读,更多相关《第7章 Java数据库编程.ppt(38页珍藏版)》请在人人文库网上搜索。
第7章Java数据库编程,本章要点关系数据库的概念。SQL语言的特点。MySQL数据库的安装和常用命令的使用SQL常用语句的格式及用法。JDBC的概念。JDBC访问数据库的方法。数据库编程实例。,本章难点SQL的基本用法。MySQL常用命令的用法。JDBC访问数据库的方法。数据库编程。,7.1关系数据库简介,7.1.1关系数据库数据库是相互关联的数据集合,是管理和组织信息和数据的综合系统。用二维表格的形式来表示实体和实体之间联系的数据库模型称为关系型数据库模型,以关系模型作为数据的组织存储方式的数据库称为关系数据库。在关系数据库中,不但实体用表格来表示,实体之间的关系也用表格来表示。表格是二维的,是由许多行和列组成的,二维表格的列称为字段(Fields),行称为记录(Records)。由这些行和列形成的表格称为一个表(Table),许多这样的表就组成了一个关系数据库(Database)。,7.1.2MySQL数据库简介,MySQL是一个多用户、多线程的关系数据库管理系统,由于它操作简便、运行速度快、多线程、多用户、跨平台等特点,得到了广泛的应用。它还是个开源的数据库,用户可以直接从网上下载,用于个人或商业用途,不必支付任何费用。
MySQL的主要技术特点:完全多线程,支持多CPU。它通过一个高度优化的类库实现函数库,速度快,没有内存漏洞。多平台,包括Windows、Solaris、SunOS、UNIX、Linux等。,有多种数据类型,包括integers、float、double、char、varchar、text、blob、date、time、datetime、year、enum。提供C、C+、Java、Perl、PHP、和TCL的API接口。非常灵活和安全的权限系统,密码加密。可处理大型数据(超过5000万条记录)。多种语言支持。,7.1.3MySQL的下载和安装,MySQL数据库可以从官方网站下载,它的URL是:,7.1.4MySQL数据库基本操作指令,MySQL数据库的启动和停止命令格式:netstart/stopmysql连接到mysql数据库。命令格式:mysql-h主机-u用户名p用户密码增加新用户命令格式:grant权限列表on数据库.*to用户名主机identifiedby“密码”;显示数据库名列表命令格式:showdatabases;,打开数据库命令格式:use数据库名;显示数据库中的数据表命令格式:showtables;退出mysql命令命令格式:exit;修改用户密码命令格式:mysqladminu用户名p旧密码password新密码这是DOS环境下的命令,注意p后面不留空格。
注:-u和-p后面可以不加空格。,数据库备份(导出)命令格式:mysqldump-u用户名p密码-databases数据库名表文件名数据库恢复(导入)命令格式:mysqlu用户名p密码数据库名test.sql其中,root是用户名,123321是该用户的密码,备份成功后,在当前目录下生成了文件test.sql。,例7-7:从例7-6中的备份文件test.sql中恢复数据库test。在DOS提示符下输入以下命令:mysqlurootp123321testtest.sql,7.2SQL语言基础,7.2.1SQL语言简介SQL是StructuredQueryLanguage的缩写,即结构化查询语言。它是1974年由Boyce和Chamberlin提出来的,用来实现关系运算中数据查询、数据操纵、数据定义等操作的语言,是一种综合的、功能极强的同时又简单易学的语言。它集数据查询(DataQuery)、数据操纵(DataManipulation)、数据定义(DataDefinition)和数据控制(DataControl)等功能于一体,具有以下特点:,一体化特点高度非过程化视图操作方式不同使用方式的语法结构相同语言简洁,易学易用SQL语言的动词数据查询SELECT数据定义CREATE,DROP,ALTER数据操纵INSERT,UPDATE,DELETE数据控制GRANT,REVOKE,7.2.2常用SQL基本语句,create语句功能是创建数据库、创建数据表、创建视图等。
create语句格式:建立数据库:createdatabase数据库名defaultcharactersetgbk;建立数据表:createtable数据表名(字段名1属性,字段名2属性,字段名n属性);,字段的属性包括字段类型、字段宽、小数位、约束。其中约束有主键约束、外键约束、非空约束等,字段之间以逗号分隔。在数据表中设置自动编号字段可在该字段声明时加上auto_increment关键字,并将该字段设为主键。例如:createtablemytable(idint(4)auto_increment,namechar(14),ageint(4),primarykey(id);该命令建立一个数据表mytable,字段id为主键,且被设为自动编号字段。添加记录时,id字段的默认值是前一个记录的值加1。,describe语句格式describe数据表名;describe语句的功能是显示数据表的结构,即显示字段名及其属性。insert语句格式:insertinto表名(字段名1,字段名2,字段名n)values(字段1的值,字段2的值,字段n的值);,select语句SELECT语句的功能是从数据表中检索数据,并将结果以表格的形式返回,还能实现统计查询结果,合并结果文件,作多表查询和对结果排序等操作。
格式:SELECTALL|DISTINCT别名.选项,别名.选项FROM表名别名,表名别名WHERE条件表达式AND条件表达式GROUPBY分组选项,分组选项HAVING组条件表达式ORDERBY排序选项ASC|DESC,排序选项ASC|DESC,命令中各参数的含义如下:SELECT是该命令的主要关键字。ALL|DISTINCT:表示ALL和DISTINCT任选其一,ALL表示所有的记录,DISTINCT表示去掉重复记录。FROM表名别名:表示被检索的数据表,表名之间用逗号分隔,这里的别名表示数据表的另一个名字,可以由用户定义。一旦定义了别名,可以在以后的命令中用别名代替表名。WHERE条件表达式:表示检索条件。GROUPBY分组选项:表示检索时,可以按某个或某些字段分组汇总,各分组选项之间用逗号分隔。HAVING组条件表达式:表示分组汇总时,可以根据组条件表达式检索某些组记录。ORDERBY排序选项:表示检索时,可以按指定字段排序,ASC为升序,DESC为降序。,SELECT命令的基本结构是SELECTFROMWHERE,含义是输出字段数据来源查询条件,在这种固定模式中,可以不要WHERE,但是必须有SELECT和FROM。
,delete语句delete语句的功能是从数据表中删除记录。格式:deletefrom数据表名where条件表达式update语句update语句的功能是修改数据表中记录的值。格式:update表名set字段名=表达式where条件表达式,drop语句drop语句的功能是删除数据库或数据表。删除数据库格式:dropdatabase数据库名;删除数据表格式:droptable数据表名;,alter语句alter语句的功能是修改表的结构、增加新的字段。格式:修改表的结构:altertable表名modify字段名属性;增加新字段:altertable表名add字段名属性;,7.3Java程序对数据库的访问与操作(JDBC),7.3.1数据库应用模型Client/Server系统客户机/服务器(Client/Server,简称C/S)模型将对数据的处理划分成不同的应用程序,并分布到不同的机器上。一个C/S程序将对数据的存储和检索交给数据库处理java显示数据库表格,而将对数据的操作和获得放到其他地方。服务器是数据库引擎,负责数据的存储;客户机则负责创建和获得数据。Browser/Server系统三层C/S结构三层Client/Server结构将Client端与用户界面无关的功能移到了中间层(第二层)。
所谓三层结构包括:表示层(PresentationLayer)、应用层(ApplicationLayer)和数据层(DatastoreLayer)。,B/S结构是由三层Client/Server结构转化而来的。它将Web浏览器作为表示层,将大量的业务处理程序放在应用服务器上作为应用层java显示数据库表格,而将数据库放在数据库服务器上作为数据层。,7.3.2JAVA通过JDBC访问数据库,JDBC(JavaDataBaseConnectivity)是用于执行SQL语句的Java应用程序接口(API),JDBC由一组用Java语言写成的类和接口组成,是一种连接不同数据库的规范,其宗旨是让各数据库开发商为Java程序员提供标准的数据库访问类和接口。,用JDBC开发数据库应用的原理如图所示:,JDBCAPI是一系列抽象的接口,它使得应用程序员能够进行数据库连接,执行SQL语句,并得到返回结果。这些重要的接口是:java.sql.DriveManager用来处理装载驱动程序并且为创建新的数据库连接提供支持;java.sql.Connection用于完成对特定定数据库的连接;java.sql.Statement用于对特定的数据库执行SQL语句;java.sql.Statement又包含了以下两个重要的子类型:jva.sql.PreparedStatement用于执行预编译的SQL语句;java.sql.CallableStatement用于执行数据库中存储的过程的调用;java.sql.ResultSet用于保存查询所得的结果集。
,Java使用JDBC访问数据库需要完成以下步骤:加载合适的JDBC驱动程序:Class.forName(Driver);MySQL驱动程序:com.mysql.jdbc.DriverOracle驱动程序:oracle.jdbc.driver.OracleDriverSQLServer驱动程序:com.Microsoft.jdbc.sqlserver.SQLServerDriver建立数据库连接与MySQL数据库连接的方法:Connectioncon=DriverManager.getConnection(“jdbc:mysql:/主机IP或主机名:3306/数据库名”,用户名,密码);,与Oracle数据库连接的方法:Connectioncon=DriverManager.getConnection(“jdbc:oracle:thin:主机IP或主机名:1521:数据库名”,用户名,密码);与SQLServer数据库连接的方法:Connectioncon=DriverManager.getConnection(“jdbc:microsoft:sqlserver:/主机IP或主机名:1433:数据库名”,用户名,密码);,创建Statement对象Statementst=con.createStatement();利用Statement对象可以执行静态SQL语句,静态SQL语句可以是Select语句、Delete语句、Update语句和Insert语句。
也可以使用Connection对象的preparedStatement()方法创建一个preparedStatement对象,用于执行动态SQL语句。动态SQL语句用“?”作为所有动态参数的占位符,先进行预编译,当给占位符所在的变量赋值后,再执行该动态SQL语句。,例:str=insertintomycustomervalues(?,?,?,?,?);PreparedStatementpst=con.prepareStatement(str);id=5;/各变量赋值name=qiansheng;age=34;address=wenzhou;email=qiansheng;pst.setInt(1,id);/设置占位符对应的变量值pst.setString(2,name);pst.setInt(3,age);pst.setString(4,address);pst.setString(5,email);pst.execute();,执行SQL语句Statement接口提供了许多创建和执行SQL语句的方法。其中,executeQuery()方法执行SQLselect语句,返回包含满足指定SQL语句条件的记录组成的结果集;executeUpdate()方法执行SQL的更新语句,包括Update语句、Delete语句和Insert语句。
例:str=insertintocustomervalues(wangyang,24,beijing,wangyang);intrecordNumber=st.executeUpdate(str);执行executeUpdate()方法返回该SQL语句涉及的记录数。str=select*frommycustomer;/查询表中记录ResultSetrs=st.executeQuery(str);由于SQL语句是select,用executeQuery()方法,返回一个结果集保存在ResultSet对象rs中。,处理ResultSet对象中的数据。例:while(rs.next()id=rs.getInt(id);name=rs.getString(cName);age=rs.getInt(cAge);address=rs.getString(cAddress);email=rs.getString(cEmail);System.out.println(id+name+age+address+email);,关闭连接。例:rs.close();st.close();con.close(),7.4数据库编程实例,在eclipse中连接MySQL数据库,要把MySQL驱动程序包添加到项目中,操作步骤:(1)在Eclipse中新建项目(2)在Eclipse的“包资源管理器”中右击新建的项目名,选“构建路径”“配置构建路径”,弹出“Java构建路径”对话框,选择“库”选项卡点击“添加外部JAR”按钮,出现“选择JAR”对话框,打开MySQL驱动程序文件夹,选中其驱动程序包:mysql-connector-java-5.0.0-beta-bin.jar单击“打开”按钮单击“确定”按钮,操作完成。
在“包资源管理器”会增加一个驱动程序包。,例7-12:使用JDBC技术访问数据库。importjava.sql.*;publicclassUseJDBCpublicstaticvoidmain(Stringargs)throwsSQLException,ClassNotFoundExceptionClass.forName(com.mysql.jdbc.Driver);Connectionconn=DriverManager.getConnection(jdbc:mysql:/127.0.0.1:3306/mydatabase,root,123456);Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(selectid,name,passwordfromuserinfo);/执行select语句,结果集保存在rs中,while(rs.next()System.out.print(rs.getInt(1)+);System.out.print(rs.getString(2)+);System.out.println(rs.getString(3);rs.close();/关闭连接对象stmt.close();conn.close();,例7-13例7-14例7-15,7.5本章小结,本章主要介绍了关系数据库的基本概念,MySQL数据库的安装和使用,SQL语言的特点,常用SQL语句的基本用法,JDBC访问数据库的方法。通过实例演示了创建表、插入记录、查询记录、修改表结构、获取字段参数的方法。,