用jsp敲全部的增删改查连接数据库

思路

新建一个list文件夹

  1. js/jquery-2.1.4.min.js // js 文件
  2. WEB-INF/lib //用来放jar包

既然要连接数据库
mysql-connector-java-5.1.13-bin.jar 是用来连接数据库的

  1. 增加2个页面
    一个是写页面的
    一个是用来写java代码实现添加的
    删除 1个 批删1 个 修改 2个

遇到的问题

<!-- 解决乱码 -->
<%@ page contentType="text/html;charset=utf-8" %>
<!-- 导包 -->
<%@ page import="java.sql.*"%>

request.getParameter()  返回的 String  类型

分页  limit  初始页,每页大小

//分页   传2个东西
int pageNumber;//第几页
int pageSize;//页数尺寸
if(request.getParameter("pageNumber")==null||request.getParameter("pageNumber").equals("")){
	pageNumber =1;
}else{
	pageNumber = Integer.valueOf(request.getParameter("pageNumber"));
}
if(request.getParameter("pageSize")==null||request.getParameter("pageSize").equals("")){
	pageSize = 3;
}else{
	pageSize = Integer.valueOf(request.getParameter("pageSize"));
}
//计算 分页的初始下标
int current = (pageNumber-1)*pageSize;
// 为了防止在你上一页的是时候往回走  0  -1
//判断 如果 第几页的数小于1 的话
if(pageNumber<1){
	pageNumber =1;
}

