zoukankan      html  css  js  c++  java
  • JDBC+Servlet

    package com.dao;
    /**
     * 数据库操作工具类
    */
    public class BaseDao {
        //1.定义链接数据库的驱动:数据库的类型
        private static final String DRIVER="com.mysql.jdbc.Driver";
        //2.定义链接数据库的url地址:数据库的url
        private static final String URL="jdbc:mysql://localhost:3306/holly";
        //3.定义链接数据库用户名
        private static final String USER="root";
        //4.定义链接数据库密码
        private static final String PASSWORD="ok";
        //5.定义链接数据库的链接通道:路
        public Connection conn=null;
        //6.定义数据库操作的执行者
        public PreparedStatement pstm=null;
        //7.定义接受数据库操作结果集
        public ResultSet rs=null;
        //8.加载驱动
        static{
            try {
                Class.forName(DRIVER);
            } catch (ClassNotFoundException e) {
                System.out.println("driver is error!!");
                e.printStackTrace();
            }
        }
        /**
         * 9.定义获取数据库链接的方法
         */
        public Connection getConn(){
            try {
                conn=DriverManager.getConnection(URL, USER, PASSWORD);
            } catch (SQLException e) {
                System.out.println("URL, USER, PASSWORD is error!");
                e.printStackTrace();
            }
            return conn;
        }
        /**
         * 10.释放资源
         */
        public void closeAll(ResultSet rs, PreparedStatement pstm,
                Connection conn) {
            try {
                if(rs!=null){ rs.close();}
                if(pstm!=null){ pstm.close();}
                if(conn!=null){ conn.close();}
            } catch (SQLException e) {e.printStackTrace();}
        }
        /**
         * 11.公共增删改的方法
         */
        public int executeUpdate(String sql,Object[] param){
            //获取数据库链接
            conn=this.getConn();               int num=0;
            try {
                //创建执行者
                pstm=conn.prepareStatement(sql);
                if(param!=null){
                    for (int i = 0; i < param.length; i++) {pstm.setObject(i+1, param[i]); }
                }
                //执行操作
                num = pstm.executeUpdate();
            } catch (SQLException e) {e.printStackTrace();
            }finally{this.closeAll(rs, pstm, conn); }
            return num; 
        }
        /**
         * 12.公共查询的方法
         */
        public ResultSet executeQuery(String sql,Object[] param){
            //获取数据库链接
            conn=this.getConn();
        
            try {
                //创建执行者
                pstm=conn.prepareStatement(sql);
                if(param!=null){
                    for (int i = 0; i < param.length; i++) {pstm.setObject(i+1, param[i]); }
                }
                //执行操作
                rs = pstm.executeQuery();
            } catch (SQLException e) {e.printStackTrace();}
            return rs; 
        }
    }
    BaseDao.java
    package com.entity;
    public class Student {
        private int sid;
        private String sname;
        private String pwd;
        private int age;
        private String sex;
        public Student() {}
        public Student(String sname, String pwd, int age, String sex) {
            this.sname = sname;      this.pwd = pwd;
            this.age = age;           this.sex = sex;
        }
        public Student(int sid, String sname, String pwd, int age, String sex) {
            this.sid = sid;        this.sname = sname;
            this.pwd = pwd;       this.age = age;
            this.sex = sex;
        }
        public int getSid() {return sid;}
    
        public void setSid(int sid) {this.sid = sid;}
    
        public String getSname() {return sname;}
    
        public void setSname(String sname) {this.sname = sname; }
    
        public String getPwd() {return pwd; }
    
        public void setPwd(String pwd) {this.pwd = pwd; }
    
        public int getAge() {return age; }
    
        public void setAge(int age) {this.age = age; }
    
        public String getSex() {return sex; }
    
        public void setSex(String sex) {this.sex = sex; }
    
        public String toString() {
            return "Student [age=" + age + ", pwd=" + pwd + ", sex=" + sex
                    + ", sid=" + sid + ", sname=" + sname + "]";
        }
    }
    Student.java
    package com.dao.impl;
    public class StudentDaoImpl extends BaseDao implements IStudentDao {
        /**
         * 1.根据用户名和密码查询
         */
        public Student findByNamePwd(String sname, String pwd) {
            Student stu=null;
            String sql="select * from student where sname=? and pwd=?";
            Object[] param={sname,pwd};
            this.rs=this.executeQuery(sql, param);
            try {
                if(rs.next()){
    stu=new Student(rs.getInt("sid"), rs.getString("sname"), rs.getString("pwd"), rs.getInt("age"), rs.getString("sex"));
                }
            } catch (SQLException e) {e.printStackTrace();
    }finally{this.closeAll(rs, pstm, conn); }
            return stu;
        }
        /**
         * 2.添加
         */
        public int addStudent(Student stu) {
            String sql="insert into student(sname,pwd,age,sex) values(?,?,?,?)";
            Object[] param={stu.getSname(),stu.getPwd(),stu.getAge(),stu.getSex()};
            return this.executeUpdate(sql, param);
        }
        /**
         * 3.查询所有
         */
        public List<Student> findAll() {
            List<Student> list=new ArrayList<Student>();
            String sql="select * from student";
            this.rs=this.executeQuery(sql, null);
            try {
    while(rs.next()){Student stu=new Student(rs.getInt("sid"), rs.getString("sname"), rs.getString("pwd"), rs.getInt("age"), rs.getString("sex"));
                  list.add(stu);
                }
            } catch (SQLException e) {e.printStackTrace();}finally{
                this.closeAll(rs, pstm, conn); }
            return list;
        }
    }
    StudentDao.java
    package com.dao;
    
    import java.util.List;
    
    import com.entity.Student;
    
    public interface IStudentDao {
        /**
         * 1.根据用户名和密码查询
         * @param sname
         * @param pwd
         * @return
         */
         Student findByNamePwd(String sname,String pwd);
         /**
          * 2.添加
          * @param stu
          * @return
          */
          int addStudent(Student stu);
          /**
           * 3.查询所有
           * @return
           */
          List<Student> findAll();
    }
    IStudentDao.java
    package com.service;
    
    import java.util.List;
    
    import com.entity.Student;
    
    /**
     * 业务层
     * @author pc
     *
     */
    public interface StudentService {
    
        /**
         * 1.登录
         * @param sname
         * @param pwd
         * @return
         */
        Student login(String sname,String pwd);
    
        /**
         * 2.注册
         * @param stu
         * @return
         */
        int register(Student stu);
    
        /**
         * 3.查询所有
         * @return
         */
        List<Student> query();
    
    }
    StudentService.java
    package com.service.impl;
    
    import java.util.List;
    
    import com.dao.IStudentDao;
    import com.dao.impl.StudentDaoImpl;
    import com.entity.Student;
    import com.service.StudentService;
    
    public class StudentServiceImpl implements StudentService {
        IStudentDao dao=new StudentDaoImpl();
        /**
         * 1.登录
         */
        public Student login(String sname, String pwd) {
            return dao.findByNamePwd(sname, pwd);
        }
    
       /**
        * 2.注册
        */
        public int register(Student stu) {
            return dao.addStudent(stu);
        }
    
        /**
         * 3.查询所有
         */
        public List<Student> query() {
            return dao.findAll();
        }
    
    }
    StudentServiceImpl.java
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@page import="com.service.StudentService"%>
    <%@page import="com.service.impl.StudentServiceImpl"%>
    <%@page import="com.entity.Student"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%
      //1.乱码处理
      //请求通道
      request.setCharacterEncoding("UTF-8");
      //响应通道
      response.setCharacterEncoding("UTF-8");
      //响应页面
      response.setContentType("text/html;charset=UTF-8");
      
      //2.接受请求参数
     String username= request.getParameter("username");
     String password= request.getParameter("password");
     
      //3.业务处理
      StudentService service=new StudentServiceImpl();
      if(username!=null && password!=null){
          Student stu=service.login(username,password);
          if(stu!=null){
            System.out.print("登录成功!");
            List<Student> list=service.query();
            request.setAttribute("list",list);
            request.getRequestDispatcher("index.jsp").forward(request,response);
          }else{
            System.out.print("登录失败!");
            
          }
          
      
      }else{
         System.out.print("参数为空!");
      }
         //4.页面跳转
         //request对象跳转携带数据
        
    %>
    loginservice.java
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%
      //1.乱码处理
      //请求通道
      request.setCharacterEncoding("UTF-8");
      //响应动态
      response.setCharacterEncoding("UTF-8");
      //响应页面
      response.setContentType("text/html;charset=UTF-8");
      
      //2.接受请求参数
     String username= request.getParameter("username");
     String password= request.getParameter("password");
     String[] ah=request.getParameterValues("ah"); 
     
      //3.业务处理
      if(username!=null && password !=null&& username.length()>0&& password.length()>0&& ah!=null){
        out.print("你的注册信息如下:<br/>");
        out.print("用户名:"+username+"<br/>");
        out.print("密码:"+password+"<br/>");
        out.print("爱好:<br/>");
        for(int i=0; i<ah.length; i++ ){
          out.print(ah[i]+",");
        }
      }else{
         out.print("注册失败!");
         
      }
      //4.页面跳转
        
    %>
    RegisterService.java
    package com.test;
    
    import java.util.List;
    
    import com.entity.Student;
    import com.service.StudentService;
    import com.service.impl.StudentServiceImpl;
    
    public class Test {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            StudentService service=new StudentServiceImpl();
            /*Student stu=service.login("小胖", "123");
            if(stu!=null){
                System.out.println("login success!!");
            }else{
                System.out.println("login fail!!");
            }*/
    
    
            /*int num=service.register(new Student("holly", "123", 18, "女"));
            if(num>0){
                System.out.println("register success~!");
            }else{
                System.out.println("register fail~!");
                
            }*/
    
    
            List<Student> list=service.query();
            for (Student student : list) {
                System.out.println(student);
            }
            
            
        }
    
    }
    Test.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@page import="com.entity.Student"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--<link rel="stylesheet" type="text/css" href="styles.css">-->
      </head>
      <body> 欢迎<%=request.getParameter("username") %>登录首页!!
        <table>
          <tr><td>序号</td>
            <td>姓名</td>
            <td>密码</td>
            <td>年龄</td>
            <td>性别</td>
            <td>操作</td>
          </tr>
          <% List<Student> list=(List<Student>)request.getAttribute("list"); for(Student stu:list){ %>
          <tr><td><%=stu.getSid() %></td>
            <td><%=stu.getSname() %></td>
            <td><%=stu.getPwd() %></td>
            <td><%=stu.getAge() %></td>
            <td><%=stu.getSex() %></td>
            <td>
              <a href="deleteservice.jsp">删除</a>&nbsp;&nbsp;
                <a href="findbyidservice.jsp">修改</a>
              </td>
          </tr>
          <% }%>
        </table>
      </body>
    </html>
    index.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://"
                + request.getServerName() + ":" + request.getServerPort()
                + path + "/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <base href="<%=basePath%>">
            <title>My JSP 'login.jsp' starting page</title>
            <meta http-equiv="pragma" content="no-cache">
            <meta http-equiv="cache-control" content="no-cache">
            <meta http-equiv="expires" content="0">
            <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
            <meta http-equiv="description" content="This is my page">
            <!--<link rel="stylesheet" type="text/css" href="styles.css">-->
        </head>
        <body>
            <fieldset style=" 400px;">
                <legend>登录</legend>
                <form action="loginservice.jsp" method="post">
                    <table>
                        <tr>
                            <td>用户名: </td>
                            <td><input type="text" name="username" /></td>
                        </tr>
                        <tr>
                            <td>密码: </td>
                            <td><input type="password" name="password" /></td>
                        </tr>
                        <tr>
                            <td><input type="submit" value="登录" /></td>
                            <td><input type="reset" value="重置" /></td>
                        </tr>
                    </table>
                </form>
            </fieldset>
        </body>
    </html>
    log.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://"
                + request.getServerName() + ":" + request.getServerPort()
                + path + "/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
        <head>
            <base href="<%=basePath%>">
            <title>My JSP 'login.jsp' starting page</title>
            <meta http-equiv="pragma" content="no-cache">
            <meta http-equiv="cache-control" content="no-cache">
            <meta http-equiv="expires" content="0">
            <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
            <meta http-equiv="description" content="This is my page">
            <!--<link rel="stylesheet" type="text/css" href="styles.css">-->
        </head>
        <body>
            <fieldset style=" 400px;">
                <legend>注册</legend>
                <form action="registerservice.jsp" method="post">
                    <table>
                        <tr><td>用户名: </td>
                            <td><input type="text" name="username" /></td>
                        </tr>
                        <tr><td>密码: </td>
                            <td><input type="password" name="password" /></td>
                        </tr>
                        <tr><td>爱好: </td>
                            <td><input type="checkbox" name="ah" value="吃饭"/>吃饭
                                <input type="checkbox" name="ah" value="睡觉"/>睡觉
                                <input type="checkbox" name="ah" value="打豆豆"/>打豆豆
                            </td>
                        </tr>
                        <tr><td><input type="submit" value="注册" /></td>
                            <td><input type="reset" value="重置" /></td>
                        </tr>
                    </table>
                </form>
            </fieldset>
        </body>
    </html>
    register.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'error.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
         欢迎<%=request.getParameter("username") %>登录首页!!
      </body>
    </html>
    error.jsp
  • 相关阅读:
    单例模式及其调用
    SQL 语句中left join 与join 条件放置位置,进而影响SQL语句的执行效率的问题
    用辩证的方法去看待项目管理(《最后期限》、《人月神话》),没有最好的项目管理方案,只有最适合的。
    关于Aspose.Words插入表格单元格的高度问题的解决
    google guava cache
    jvm 设置
    Heron 数据模型,API和组件介绍
    基数统计的常用方法
    apache storm 1.0.0 新特性
    spark的那些坑
  • 原文地址:https://www.cnblogs.com/ChineseIntelligentLanguage/p/6431667.html
Copyright © 2011-2022 走看看