JSP中实现数据库操作

  • 格式:ppt
  • 大小:453.00 KB
  • 文档页数:38

下载文档原格式

  / 38
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通过“复制” 到项目lib文件夹中加载驱动程序
案例3-1实现
3.编写访问数据库Java程序:researchdb.java
public class researchdb { public static void main(String[] args) throws Exception { try { Class.forName("com.mysql.jdbc.Driver"); //注册Mysql驱动 //获取数据库连接,设置数据库名为mydatabase, Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "root", "root"); Statement stat = conn.createStatement(); //创建Statement对象,准 备执行SQL语句 ResultSet rs = stat.executeQuery("select * from user");//执行SQL while (rs.next()) { //显示结果集对象中的数据 System.out.print(rs.getString("name") + " "); System.out.println(rs.getString("password")); } rs.closs(); //释放资源 stat.closs(); conn.closs(); } catch (Exception e) { e.printStackTrace(); } } }
基于MVC的JSP软件开发
第3章
在JSP中实现数据库操作
本章任务
通过案例引导的方式,掌握JSP中操作数据库
案例3-1:编写Java程序访问并显示数据库中的用户的信息 案例3-2:在JSP中编写Java代码显示数据库中的用户信息 案例3-3:编写Java类封装数据库处理代码,以供JSP等程序复用 案例3-4:查询3号操作员的信息 案例3-5:用户输入一个用户id,查询该id的用户信息并显示出来 案例3-6:综合运用前面学习的实现技术,编写程序实现对用户信息 进行增加、删除、修改、信息显示的操作
案例3-3
2.编写封装数据的实体类
public class User { private int id; private String name; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } 其他Setter/Getter方法 … }
案例3-3
运行结果
3.3 数据库交互操作的实现
固定的数据库访问语句,例如前面案例的码如:
Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery("select * from user"); 上述代码的特点是,访问语句固定,访问的结果数据也会固定,即 不会根据用户的要求改变(否则要修改程序代码)。
2. 编写Java程序访问MySQL数据库
【案例3-1】编写Java程序访问并显示数据库中的用户的信息。 案例实现准备:
安装好了MySQL数据库 安装好MySQL客户端程序 下载或准备好了MySQL的JDBC驱动程序 创建好数据库及表
案例3-1实现
1.建立被访问的数据环境
用数据库客户端建立MySQL数据库:mydatabase,编码为utf-8(支持中 文);再建立一个学生表:user,并向其中添加二个用户信息。
【案例3-2】在JSP中编写Java代码显示数据库中的用户信 息。
将案例3-1中的Java代码以<% %>的形式放到JSP文件中,则可 以在JSP中访问并显示数据库中的数据。
Biblioteka Baidu
案例3-2
在JSP中显示数据库的数据,其实只要在案例3-1的基础 上做简单的修改:
1)创建JSP文件,如:researchdb.jsp。 2)将案例3-1中的java代码中try- catch中的代码,以<% %>的形 势放到JSP的<body> </body>标记中。 3)将,java.sql.*加到import语句中,即该语句改为: import="java.util.*,java.sql.*"。 4)将System.out.print语句改为out.print语句。
本章目标
熟练掌握对MySQL数据库的建库、建表与对数据的操作 了解用Java语言对MySQL数据库的访问的编码实现 熟练掌握在JSP网页中编码对MySQL中数据的访问操作 熟练掌握通用的创建数据连接类的创建及在JSP中的应用 熟练掌握用JSP开发数据库应用程序(包括对数据库的增、 删、改、查询操作)的方法与过程
1. 数据库运行环境介绍
本书采用免费的数据库系统MySQL软件; 为了用Java访问数据库,本教程采用如下数据库环境:
1)MySQL数据库管理系统作为数据库服务器; 2)采用MySQL-Front或Navicat for MySQL作为MySql数据库客户 端软件; 3)MySQL驱动程序为mysql-connector-java-5.1.5-bin.jar(或其 他版本)。
id 1 3 name 李国华 张淑芳 password admin zsf
应运行的结果显示:
案例3-1实现
2.创建项目并加载JDBC驱动程序
首先创建一个Web项目如:myweb,在其中创建一个java类如命 名为:researchdb.java 在项目中加载JDBC驱动程序,有两种方法:
1)直接将驱动程序mysql-connector-java-5.1.5-bin.jar复制到项目 myweb的WebRoot\Web-INF\lib文件夹中。 2)在MyEclipse中鼠标右击myweb项目名,依次选择Bulid Path>Add External Archives…,在出现的对话框中寻找到自己存放的 驱动程序mysql-connector-java-5.1.5-bin.jar,并打开。
案例3-3
3.编写封装业务处理的类
public class Model { private Statement stat; private ResultSet rs; Dbconn s=new Dbconn(); //定义返回查询处理后获取的对象集合并返回 public List<User> userSelect(){ List users=new ArrayList(); try { Connection conn=s.getConnection(); String sql="select * from user"; stat=conn.createStatement(); rs = stat.executeQuery(sql); User user; while(rs.next()){ user=new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setPassword(rs.getString("password")); users.add(user); } s.closeAll(conn,stat,rs); } catch (SQLException e) { e.printStackTrace(); } return users; } }
如果采用用Java类进行封装,在JSP需要的时候进行调用, 则可以改进上述存在的这些问题。
案例3-3
【案例3-3】编写Java类封装数据库处理代码,以供JSP等 程序复用。 为了改善对数据库访问的JSP代码,可将程序分为四个部 分: 1)封装数据库连接的共享Java类(共享工具类); 2)封装数据的Java类(实体类); 3)封装业务处理的Java类(模型类); 4)JSP主程序(主控程序)。
3.1 Java程序访问数据库
应用程序中常常有对数据库的操作,即需要将处理的业务 数据存储在数据库中,然后通过程序对其进行操作处理。 在Java程序设计的课程中一般会介绍采用JDBC方式连接 数据库,并通过该连接实现对数据库的操作。 类似Java语言,JSP程序中也能对数据库进行操作与数据 显示。
然后部署该项目,启动服务器后运行,则在JSP中显示了 数据库中的数据。
3.2 封装数据库处理类的创建
从案例3-2中可以看出,JSP文件实现了数据库的操作。 但是上述JSP对数据库的操作有如下一些缺陷:
1)代码累赘,大量的Java代码段在JSP中,显得JSP文件复杂且不 利于修改; 2)代码重用性差,因为每个JSP都需要进行相同的重复操作,不利 于代码复用; 3)影响性能,由于通过JSP进行数据库连接操作,需要从客户端到 服务器端交互,影响软件的性能; 4)安全性差,用户的验证代码在客户端的JSP程序中,具有不安全 性; 5)连接数据库的代码大量冗余,不利于系统维护。
案例3-3
1.封装获取数据库类的编写
package dbutil; …… public class Dbconn { public Connection getConnection() throws SQLException{//获取连接方法 private Connection conn; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatab ase","root",""); } catch (ClassNotFoundException e) { System.out.println("找不到服务!!"); e.printStackTrace(); } return conn; } } }
案例3-3
4.JSP主程序的编写
<%@ page language="java" import="java.util.*,dbutil.*,entity.*,model.*" pageEncoding="utf-8"%> …… <body> <% Model model=new Model(); //调用模型 List<User> list=model.userSelect(); //执行模型中查询方法,并返回结果 %> 数据库中所有用户 <table border="1"> <%for(int i=0;i<list.size();i++){%>//循环显示获得的结果(用户信息) <tr> //从集合中取出对象的属性进行显示 <td><%=list.get(i).getId()%></td> <td><%=list.get(i).getName() %></td> <td><%=list.get(i).getPassword() %></td> </tr> <% } %> </table> </body>
案例3-1
4. 代码(researchdb.java)解释
1)在Java程序中加载驱动程序 Class.forName(“com.mysql.jdbc.Driver”); 2)创建数据连接对象 Connection conn= DriverManager.getConnection(“连接数据 库的URL", "用户名", "密码”) ; 3)创建Statement对象 Statement stat =conn.createStatement(); 4) 调用Statement对象的相关方法执行相对应的 SQL 语句 ResultSet rs = stat.executeQuery("select * from user"); 然后才可以对rs中被访问出的数据对象进行操作。
案例3-1
在Java程序中访问数据库注意事项:
要在项目中加载MySQL的JDBC驱动程序; 在编写Java代码时,注意import语句的正确创建(可用 ctrl+shift+O快捷键生成); 访问数据库语句要用try{ … }catch()语句包含起来。
3.在JSP中编写Java代码段访问数据库

相关主题