//在这里写java代码  写计数
String sql = "select count(id) c from list";
Statement sc =  con.createStatement();
ResultSet sr =  sc.executeQuery(sql);
if(sr.next()){
//这个是 写  尾页  尾页的计算 = (计数-1)/页数大小+1
int countPage=(sr.getInt("c")-1)/pageSize+1;
//这个是用来写上一页的
int prePage = pageNumber -1;
int nextPage = pageNumber+1;
//上一页判断
if(prePage<1){
	prePage =1;
}
//下一页判断
if(nextPage > countPage){
	nextPage = countPage; 
}


<%%> 这个用来写 java代码
代码
列表页面

<!DOCTYPE html>
<%@ page contentType="text/html;charset=utf-8" %>
<%@ page import="java.sql.*"%>
<html lang="en">
<%
Connection con=null;
Statement cs=null;
ResultSet rs=null;
try{
//分页   传2个东西
int pageNumber;//第几页
int pageSize;//页数尺寸
//request.getParameter()  返回的 String  类型
if(request.getParameter("pageNumber")==null||request.getParameter("pageNumber").equals("")){
	pageNumber =1;
}else{
	pageNumber = Integer.valueOf(request.getParameter("pageNumber"));
}
if(request.getParameter("pageSize")==null||request.getParameter("pageSize").equals("")){
	pageSize = 3;
}else{
	pageSize = Integer.valueOf(request.getParameter("pageSize"));
}
//判断 如果 第几页的数小于1 的话
if(pageNumber<1){
	pageNumber =1;
}
//计算 分页的初始下标
int current = (pageNumber-1)*pageSize;
//分页  出示下标,每页大小
String select_sql = "select * from list limit "+current+","+pageSize;
Class.forName("com.mysql.jdbc.Driver");
 con = DriverManager.getConnection("jdbc:mysql://localhost:3306/dian","root","root");
 cs =  con.createStatement();
 rs =  cs.executeQuery(select_sql);
%>
<head>
	<meta charset="UTF-8">
	<title>列表页面</title>
</head>
<!-- 导一下js -->
<script type="text/javascript" src="./js/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
function selectAll(obj){
if(obj.checked){
	$(".ck").each(function(){
		$(this).prop("checked",true);
	})
}else{
	$(".ck").each(function(){
		$(this).prop("checked",false);
	})
}
}
function fx(){
$(".ck").each(function(){
	$(this).prop("checked",!$(this).prop("checked"));
});
}
function ps(){
var res="";
$(".ck:checked").each(function(){
	/*if($(this).attr("checked",true)){
		var va = $(this).val();
		res += ","+va;
	res += ","+$(this).val();
})
res=res.substring(1);
if(confirm("确认要删除吗?")){
	location="delAll.jsp?id="+res;
}
}
</script>
<body>
<button onclick="ps()">批删</button>
<table border="1" align="center">
	<tr>
		<td>
		<input type="checkbox" onclick="selectAll(this)">
		<button onclick="fx()">反选</button>
		</td>
		<td>姓名</td>
		<td>出生日期</td>
		<td>性别</td>
		<td>操作<a href="toAdd.jsp">增加</a></td>
	</tr>
	<%
		while(rs.next()){
	%>
	<tr>
		<td><input type="checkbox" class="ck" value="<%=rs.getInt("id")%>"></td>
		<td><%=rs.getString("name")%></td>
		<td><%=rs.getDate("birth_date")%></td>
		<td><%=rs.getString("sex")%></td>
		<td>
			<a href="del.jsp?id=<%=rs.getInt("id")%>">删除</a>||
			<a href="toUpdate.jsp?id=<%=rs.getInt("id")%>">修改</a>
		</td>
	</tr>
	<%		
		}
	%>
	<%
//在这里写java代码  写计数
	String sql = "select count(id) c from list";
	Statement sc =  con.createStatement();
	ResultSet sr =  sc.executeQuery(sql);
	if(sr.next()){
		//这个是 写  尾页  尾页的计算 = (计数-1)/页数大小+1
		int countPage=(sr.getInt("c")-1)/pageSize+1;
		//这个是用来写上一页的
		int prePage = pageNumber -1;
		int nextPage = pageNumber+1;
		if(prePage<1){
			prePage =1;
		}
		if(nextPage > countPage){
			nextPage = countPage; 
		}
%>
	<tr>
		<td colspan="10">
			第<%=pageNumber%>/<%=countPage%>页 共<%=sr.getInt("c")%>条数据
			<a href="list.jsp?pageNumber=1&pageSize=<%=pageSize%>">首页</a>
			<a href="list.jsp?pageNumber=<%=prePage%>&pageSize=<%=pageSize%>">上一页</a>
			<a href="list.jsp?pageNumber=<%=nextPage%>&pageSize=<%=pageSize%>">下一页</a>
			<a href="list.jsp?pageNumber=<%=countPage%>&pageSize=<%=pageSize%>">末页</a>
		</td>
	</tr>
<%
	}
%>
</table>
<%
// 这个是用来连接前面try  catch 的
}catch(Exception e){
e.printStackTrace();
}finally{
if(rs!= null){
try{
	rs.close();
}catch(Exception e){
	e.printStackTrace();
}
}
if(cs!=null){
try{
	cs.close();
}catch(Exception e){
	e.printStackTrace();
}
}
if(con!= null){
	try{
		con.close();
	}catch(Exception e){
		e.printStackTrace();
	}
}
}
%>
<!-- <%%> 这个里面写的是java代码-->
</body>
</html>

/连接数据库的那四步
//1. 加载驱动
//2.通过驱动管理器Driver manager 创建数据库连接 connection
//3.通过数据库创建预编译对象
//4.执行查询
String id = request.getParameter(“id”);
String sql = “delete from list where id in(”+id+")";
Class.forName(“com.mysql.jdbc.Driver”);
Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/dian”,“root”,“root”);
Statement cs = con.createStatement();
cs.executeUpdate(sql);
response.sendRedirect(“list.jsp”);

或者
String id = request.getParameter(“id”);
String sql = “select *from list where id =”+id;
Class.forName(“com.mysql.jdbc.Driver”);
Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:3306/dian”,“root”,“root”);
//这里用的是 PreparedStatement 和 statement 做一下区别 前后2个单词不一样多一个d
PreparedStatement pre = con.prepareStatement(sql);
ResultSet rs = pre.executeQuery();

猜你喜欢

转载自blog.csdn.net/fenghuanxia66/article/details/85244764