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.結果
