zoukankan      html  css  js  c++  java
  • servlet+jsp+jdbc实现从数据库查询用户信息到页面

    工程创建这里就不在累述了,直接从显示User信息列表开始。

    备注:我用的是servlet3的注解功能实现的,所以不需要配置web.xml

    这是我的工程目录:

    首先我们创建实体类:

    public class User implements Serializable{
    private static final long serialVersionUID = 1L;
    
    public User() {
    
    }
    private Integer id;
    private String name;
    private String age;
    private String addrs;
    
    ......省略的get和set方法......
    
    }

    然后在index.jsp页面中写一个链接如下:<a href="listUser.do">显示用户列表</a>。

    然后在src下创建com.servlet.servlet包并创建UserServlet类,

    @WebServlet("/listUser.do")//此处使用的是servlet的注解,listUser.do要和index.jsp中的链接保持一致。
    public class UserServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //获取用户列表
    UserService userService=new UserService();//创建UserService对象,
    List list=userService.getListAll();
    request.setAttribute("list", list);
    request.getRequestDispatcher("/jsp/success.jsp").forward(request, response);//跳转到success.jsp页面
    
    }
    
    }

    然后在创建对应的UserService类,

    public class UserService {
    /**
    * 查询
    * @return
    */
    public List<User> getListAll(){
    UserDao userDao = new UserDaoImpl();
    List list = userDao.getListAll();
    return list;
    }
    
    }

    最后创建UserDao接口和UserDaoImpl实现类

    UserDao接口

    public interface UserDao {
    /**
    * 获取所有用户
    * @return List
    */
    List<User> getListAll();
    
    }

    UserDaoImpl实现类

    public class UserDaoImpl implements UserDao{
    /**
    * 获取所用用户
    */
    @Override
    public List<User> getListAll() {
    List<User> list=new ArrayList<User>();//创建list集合,用于保持User对象
    try {
    Connection conn=DBUtil.getConnection();//通过工具类直接调用getConnection方法获取jdbc连接。
    String sql="select * from user";
    PreparedStatement ps=conn.prepareStatement(sql);
    ResultSet rs=ps.executeQuery();
    while(rs.next()){
    User user=new User();//创建User对象用于保持从数据看查出来的数据
    user.setId(rs.getInt(1));
    user.setName(rs.getString(2));
    user.setAge(rs.getString(3));
    user.setAddrs(rs.getString(4));
    list.add(user);
    }
    } catch (SQLException e) {
    
    e.printStackTrace();
    }
    return list;
    }
    
    }

    连接数据库的DBUtils工具类

    public class DBUtil {
    private static final String URL="jdbc:mysql://localhost:3306/servlet";//数据库名称为servlet
    private static final String USER="root";
    private static final String PASSWORD="1234";
    private static Connection conn=null;
    static{
    try {
    //加载驱动
    Class.forName("com.mysql.jdbc.Driver");
    //创建连接
    conn=DriverManager.getConnection(URL, USER, PASSWORD);
    } catch (ClassNotFoundException e) {
    
    e.printStackTrace();
    } catch (SQLException e) {
    
    e.printStackTrace();
    }
    }
    public static Connection getConnection(){
    
    return conn;
    }
    
    }

    最后我们创建返回用户信息的success.jsp页面

    <body>
    <table border=1 cellpadding="10" cellspacing="0">
    <tr>
    <th>id</th>
    <th>name</th>
    <th>age</th>
    <th>addrs</th>
    </tr>
    
    <c:forEach items="${list }" var="user">//这里使用的是jstl标签以及el表达式显示用户信息
    <tr>
    <th>${user.id }</th> 
    <th>${user.name }</th>
    <th>${user.age }</th>
    <th>${user.addrs }</th>
    </tr>
    </c:forEach>
    
    </table>
    </body>

    最后我们创建对应的数据库以及user数据表,然后添加几条数据,运行下项目。

  • 相关阅读:
    如何在博客园中添加新随笔以及随笔参考格式
    如何在班级博客中提交作业
    C高级第一次作业
    MySQL调优
    个人作业--软件工程实践总结
    动态分区最佳-最坏-最先分配
    动态分区代码
    个人作业-软件评测
    软件工程第五次作业
    软件工程第四次作业——结对作业
  • 原文地址:https://www.cnblogs.com/smfx1314/p/7912836.html
Copyright © 2011-2022 走看看