• 1. 第6章 连接数据库数据库概述 SQL介绍 JDBC技术 连接MySQL数据库 连接到不同的数据库 数据库应用实例
  • 2. 6.1 数据库概述可以把数据库看作是一种存储数据的方法,数据库模型包括层次模型、网状模型、关系模型和对象模型。 目前最常见的数据库是关系数据库,市场上使用较多的关系数据库产品有:Oracle、DB2、SQL Server、Sybase、MySQL等。
  • 3. 6.2 SQL介绍SQL全名为Structured Query Language。ANSI(美国国家标准学会)声称,SQL是关系数据库管理系统的标准语言。SQL通常用于完成一些数据库的操作任务 。 包括以下常见操作: 创建数据库 创建表 插入数据 查询数据 从表中删除数据 更新表中的数据
  • 4. 6.3 JDBC技术 6.3.1 JDBC介绍 6.3.2 JDBC的结构 6.3.3 JDBC驱动程序 6.3.4 JDBC常用接口
  • 5. 6.3.1 JDBC介绍JDBC(Java Database Connectivity):Java数据库连接,是Java程序与数据库系统通信的标准API。 由一组用Java语言编写的类和接口组成 JDBC可以做三件事 与数据库建立连接 发送SQL语句 处理结果
  • 6. 6.3.2 JDBC结构图Java应用程序JDBC APIJDBC驱动程序管理器JDBC驱动程序JDBC驱动程序JDBC驱动程序数据库数据库数据库
  • 7. 6.3.3 JDBC驱动程序4种类型的驱动程序 类型1驱动程序:JDBC-ODBC桥,通过ODBC数据源进行与数据库的连接 类型2驱动程序:直接将应用程序与网络库连接的驱动程序 类型3驱动程序:通过中间件服务器与数据库建立连接的驱动程序 类型4驱动程序:直接与数据库相连的纯Java驱动程序
  • 8. 6.3.4 JDBC的常用接口java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet
  • 9. JDBC的主要接口java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet任何驱动程序类都应该实现这个接口。读取数据库驱动器的信息、提供connect方法用于建立访问数据库所用的Connection对象
  • 10. JDBC的主要接口java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet用于管理JDBC驱动程序一个接口(使用此接口能够获得与相应数据库的连接)
  • 11. JDBC的主要接口java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet表示驱动程序与数据库之间的连接。(使用此连接可以创建一个Statement对象)
  • 12. JDBC的主要接口java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet能对数据库执行SQL语句,并得到返回的结果。
  • 13. JDBC的主要接口java.sql.Driver java.sql.DriverManager java.sql.Connection java.sql.Statement java.sql.ResultSet表示从数据库服务器返回的结果集。
  • 14. 6.4 连接MySQL数据库用JDBC连接数据库存取数据时,必须执行以下三个步骤: 用DriverManager加载及注册适当的JDBC驱动程序; 用JDBC URL定义驱动程序与数据源之间的连接,并且建立一个连接对象; 建立一个SQL陈述式对象(Statement Object),并且利用它来执行SQL语句。
  • 15. 6.4.1 在JSP中使用JDBC连接数据库在编写数据库应用程序之前,首先需要找到所要连接的数据库的驱动程序,MySQL的驱动程序称为Connector/J,读者可以在MySQL的官方网站上免费取得,网址如下:http://www.mysql.com/products/connector-j/index.html,或者直接使用光盘内附的驱动程序。 这里使用Connector/J 3.1.10作为本书范例的JDBC驱动程序,文件名为mysql-connector-java-3.1.10-bin.jar,将 JDBC驱动程序部署到TOMCAT的COMMON\LIB目录下,注意,部署完后一定要重新启动TOMCAT服务器。
  • 16. 6.4.1 在JSP中使用JDBC连接数据库下面例程实现向student表中插入一条记录的功能,本例程使用jsp_db数据库和student表。其源代码在本书配套光盘的 源代码\ch6-1目录下。 该例程的运行结果见下图。
  • 17. 6.4.1 在JSP中使用JDBC连接数据库学生信息表(student) 字段名类型长度是否是主键描述sidvarchar30是学号namevarchar30否姓名sexint1否性别,0代表女,1代表男phonevarchar16否联系电话birthdate8否出生日期
  • 18. 6.4.1 在JSP中使用JDBC连接数据库在JSP中使用JDBC连接MYSQL数据库 testdb.jsp源代码 <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%>

    在JSP中使用JDBC连接MYSQL数据库—插入数据

    <% try { Class.forName("com.mysql.jdbc.Driver").newInstance(); //装载驱动程序 Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jsp_db?user=root&password=1234"); //创建连接 Statement stmt=con.createStatement(); //创建执行语句 String upd="INSERT INTO student(sid,name,birth,sex) VALUES('012','Tom','1969/11/23',0)"; //插入一条记录 stmt.executeUpdate(upd); out.println("数据 012 tom 1969/11/23 0 已经成功插入到表student中"); stmt.close(); //关闭连接、释放资源 con.close(); } catch(Exception e) { out.println("操作失败"); e.printStackTrace(); } %>
  • 19. 6.4.2 中文问题的处理 在编写数据库应用程序的时候,往往会遇到中文问题,例如上一节我们举了在数据库表中插入记录的例子,如果读者修改程序,将插入的数据改为中文,就会发现插入到表中的数据变成了乱码。有时候,即使表中的数据都是正常的中文,但从表中查询出来显示到页面上的却是乱码。这都是由于使用的字符集不一致引起的,本节我们举个例子说明如何解决这个问题。
  • 20. 6.4.2 中文问题的处理下面例程实现学生信息录入与浏览,我们仍然采用数据库jsp_db,以及表student。 本例的程序文件列表如表所示。序号文件名文件类型功能描述1insert.html页面学生信息录入页面2insert.jsp页面将录入的学生信息插入到student表中,并从student表中查询所有记录,显示在页面上
  • 21. 6.4.2 中文问题的处理运行界面:
  • 22. 6.4.3 在JavaBean中使用JDBC连接数据库下面例程实现对student表的增加、查询、修改、和删除操作,文件结构如下:序文件名文件类型功能描述1index.html页面显示主菜单2addStudent.jsp页面添加学生信息页面3addStudent_do.jsp页面调用StudentBean的相应方法处理添加操作4deleteStudent.jsp页面列出所有学生,选择要删除的学生5deleteStudent_do.jsp页面调用StudentBean的相应方法处理删除操作6modifyStudent.jsp页面列出所有学生,选择要修改的学生7modifyStudent_pro.jsp页面修改学生信息页面8modifyStudent_do.jsp页面调用StudentBean的相应方法处理修改操作9viewStudent.jsp页面显示所有学生的信息10searchStudentBySid.jsp页面根据学号查询学生,显示查询结果11DataBaseConnection.javaJava Bean连接数据库12Student.javaJava Bean封装学生信息的bean13StudentUtil.javaJava Bean实现对学生信息的增、删、改、查操作
  • 23. 6.4.3 在JavaBean中使用JDBC连接数据库系统运行界面:主菜单页面
  • 24. 6.4.3 在JavaBean中使用JDBC连接数据库系统运行界面:添加学生信息页面
  • 25. 6.4.3 在JavaBean中使用JDBC连接数据库系统运行界面:删除学生信息页面
  • 26. 6.4.3 在JavaBean中使用JDBC连接数据库系统运行界面:修改学生信息页面
  • 27. 6.4.3 在JavaBean中使用JDBC连接数据库系统运行界面:查询学生信息结果页面
  • 28. 6.4.4 连接池技术连接池技术的原理是在WEB服务器启动的时候就与数据库建立很多的Connection连接对象,并将它们存储起来,就象一个连接池,需要的时候就从连接池中取出一个连接,使用完毕后再释放回连接池,让JSP与数据库之间能够获得最大的执行效率。
  • 29. 6.5 连接到不同的数据库 1、连接到Oracle 我们使用Thin模式连接Oracle,将驱动程序包classes12.jar部署到应用程序的WEB-INF\lib下。 Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"; //orcl为所连接数据库的SID String user="scott"; String password="tiger"; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  • 30. 6.5 连接到不同的数据库 2、连接到MS SQLServer 将驱动程序包mssqlserver.jar、msbase.jar、msutil.jar部署到应用程序的WEB-INF\lib下。 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs"; //pubs为所连接的数据库的名称 String user="sa"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  • 31. 6.5 连接到不同的数据库 3、连接到DB2 将驱动程序包:db2java.zip文件,部署到应用程序的WEB-INF\lib下。 Class.forName("com.ibm.db2.jdbc.app.DB2Driver ").newInstance(); String url="jdbc:db2://127.0.0.1:5000/sample"; //sample为所连接的数据库的名称 String user="admin"; String password=""; Connection conn= DriverManager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
  • 32. 6.6 数据库应用实例 网上购物程序文件结构: 序号文件名文件类型功能描述1login.jsp页面用户登录2logout.jsp页面用户注销3reg.jsp页面用户注册4booklist.jsp页面网上购书主页,显示所有图书列表5purchase.jsp页面录入某本书的购买数量6shoperlist.jsp页面购物车页面,显示已加入到购物车中的图书信息7ConnMySql.javaJava Bean连接数据库8BookDB.javaJava Bean实现对图书信息的查询和分页显示功能9Cart.javaJava Bean实现对购物车的操作10Login.javaJava Bean处理登录11UserDB.javaJava Bean实现用户信息的插入功能12UserInfo.javaJava Bean封装用户的信息13BookInfo.javaJava Bean封装图书的信息14Item.javaJava Bean封装购物车中的一个购买条目的信息
  • 33. 6.6 数据库应用实例各组件间的调用关系 ⑧修改购物车⑦查看购物车⑥加入购物车⑤购买图书 输入数量④查询图书②验证用户③进入主页login.jspbooklist.jspshoperlist.jsppurchase.jspLoginBookDBCart①登录
  • 34. 6.6 数据库应用实例程序运行界面:用户注册页面
  • 35. 6.6 数据库应用实例程序运行界面:购书页面
  • 36. 6.6 数据库应用实例程序运行界面:录入购买数量页面
  • 37. 6.6 数据库应用实例程序运行界面:购物车页面