本文实例讲述了JSP使用JDBC完成动态验证及采用MVC完成数据查询的方法。分享给大家供大家参考。具体如下:
一、目标:
① 掌握JDBC链接数据库的基本过程;
② 掌握使用JDBC进行数据查询。
二、主要内容:
① 在上一次的实例基础上,通过连接数据库完成用户登录功能,介绍JDBC的基本用法;
② 通过显示所有用户信息进一步介绍JDBC的用法和查询结果的处理。
1、JDBC概念
Java Database Connectivity的缩写,用于连接Java应用程序与各种关系数据库的标准接口。对于编程人员来说,连接任何数据库都是相同的。
2、要使用JDBC开发应用需要哪些准备工作?
安装数据库,包括数据库表的创建;
根据数据库的类型,得到数据库的JDBC驱动程序,不同的数据库管理系统需要不同的JDBC驱动程序,并且不同版本的数据库管理系统需要的驱动程序有可能不同的;这里使用Oracle数据库,驱动程序需要放在WEB-INF/lib下面。
数据库的相关信息:数据库的IP地址,服务的端口号,数据库的名字,连接数据库的用户名和密码。
3、 举例:使用数据库对用户登录信息进行验证。
需要修改User.java中验证用户信息的方法。
1)在类的前面增加了一个import语句:
- public boolean check()
- {
- /*
- if(username==null || userpass==null)
- return false;
- if(username.equals("zhangsan") && userpass.equals("lisi"))
- {
- return true;
- }else{
- return false;
- }
- */
- Connection con = null;
- Statement stmt = null;
- ResultSet rs = null;
- boolean b = true;
- try{
- // 指出连接数据库所需要的驱动程序
- Class.forName("oracle.jdbc.driver.OracleDriver");
- // 建立与数据库之间的连接
- // myserver修改为数据库服务器IP,mydb为数据库名
- con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger");
- // 编写查询数据库信息的SQL语句
- String sql="select * from usertable where username='"+username+"' and userpass='"+userpass+"'";
- System.err.println(sql);
- // 创建语句对象,用于执行SQL语句
- stmt = con.createStatement();
- // 执行SQL语句得到结果集
- rs = stmt.executeQuery(sql);
- // 判断rs中是否有数据
- if(rs.next())
- b = true;
- else
- b = false;
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- finally{
- // 关闭相关对象
- if(rs!=null) try{ rs.close(); }catch(Exception ee){}
- if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}
- if(con!=null) try{ con.close(); }catch(Exception ee){}
- }
- return b;
- }
4、运行测试
可以使用数据库中的用户名和口令进行登录。
5、向页面传递查询结果
很多时候,客户端需要从服务器端得到数据并显示,因为数据的查询是由JavaBean完成的,对JavaBean的调用是通过Servlet完成的,Servlet中可以得到查询的结果,但是显示信息是由JSP页面完成的,如何把Servlet中查询的信息传递给JSP页面呢?
前面介绍过可以通过request、session和application传递信息,因为可以让Servlet和JSP处于相同的请求,所以3个对象都可以使用。但是因为session和application的保存时间比较长,容易造成服务器资源的浪费,所以通常采用request存储。
下面通过查询并显示所有信息的功能来介绍具体用法。需要完成的工作如下:
① 在User.java中添加查询所有用户信息的方法;
② 编写查询所有用户信息的控制器;
③ 编写显示信息的JSP页面。
6、 在User.java中添加方法
查询所有用户信息的方法如下:
- public ArrayList getAllUser()
- {
- Connection con = null;
- Statement stmt = null;
- ResultSet rs = null;
- ArrayList users = new ArrayList();
- try{
- // 指出连接数据库所需要的驱动程序
- Class.forName("oracle.jdbc.driver.OracleDriver");
- // 建立与数据库之间的连接
- con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger");
- // 编写查询数据库信息的SQL语句
- String sql="select * from usertable";
- // 创建语句对象,用于执行SQL语句
- stmt = con.createStatement();
- // 执行SQL语句得到结果集
- rs = stmt.executeQuery(sql);
- // 遍历结果集
- while(rs.next())
- {
- String username = rs.getString(1);
- String userpass = rs.getString(2);
- // java.util.Date birthday = rs.getDate(3);
- // int age = rs.getInt(4);
- User user = new User();
- user.setUsername(username);
- user.setUserpass(userpass);
- users.add(user);
- }
- }catch(Exception e){
- System.out.println(e.getMessage());
- }
- finally{
- // 关闭相关对象
- if(rs!=null) try{ rs.close(); }catch(Exception ee){}
- if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}
- if(con!=null) try{ con.close(); }catch(Exception ee){}
- }
- return users;
- }
新闻热点
疑难解答