目标:在前面添加一个图书信息的页面基础上,连接上数据库,将添加结果保存到数据库中。
环境:mysql数据库 语言:java
创建一个简单的页面详见:页面创建
然后我跟改变的部分就是处理逻辑,弃用前面的java处理逻辑,添加一个addServlet.java:
package com.xxx.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mysql.jdbc.Statement;
public class AddServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException {
String id = request.getParameter("id");
String name = request.getParameter("name");
String author = request.getParameter("author");
String price = request.getParameter("price");
Connection con = null;
try {
con = getconnect();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String sql = "insert into tb_book(id,name,author,price)" +
"values(?,?,?,?)";
try {
PreparedStatement statement = con.prepareStatement(sql);
statement.setString(1, id);
statement.setString(2, name);
statement.setString(3, author);
statement.setString(4, price);
boolean rSet = statement.execute();
System.out.println("执行结果" + rSet);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getconnect() throws ClassNotFoundException{
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:mysql://xxx:3306/test","xxx","xxx");
} catch (SQLException e) {
System.out.println("没有连接到数据库!");
}
System.out.println("-------------------------");
return connection;
}
}
在逻辑写好之后,我们来测试执行一下(这里为方便测试起见,全部用string类型数据):
后台数据库的显示情况:
在这里有一个小问题那就是前面我们看到的数据库结果里面第三行出现乱码,因为当时写的是汉字,因此保存出错了,用的环境是Xampp,关于乱码解决,,,百度。