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界面。
     
  • 相关阅读:
    php改写session到数据库
    mysql UNIX时间戳与日期的相互转换
    关于netbeans中的JComboBox(复选框)
    Java中数据类型转换
    趣味游戏___表示数
    C语言 约瑟夫圈问题:N个人围成一圈,从第一个人开始按顺序报数并编号1,2,3,……N,然后开始从第一个人转圈报数,凡是报到3的退出圈子。则剩下的最后一个人编号是多少。
    maven——使用阿里云镜像
    spring——整合Mybatis
    spring——AOP(静态代理、动态代理、AOP)
    spring——通过注解显式的完成自动装配
  • 原文地址:https://www.cnblogs.com/yzy-blogs/p/6612977.html
Copyright © 2011-2022 走看看