Servlet操作数据库

来源:互联网 发布:word 矩阵 编辑:程序博客网 时间:2024/06/16 16:26

在Servlet中操作数据库跟普通Java文件操作数据库是一样的


注意连接数据库要将需要的jar包拷贝到Tomcat容器上,因为Servlet是在Tomcat上运行的,不是Eclipse。

具体有两种方法:

  1. 将.jar拷贝到%Tomcat%/lib文件夹上,这种方式所有的webapps都可以使用(公共lib库)
  2. 在自己的webapps目录的WEB-INF文件夹下建立一个lib文件夹,然后将.jar包拷贝到此文件夹内,这种方式只有放有jar包的webapps才能使用(独立lib库)
下面通过一个例子来说明怎么操作数据库,在之前的用户管理系统上添加在数据库上验证的功能:

先在SQL Server上新建TestServlet数据库:
create database TestServletgouse TestServletgocreate table users (userId int primary key identity(1,1),--用户id号username varchar(20),--用户名passwd varchar(20),--用户密码email varchar(30),--电子邮件 grade int)--用户的级别  go insert into users values('admin','admin','admin@sohu.com',1)insert into users values('shunping','shunping','shunping@sohu.com', 1)insert into users values('tester1','tester1','tester1@sohu.com',5)insert into users values('tester2','tester2','tester2@sohu.com',5)insert into users values('tester3','tester3','tester3@sohu.com',5)insert into users values('tester4','tester4','tester4@sohu.com',5)insert into users values('tester5','tester5','tester5@sohu.com',5)insert into users values('tester6','tester6','tester6@sohu.com',5)insert into users values('tester7','tester7','tester7@sohu.com',5)insert into users values('tester8','tester8','tester8@sohu.com',5)insert into users values('tester9','tester9','tester9@sohu.com',5)insert into users values('tester10','tester10','tester10@sohu.com',5)insert into users values('tester11','tester11','tester11@sohu.com',5)insert into users values('tester12','tester12','tester12@sohu.com',5)insert into users values('tester13','tester13','tester13@sohu.com',5)insert into users values('tester14','tester14','tester14@sohu.com',5)--显示用户表select * from users;

然后在用户管理系统的LoginCl上添加数据库验证的代码:
/**  * @(#)HelloGen.java  *  *验证页面  * @author   * @version 1.00 2017/2/23  */  package com.chongqing;    import javax.servlet.http.*;  import java.io.*;  import java.sql.*;  public class LoginCl extends HttpServlet {            //处理get请求      public void doGet(HttpServletRequest req,HttpServletResponse res){                      Connection ct = null;         PreparedStatement ps = null;          ResultSet rs = null;                        //业务逻辑              try {                  //接收用户名和密码                  String u = req.getParameter("username");                  String p = req.getParameter("passwd");                                  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");                ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=TestServlet","sa","293313");              ps = ct.prepareStatement("select * from users where username = ? and passwd = ?");              ps.setString(1,u);            ps.setString(2,p);        rs = ps.executeQuery();                     if(rs.next()){                                 //合法,添加Session并跳转到欢迎界面                      HttpSession mySession = req.getSession(true);                      mySession.setMaxInactiveInterval(30);                   //指定Session存活的时间,单位是秒                      mySession.setAttribute("usname",u);                       //在Session中添加一个属性                                            res.sendRedirect("wel");//转到wel界面                        }else{                                                 //不合法                       res.sendRedirect("login");//返回login界面                      }                                         /*                    //验证                  if(u.equals("zero")&&p.equals("123")){                                            //合法,添加Session并跳转到欢迎界面                      HttpSession mySession = req.getSession(true);                      mySession.setMaxInactiveInterval(30);                   //指定Session存活的时间,单位是秒                      mySession.setAttribute("usname",u);                       //在Session中添加一个属性                                            res.sendRedirect("wel");//写你要到的Servlet的URL                                            }else{                                                    //不合法                          res.sendRedirect("login");//写你要到的Servlet的URL                      }                    */              }              catch (Exception ex) {                  ex.printStackTrace();              }finally{              //关闭资源!!!              //关闭顺序是,谁后创建谁先关闭                            try {                  if(null != rs){                      rs.close();                  }                  if(null != ps){                      ps.close();                  }                  if(null != ct){                      ct.close();                  }              } catch (SQLException e) {                  // TODO: handle exception                  e.printStackTrace();              }         }          }                public void doPost(HttpServletRequest req,HttpServletResponse res){                    this.doGet(req,res);      }  }  

运行结果表明,只有在users表中有的用户而且密码正确才能进入wel界面。


0 0
原创粉丝点击