前言
utils包中的BaseDao和JdbcUtil就不叙述了,主要是对查询和添加做一个简单的回顾
查询
先在servlet层创建一个主页面的IndexServlet,然后再entity层创建一个类,名字和你所要查询数据库表名字对应。我的数据库表名为animal,字段有id,name,info.所以entity下创建的Animal类,代码如下
package com.cjm.entity;
public class Animal {
private Integer id;
private String name;
private String info;
public Integer getId() {return id;}
public void setId(Integer id) {this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getInfo() {return info;}
public void setInfo(String info) {this.info = info;}
@Override
public String toString() {
return "Animal{" +
"id=" + id +
", name='" + name + '\'' +
", info='" + info + '\'' +
'}';
}
}
toString是为了方便运行测试数据是否能取出,可以不写
然后在dao层中创建类并进行书写方法,来对数据库表中内容查询
package com.cjm.dao;
import com.cjm.entity.Animal;
import com.cjm.utils.BaseDao;
import java.util.List;
public class AnimalDao extends BaseDao {
//查询数据 返回值查询的所有对象
public List<Animal> select(){
String sql="select * from animal";
List<Animal> query = super.query(sql, null, Animal.class);
return query;
}
创建好方法后,在IndexServlet中进行调用,获取数据
package com.cjm.servlet;
import com.cjm.dao.AnimalDao;
import com.cjm.entity.Animal;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
@WebServlet(name = "IndexServlet", value = "/IndexServlet")
public class IndexServlet extends HttpServlet {
//new对象,对dao层中的方法进行调用
AnimalDao animalDao=new AnimalDao();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
HttpSession session = request.getSession(false);
//查询数据,对数据进行展示
List<Animal>animals=animalDao.select();
System.out.println(animals);//测试,看数据能否取出
//前段展示界面,放在一块了
PrintWriter writer = response.getWriter();
writer.println("<html>");
writer.println("<body>");
//为之后的添加做准备
writer.println("<div><a href='addAnimal.html' style='text-decoration:none'>添加</a></div>");
//写表格,这个表格数据从animals集合中取出来的
writer.println("<table border='3px' bordercolor='black' width='800px' align='center'>");
writer.println("<tr>");
writer.println("<th>编号</th>");
writer.println("<th>姓名</th>");
writer.println("<th>信息</th>");
writer.println("</tr>");
//有多行数据 增强for循环
for (Animal animal : animals) {
writer.println("<tr align='center'>");
writer.println("<td>"+ animal.getId() +"</td>");
writer.println("<td>"+ animal.getName() +"</td>");
writer.println("<td>"+ animal.getInfo() +"</td>");
writer.println("</tr>");
}
writer.println("</table>");
writer.println("</body>");
writer.println("</html>");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
添加
在web下进行HTML的创建,IndexServlet中已经提前设置好了
//为之后的添加做准备
writer.println("<div><a href='addAnimal.html' style='text-decoration:none'>添加</a></div>");
这是创建好的HTML页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="AddServlet" method="post">
姓名:<input type="text" name="name"><br>
信息:<input type="text" name="info"><br>
<input type="submit" value="添加">
</form>
</body>
</html>
继续在dao层中AnimalDao书写添加的方法,然后在新建的AddServlet中进行相关调用
//添加数据,返回值是受影响的行数
public int add (Object[] objects){
String sql="insert into animal (name,info) values (?,?)";
return update(sql,objects);
AddServlet代码如下
package com.cjm.servlet;
import com.cjm.dao.AnimalDao;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
@WebServlet(name = "AddServlet", value = "/AddServlet")
public class AddServlet extends HttpServlet {
AnimalDao animalDao=new AnimalDao();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");//防止乱码
// 获取前端发送的数据
//注意插入数据库的数据类型和这里取出来的数据类型转换
/*例:String转换为Integer Integer age1=Integer.valueOf(age) */
String name = request.getParameter("name");
String info = request.getParameter("info");
Object[]objects={name,info};
int i=animalDao.add(objects);
if (i==1){
response.sendRedirect("IndexServlet");
}else {
response.sendRedirect("addAnimal.html");
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}