• JDBC方式从数据库中查询数据并显示


    新博客地址https://www.jianshu.com/u/8e54644eafae

    1.创建数据库表myuser

    DROP TABLE IF EXISTS `myuser`;
    CREATE TABLE `myuser` (
      `user_name` varchar(255) NOT NULL COMMENT '姓名',
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `age` int(11) DEFAULT NULL,
      `password` varchar(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

    2.实体类

    package yang.mybatis.domain;
    
    public class User {
      //实体类的成员变量和数据库表的字段名称和类型一致
        private int id;
        private String user_name;
        private int age;
        private String password;
        
        public User(){}
        public User(String name,int id, int age,String password) {
            super();
            this.id = id;
            this.user_name = name;
            this.age = age;
            this.password = password;
        }
      //创建每个成员变量的set和get方法
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getUser_name() {
            return user_name;
        }
        public void setUser_name(String name) {
            this.user_name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public void setPassword(String password) {
            this.password = password;
        }
    
        public String getPassword() {
            return password;
        }
        @Override
        public String toString() {
            return "User [id=" + id + ", name=" + user_name + ", age=" + age + "]";
        }
    
    
    
    }

    3.1UserDao,连接数据库,查询数据库表中所有的记录

    package yang.mybatis.dao;
    
    import yang.mybatis.domain.User;
    
    import java.sql.*;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * Created by yangshijing on 2017/11/10 0010.
     */
    public class UserDaoTest {
        public List<User> getAll(){
        
            List<User> Users = new ArrayList<User>();
    
            Connection connection = null;
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
    
            try {
                String driverClass = "com.mysql.jdbc.Driver";
                String url = "jdbc:mysql:///mydb";
                String user = "root";
                String pass= "1234";
    
                Class.forName(driverClass);
                connection = DriverManager.getConnection(url, user, pass);
    
                String sql = "SELECT user_name, id, age, password FROM myuser";
                preparedStatement = connection.prepareStatement(sql);
    
                resultSet = preparedStatement.executeQuery();
                while(resultSet.next()){
                    String user_name = resultSet.getString(1);
                    int id = resultSet.getInt(2);
                    int age = resultSet.getInt(3);
                    String password = resultSet.getString(4);
                    User userl= new User(user_name,id,age,password);
                    Users.add(userl);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally{
                try {
                    if(resultSet != null){
                        resultSet.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
    
                try {
                    if(preparedStatement != null){
                        preparedStatement.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
    
                try {
                    if(connection != null){
                        connection.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
    
            return Users;
        }
    }

    3.2根据用户Id删除用户数据

       public void deleteById(int id) {
            Connection connection = null;
            PreparedStatement preparedStatement = null;
            try {
                String driverClass = "com.mysql.jdbc.Driver";
                String url = "jdbc:mysql:///mydb";
                String user = "root";
                String pass= "1234";
    
                Class.forName(driverClass);
                connection = DriverManager.getConnection(url, user, pass);
    
                String sql = "DELETE FROM myuser WHERE id=?";
                preparedStatement = connection.prepareStatement(sql);
                preparedStatement.setInt(1,id);
                int i = preparedStatement.executeUpdate();
            } catch (Exception e) {
                e.printStackTrace();
            } finally{
                try {
                    if(preparedStatement != null){
                        preparedStatement.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
    
                try {
                    if(connection != null){
                        connection.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }

    4.1编写查询Servlet

    package yang.mybatis.servlet;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import yang.mybatis.dao.UserDaoImp;
    import yang.mybatis.dao.UserDaoTest;
    import yang.mybatis.domain.User;
    
    import java.io.IOException;
    import java.util.List;
    
    /**
     * Created by yangshijing on 2017/11/10 0010.
     */
    @Controller
    public class ListAllStudent extends javax.servlet.http.HttpServlet {
        @Override
        protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
            doGet(request,response);
        }
    
        @Override
        protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
            try {
                UserDaoTest userDaoTest = new UserDaoTest();
                List<User> list = userDaoTest.getAll();
    //将从数据库中查询到的数据方法request域中
                request.setAttribute("list",list);
    //利用请求转发的方式,将这次请求域中的数据传到另一个页面进行显示    
               request.getRequestDispatcher("/jsp/hello1.jsp").forward(request,response);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    4.2删除Servlet

    package yang.mybatis.servlet;
    
    import yang.mybatis.dao.UserDaoTest;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    /**
     * Created by yangshijing on 2017/11/10 0010.
     */
    public class DeleteServlet extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request,response);
        }
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         //从request域中获取的数据是String类型 String id
    = request.getParameter("id"); UserDaoTest userDaoTest = new UserDaoTest();
         //通过Interger.parseInt()方法,将String类型转换为int类型 userDaoTest.deleteById(Integer.parseInt(id)); request.getRequestDispatcher(
    "/listAllStudent").forward(request,response); } }

    5.Web应用根目录下/jsp/hello1.jsp页面对数据进行显示

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <html>
    <head>
        <title>用户列表</title>
    </head>
    <body>
        <a href="/myAction/listAllStudent.action">SpringMvc</a>
        <a href="/listAllStudent">Servlet</a>
        <br>
      <!--设置表格边框的宽度--> <table border="1" cellpadding="10" cellspacing="0"> <tr> <th>编号</th> <th>姓名</th> <th>年龄</th> <th>密码</th> <th>删除</th> </tr> <c:forEach items="${list}" var="user"> <tr> <td> ${user.id}</td> <td> ${user.user_name}</td> <td> ${user.age}</td> <td> ${user.password}</td> <td><a href="/deleteServlet?id=${user.id}">Delete</a></td> </tr> </c:forEach> </table> </body> </html>

    6.结果

  • 相关阅读:
    day22【网络编程】
    day21【缓冲流、转换流、序列化流】
    day20【字节流、字符流】
    设计模式7-适配器模式
    设计模式6-状态模式
    设计模式5-观察者模式
    设计模式4-建造者模式
    Web Service与WCF与Web API区别
    设计模式3-外观模式
    设计模式2-模板方法模式
  • 原文地址:https://www.cnblogs.com/realshijing/p/7815055.html
Copyright © 2020-2023  润新知