网络程序设计杨谊1第8章JSP数据库技术2数据库概览为什么要使用数据库?怎么设计数据库?数据库有哪些类型?3数据库概览为什么要使用数据库?为了把数据和信息持久地保存下来。session,application都不能持久地保存数据和信息。4数据库概览为什么要使用数据库?怎么设计数据库?根据实际问题的需要来设计。完善的网页版猜数字游戏:持久保存用户名,用户密码,用户得分,用户等级,等。网络购物系统:持久保存全部商品集合,用户集合,购物车内的商品集合,等。5数据库概览为什么要使用数据库?怎么设计数据库?数据库的组织结构是怎样的?库表:字段视图函数事件查询6数据库概览为什么要使用数据库?怎么设计数据库?数据库有哪些类型?层次数据库系统网状数据库系统关系数据库系统(目前最常用)7数据库概览为什么要使用数据库?怎么设计数据库?数据库有哪些产品?SQLServer,Access(Microsoft)MySQL(小型,灵活)(Sweden,AB)ORACLE(ORACLE)DB2,Informix(IBM)Sybase(Sybase)8数据库概览为什么要使用数据库?怎么设计数据库?数据库有哪些产品?FoxBase,FoxPro,Access(小型)MySQL,SQLServer,Informixr(中型)ORACLE,DB2,Sybase(大型)9用MySQL设计一个数据库安装MySQL安装Navicat(MySQL的可视化工具)建立数据库建立数据表(结构,内容)10本章目的与任务了解JDBC技术(任务一)掌握JDBC常用接口的使用(任务二)掌握操作数据库的方法(任务三)JDBC应用(任务四)123411关系型数据库管理系统RelationalDatabaseManagementSystems关系型数据库通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。数据以行和列的形式存储,各数据项之间用关系来组织。常用的RDMS有哪些?12进行数据库操作的过程(1)和一个数据库建立连接;(2)向数据库发送SQL语句;(3)处理数据库返回的结果。???Step1:和一个数据库建立连接13ODBC简介ODBC是一种用于多种DBMS的标准应用程序接口。应用程序通过ODBC访问数据库:安装某数据库的ODBC驱动(由DBMS厂家提供)用户建一个数据源通过ODBC驱动与数据库连接在应用程序中以SQL语言来存取连接到的数据源用户应用程序ODBC驱动管理程序ODBCAccess驱动程序ODBCSQLServer驱动程序ODBCOracle驱动程序Access数据库SQLServer数据库Oracle数据库14JDBC的出现ODBC是用C语言开发的,主要在Windows环境中使用。如果用其他语言(如java)开发应用程序,需要中介的API来和ODBC做沟通连接,是一件复杂的事。JDBC是JAVA数据库连接(JavaDataBaseConnectivity)技术,是为各种常用数据库提供无缝连接的技术,提供了标准应用程序设计接口(API),使开发人员可以用纯Java语言编写完整的数据库应用程序。15JDBC的工作原理1.与数据库建立连接2.向数据库发送SQL语句3.处理数据库返回的结果JDBCApplicationJDBCAPIJDBCDriverManagerJDBCDriverJDBCDriver数据库数据库厂商提供的驱动程序分为四类16本章目的与任务了解JDBC技术(任务一)掌握JDBC常用接口的使用(任务二)掌握操作数据库的方法(任务三)JDBC应用(任务四)123417JDBC驱动程序按照连接方式的不同分为四种类型:Type1:JDBC-ODBCBridgeType2:NativeAPIBridgeType3:JDBC-MiddlewareType4:PureJDBCDriver18结果集SQL语句你写的应用程序JDBC-ODBC桥接器ODBCDriver数据库第一类:JDBC-ODBC桥接器将JDBC数据转换成ODBC数据源,再利用ODBC与数据库沟通JDBC没有独立性,性能不高多用于测试,或部分企业网。19结果集SQL语句你写的应用程序JDBC驱动程序原生驱动程序数据库特殊沟通方式特殊沟通方式第二类:原生API驱动程序函数库的外层是java程序,底层转换成DBMS所指定的原生码(C/C++)。不使用ODBC,但也失去JDBC的独立性。20结果集SQL语句你写的应用程序JDBC驱动程序中介软件数据库特殊沟通方式特殊沟通方式第三类:JDBC通过网络的纯JAVA驱动程序驱动程序传送JDBC指令到一个中间软件,该中间软件再将JDBC要求传送到DBMS。JDBC独立灵活。21结果集SQL语句你写的应用程序JDBC驱动程序数据库第四类:原生协议及纯JAVA驱动程序需要掌握这所有的类型吗?推荐使用第四类,其他类型要能看懂。由纯JAVA写成,直接与数据库沟通。性能最好。22工具:Jar包的引用ORACLESQLDB2MYSQL在项目的lib中要引入相应的.jar包,支持数据库操作。复制到工程下的WebRoot\WEB-INF\lib中。如果没有lib这个包就手动创建一个。SQLServer为例:环境变量classpath:C:ProgramFilesMicrosoftSQLServer2000DriverforJDBClibmsbase.jar;C:ProgramFilesMicrosoftSQLServer2000DriverforJDBClibmssqlserver.jar;C:ProgramFilesMicrosoftSQLServer2000DriverforJDBClibmsutil.jar建议将以上三个文件拷贝至jvm机所在的lib或class目录下。23Jar包举例MySQL5驱动包:mysql-connector-java-5.1.5-bin.jarcom.mysql.jdbc.Driverjdbc:mysql://localhost:3306/testOracle9驱动包:class12.jaroracle.jdbc.driver.OracleDriverjdbc:oracle:thin:@host:port:databseMSSQL2000(需要打补丁开启1433端口,sp3或者sp4补丁)驱动包:msbase.jar,mssqlserver.jar,msutil.jarcom.microsoft.jdbc.sqlserver.SQLServerDriverjdbc:microsoft:sqlserver://localhost:1433;databaseName=testMSSQL2005(不需要打补丁就可以开启1433端口)驱动包:sqljdbc.jarcom.microsoft.sqlserver.jdbc.SQLServerDriverjdbc:sqlserver://localhost:1433;databaseName=testSQLlite驱动包:sqlite-jdbc-3.6.16.jarorg.sqlite.JDBCjdbc:sqlite:/d:/Java/MyApp/sqllite/clientData.db3(这里注意盘符最好小写)24MySQL的JDBC驱动在MyEclipse中的配置在项目上右单击,在属性菜单中单击“BuildPath”-“ConfigureBuildPath…”。单击“ConfigureBuildPath…”,弹出对话框,选择卡“Libraries”-“AddExternalJARS…”,找到MySQLJDBC驱动所在位置后点击“打开”,MySQLJDBC驱动在MyEclipse中配置完成。25262728工具:JDBCAPIDriver接口:加载数据库驱动。Connection接口:建立数据库连接。Statement接口:调用SQL语句进行数据库操作。PreparedStatement接口:简化操作,提高效率,加强安全性。ResultSet接口:返回查询结果。29本章目的与任务了解JDBC技术(任务一)掌握JDBC常用接口的使用(任务二)掌握操作数据库的方法(任务三)JDBC应用(任务四)123430步骤1、JDBC连接数据库(1)用DriverManager加载及注册JDBC驱动程序(2)用JDBCURL定义驱动程序与数据来源之间的连接,并且建立一个连接对象注意:须先打开数据库系统的服务项:管理工具-服务31步骤1、JDBC连接数据库(1)用DriverManager加载及注册JDBC驱动程序用java.lang.Class类的forName()方法加载MYSQL驱动程序Class.forName(com.mysql.jdbc.Driver);加载SQLServer驱动程序Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);加载ORACLE驱动程序Class.forname(oracle.jdbc.driver.OracleDriver);加载JDBC-ODBC桥驱动程序(先在Windows中配置好ODBC数据源)Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);32步骤1、JDBC连接数据库(2-1)用JDBCURL定义驱动程序与数据源的连接protocol:subprotocol:datasourceidentifier主要通信协议次要通信协议数据来源(驱动程序名称)例:用MySQL驱动连接数据库Stringurl=Jdbc:mysql://localhost:3306/sample_db?user=root&password=your_password;各种数据库连接大同小异,区别的是Driver和URL,其他区别不大。(2-2)建立一个连接对象用DriverManager.getConnection()建立一个连接对象Connectioncon=DriverManager.getConnection(url);33扩展内容:JAVA连接常见数据库Mysql:StringDriver=com.mysql.jdbc.Driver;//驱动程序StringURL=jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=utf-8;//URL,db_name为连接的数据库名StringUsername=username;//用户名StringPassword=password;//密码Class.forName(Driver).newInstance();//加载数据库驱动Connectioncon=DriverManager.getConnection(URL,Username,Password);//建立连接对象34//连接MySql数据库的代码段try{StringdriverClass=com.mysql.jdbc.Driver;Stringurl=jdbc:mysql://localhost/bookdb?user=root&password=1234;//蓝色部分为自定义的数据库名,安装MySql时设置的用户名和密码Stringusername=;Stringpassword=;//防止数据库中文乱码useUnicode=true&characterEncoding=GBKClass.forName(driverClass).newInstance();Connectionconn=DriverManager.getConnection(url);Statementstmt=conn.c