1. 程式人生 > >用JAVA連線SQL實現更新資料

用JAVA連線SQL實現更新資料

在程式碼中更新資料

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改記錄頁面</title>
</head>
<body>
<% 		String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//載入JDBC驅動
		String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=zero";
//連線伺服器和資料庫
		String userName = "sa"; // 預設使用者名稱
		String userPwd = "123456"; // 密碼
		Connection dbConn = null;
		try {
			Class.forName(driverName);
			dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
		} catch (Exception e) {
			e.printStackTrace();
		}
		request.setCharacterEncoding("UTF-8");//設定字元編碼,避免出現亂碼
		String sql="update stu_info set weight=? where name=?";//sql語句
		PreparedStatement pstmt=dbConn.prepareStatement(sql);//建立介面物件
		pstmt.setFloat(1, 60);
		pstmt.setString(2, "嘻嘻");
		int n=pstmt.executeUpdate();//這裡面不需要引數
		
		if(n==1){%> 資料修改成功!<br> <%}
		else{%> 資料修改失敗!<br> <%}
		if(pstmt!=null) {pstmt.close();}
		if(dbConn!=null) {dbConn.close();}
	%>
</body>
</html>

在網頁中,根據自己提交的條件更新資料

提交程式碼

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改記錄的條件提交頁面</title>
</head>
<body>
請選擇修改記錄所滿足的條件<hr width="100%" size="3"><!-- width設定線的長度 -->
<form action="update_stu_2_edit.jsp" method="post"><br><!-- 必需的 action 屬性規定當提交表單時,向何處傳送表單資料。 -->
	姓名:<input type="text" name="name"><br><br>
	性別:男<input type="radio" value="男" name="sex">
		   女<input type="radio" value="女" name="sex"><br><br>
		   <input type="submit" value="提交">
		   &nbsp;&nbsp;&nbsp;&nbsp;
		   <input type="reset" value="取消">
		   </form>
</body>
</html>

編輯程式碼

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改編輯頁面</title>
</head>
<body>
<% 		String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//載入JDBC驅動
		String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=zero";
//連線伺服器和資料庫
		String userName = "sa"; // 預設使用者名稱
		String userPwd = "123456"; // 密碼
		Connection dbConn = null;
		try {
			Class.forName(driverName);
			dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
		} catch (Exception e) {
			e.printStackTrace();
		}
		request.setCharacterEncoding("UTF-8");//設定字元編碼,避免出現亂碼
		String sex=request.getParameter("sex");
		String name=request.getParameter("name");
		session.setAttribute("sex",sex);
		session.setAttribute("name",name);
		String sql="select * from stu_info where sex=? and name=?";//sql語句
		PreparedStatement pstmt=dbConn.prepareStatement(sql);//建立介面物件
		pstmt.setString(1,sex);
		pstmt.setString(2,name);
		ResultSet rs=pstmt.executeQuery();//這裡面不需要引數
		if(rs.next()){
			int id=rs.getInt("id");
			String name2=rs.getString("name");
			String sex2=rs.getString("sex");
			int age=rs.getInt("age");
			float weight=rs.getFloat("weight");
			float hight=rs.getFloat("hight");
			
			if(rs!=null){rs.close();}
			if(pstmt!=null) {pstmt.close();}
			if(dbConn!=null) {dbConn.close();}
%>
		<form action="update_stu_2.jsp" method="post">	
		<!-- method 屬性規定如何傳送表單資料(表單資料傳送到 action 屬性所規定的頁面)。

		表單資料可以作為 URL 變數(method="get")或者 HTTP post (method="post")的方式來發送。 -->
		<table border="0" width="238" height="252">
		<tr><td>學號</td><td><input name="id" value=<%=id%>></td></tr>
		<tr><td>姓名</td><td><input name="name2" value=<%=name2%>></td></tr>
		<tr><td>性別</td><td><input name="sex2" value=<%=sex2%>></td></tr>
		<tr><td>年齡</td><td><input name="age" value=<%=age%>></td></tr>
		<tr><td>體重</td><td><input name="weight" value=<%=weight%>></td></tr>
		<tr><td>身高</td><td><input name="hight" value=<%=hight%>></td></tr>
		<tr align="center">
		<td colspan="2">
			<input type="submit" value="提交">&nbsp;&nbsp;&nbsp;&nbsp;
		   <input type="reset" value="取消">
		   </td>
		   </tr>
		</table>
		</form>
		<%}
		else{%>
		沒有找到合適條件的記錄!!<% 
		if(rs!=null){rs.close();}
		if(pstmt!=null) {pstmt.close();}
		if(dbConn!=null) {dbConn.close();}
	 }%>
</body>

接收程式碼

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改後重寫記錄頁面</title>
</head>
<body>
<% 		String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//載入JDBC驅動
		String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=zero";
//連線伺服器和資料庫
		String userName = "sa"; // 預設使用者名稱
		String userPwd = "123456"; // 密碼
		Connection dbConn = null;
		try {
			Class.forName(driverName);
			dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
		} catch (Exception e) {
			e.printStackTrace();
		}
		request.setCharacterEncoding("UTF-8");//設定字元編碼,避免出現亂碼
		String sql="update stu_info set id=?,name=?,sex=?,age=?,weight=?,hight=? where name=? and sex=?";//sql語句
		PreparedStatement pstmt=dbConn.prepareStatement(sql);//建立介面物件
		int id=Integer.parseInt(request.getParameter("id"));
		String name2=request.getParameter("name");
		String sex2=request.getParameter("sex2");
		int age=Integer.parseInt(request.getParameter("age"));
		float weight=Float.parseFloat(request.getParameter("weight"));
		float hight=Float.parseFloat(request.getParameter("hight"));
		String name=(String)session.getAttribute("name");
		String sex=(String)session.getAttribute("sex");
		pstmt.setInt(1,id);    //傳遞引數
		pstmt.setString(2,name2);
		pstmt.setString(3,sex2);
		pstmt.setInt(4,age);
		pstmt.setFloat(5,weight);
		pstmt.setFloat(6,hight);
		pstmt.setString(7,name);
		pstmt.setString(8,sex);
		int n=pstmt.executeUpdate();//這裡面不需要引數
		
		if(n>=1){%> 重寫資料成功!<br> <%}
		else{%> 重寫資料失敗!<%=n %><br> <%}
		if(pstmt!=null) {pstmt.close();}
		if(dbConn!=null) {dbConn.close();}
	%>
</body>
</html>