1.项目结构
2.1 Studen.java
package com.pojo;
public class Student {
private int id;
private String name;
private String sex;
private String address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", sex=" + sex + ", address=" + address + "]";
}
}
2.2 StudentDao.java
package com.dao;
import com.pojo.Student;
public interface StudentDao {
public void addStudent(Student student);
}
2.3 StudentDaoImpl.java
package com.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.pojo.Student;
import com.utils.DBUtils;
public class StudentDaoImpl implements StudentDao {
@Override
public void addStudent(Student student) {
// 获取连接
Connection conn = null;
PreparedStatement pst = null;
try {
conn = DBUtils.getConn();
// 获取Statement
String sql = "INSERT INTO student(NAME,sex,address) VALUES(?,?,?);";
pst = conn.prepareStatement(sql);
pst.setString(1, student.getName());
pst.setString(2, student.getSex());
pst.setString(3, student.getAddress());
pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (pst != null) {
try {
pst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
2.4 StudentService.java
package com.service;
import java.util.List;
import com.pojo.Student;
public interface StudentService {
public void addStudents(List<Student> students);
}
2.5 StudentServiceImpl.java
package com.service;
import java.util.List;
import com.dao.StudentDao;
import com.dao.StudentDaoImpl;
import com.pojo.Student;
public class StudentServiceImpl implements StudentService{
private StudentDao studentDao=new StudentDaoImpl();
@Override
public void addStudents(List<Student> students) {
for(Student student:students) {
studentDao.addStudent(student);
}
}
}
2.6 ImportJsonServlet.java
package com.controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.pojo.Student;
import com.service.StudentService;
import com.service.StudentServiceImpl;
/**
* Servlet implementation class ImportJsonServlet
*/
@WebServlet("/ImportJsonServlet")
public class ImportJsonServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ImportJsonServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String json=request.getParameter("json");
List<Student> students=new ArrayList<Student>();
JsonParser parser=new JsonParser();
JsonArray jsonArray = parser.parse(json).getAsJsonArray();
Gson gson=new Gson();
for(JsonElement e:jsonArray) {
Student student=gson.fromJson(e, Student.class);
students.add(student);
}
// 导入库
StudentService studentService=new StudentServiceImpl();
studentService.addStudents(students);
request.setAttribute("message", "添加成功");
request.getRequestDispatcher("/message.jsp").forward(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
2.7 DBUtils.java
package com.utils;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBUtils {
private static final String url = "jdbc:mysql://localhost:3306/etc02?characterEncoding=utf-8";
private static final String user = "root";
private static final String password = "root";
// 1 加载驱动
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 2 获取连接
public static Connection getConn() throws SQLException {
Connection conn = DriverManager.getConnection(url, user, password);
return conn;
}
}
2.8 uploadJson.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
上传JSON信息
<form action="ImportJsonServlet" method="post">
JSON文件:<br>
<textarea rows="30" cols="60" name="json"></textarea>
<input type="submit" value="上传">
</form>
</body>
</html>
2.9 message.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>导入结果:${message}
</body>
</html>