mysql数据库是demo,表是stu,只有id和name字段。
本例子中jsp有添加和查询功能。命名有点乱,只是为了实现功能,回忆下基础内容。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<form id="fm">
学号:<input type="text" id="id" name="id"><br>
姓名:<input type="text" id="name" name="name"><br>
<input type="button" id="btn" value="添加学生">
</form>
<br>
<form>
学生id:<input type="text" id="idd" name="idd">
<input type="button" id="btnn" value="查询姓名">
</form>
<p id="p"></p>
<script type="text/javascript">
$(function(){
$("#btn").click(function(){
$.ajax({
type:"post",
datatype:"text",
data:{
id:$("#id").val(),
name:$("#name").val(),
i:"add"
},
url:"MyServlet",
success:function(data){
if(data==1){
alert("添加成功");
}
else
alert("添加失败");
}
});
});
$("#btnn").click(function(){
$.ajax({
type:"post",
datatype:"text",
data:{
idd:$("#idd").val(),
i:"query"
},
url:"MyServlet",
success:function(data){
if(data=="zero"){
$("#p").html("无此学生");
}
else
alert(data);
$("#p").html(""+data);
}
});
});
});
</script>
</body>
</html>
下面是servlet
package demo;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public MyServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
PrintWriter out=response.getWriter();
String ii=request.getParameter("i");
if(ii.equals("add"))
{
int id=Integer.parseInt(request.getParameter("id"));
String name=request.getParameter("name");
int i=UserDao.add(new User(id,name));
if(i==1){
out.print(1);
}
else{
out.print(0);
}
}
else if(ii.equals("query"))
{
int idd=Integer.parseInt(request.getParameter("idd"));
User u=UserDao.find(idd);
if(u==null)
{
out.print("zero");
}
else
{
String name=u.getname();
out.print(name);
}
}
return;
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
然后是业务层的bean
package demo;
public class User {
private int id;
private String name;
User()
{
}
User(int id,String name)
{
this.id=id;
this.name=name;
}
public int getid()
{
return this.id;
}
public void setid(int id)
{
this.id=id;
}
public String getname()
{
return this.name;
}
public void setname(String name)
{
this.name=name;
}
}
再是数据访问接口dao
package demo;
import java.sql.*;
public class UserDao {
public static int add(User user)
{
int flag=0;
Connection conn=null;
PreparedStatement ps=null;
try{
conn=JdbcUtil.getConn();
String sql="insert into stu(id,name) values(?,?)";
ps=conn.prepareStatement(sql);
ps.setInt(1, user.getid());
System.out.println(user.getid());
System.out.println(user.getname());
ps.setString(2, user.getname());
flag=ps.executeUpdate();
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
JdbcUtil.free(null,ps,conn);
}
return flag;
}
public static User find(int id)
{
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
User user=null;
try{
conn=JdbcUtil.getConn();
String sql="select * from stu where id=?";
ps=conn.prepareStatement(sql);
ps.setInt(1, id);
rs=ps.executeQuery();
if(rs.next())
{
user=new User();
user.setid(rs.getInt("id"));
user.setname(rs.getString("name"));;
}
}catch(Exception e){
e.printStackTrace();
}
finally
{
JdbcUtil.free(rs,ps,conn);
}
return user;
}
}
最后是连接数据库的类
package demo;
import java.sql.*;
public class JdbcUtil {
static String driverName=null;
static String url=null;
private JdbcUtil(){}
static{
try{
driverName="com.mysql.jdbc.Driver";
String url1="jdbc:mysql://localhost:3306/demo";
String url2="?user=root&password=rootroot";
String url3="&useUnicode=true&characterEncoding=UTF-8";
url=url1+url2+url3;
Class.forName(driverName);
}catch(Exception e)
{
throw new ExceptionInInitializerError(e);
}
}
public static Connection getConn() throws SQLException
{
return DriverManager.getConnection(url);
}
public static void free(ResultSet rs,Statement st,Connection conn)
{
try
{
if(rs!=null) rs.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
try
{
if(st!=null) st.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
if(conn!=null)
{
try
{
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
}
}
}
最后的结果