zoukankan      html  css  js  c++  java
  • Servlet操作数据库

    在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 TestServlet
    go
    
    use TestServlet
    go
    
    create 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界面。
     
  • 相关阅读:
    怎样运用Oracle的BFILE
    第一个博客
    返回引用的函数
    c++之SQLite的增删改查
    sqlite命令行程序说明
    CreateProcess函数详解
    注册窗口类
    radio button的用法
    跨线程使用CSocket
    关于socket的connect超时的问题
  • 原文地址:https://www.cnblogs.com/yzy-blogs/p/6612977.html
Copyright © 2011-2022 走看看