JavaWeb-JDBC增删改查

目录

一、实验内容 

二、项目结构

三、数据库

四、源代码

4.1 User.java 

4.2 Test.java 

4.3 suc.jsp 

4.4 insert.jsp

4.5 delete.jsp 

4.6 query.jsp 


一、实验内容 

二、项目结构

三、数据库

数据库名称:users

表名:a

创建表的SQL语句:

create table a
(
    uname varchar(20),
    pword varchar(20),
    gender varchar(10)
)

四、源代码

4.1 User.java 

package test;

public class User {
	
	String uname;
	String pword;
	String gender;
	
	public void setUname(String uname) {
		this.uname = uname;
	}
	public String getUname() {
		return uname;
	}
	public void setPword(String pword) {
		this.pword = pword;
	}
	public String getPword() {
		return pword;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getGender() {
		return gender;
	}
}

4.2 Test.java 

package test;

import java.sql.*;
import com.microsoft.sqlserver.jdbc.SQLServerDriver; //SQL Server数据库引擎
import java.util.ArrayList;

public class Test {
	static Connection con; //连接数据库对象。必须加static,否则会报错
	static Statement smt;  //创建SQL命令的对象
	static ResultSet rs; //返回SQL语句查询结果集
	
	static String url = "jdbc:sqlserver://localhost:1433;databaseName=users"; //SQL Server数据源URL
	static String user = "yufuyou";
	static String password = "bugaosuni";
	
	static void open() {
		try {
			DriverManager.registerDriver(new SQLServerDriver()); //加载驱动
		}catch(SQLException e) {
			System.out.println("驱动不正确!");
		}
		System.out.println("数据库驱动成功!");
		
		try {
			con = DriverManager.getConnection(url, user, password);
			smt = con.createStatement();
		}catch(SQLException e) {
			e.printStackTrace();
			System.out.println("连接数据库失败!");
		}
		System.out.println("数据库连接成功!");
	} //打开数据库
	
	static void close() {
		try {
			if (rs != null) {
				rs.close();
			}
			if (smt != null) {
				smt.close();
			}
			if (con != null) {
				con.close();
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
	} //关闭数据库
	
	public static User getOneUser(String uname, String pword) {
		User u = new User();
		String sql = "select * from a where uname = '"+uname+"' and pword = '"+pword+"'";
		
		open();
		try {
			rs = smt.executeQuery(sql);
			if (rs.next()) {
				u.setUname(rs.getString(1)); //写列序号或者列名
				u.setPword(rs.getString(2));
				u.setGender(rs.getString(3));
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		close();
		
		return u;
	} //得到某一个用户的信息
	
	public static ArrayList<User> getAllUsers(){
		ArrayList<User> list = new ArrayList<User>();
		String sql = "select * from a";
		
		open();
		try {
			rs = smt.executeQuery(sql);
			while (rs.next()) {
				User u = new User();
				u.setUname(rs.getString(1));
				u.setPword(rs.getString(2));
				u.setGender(rs.getString(3));
				list.add(u);
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		close();
		
		return list;
	} //得到所有用户的信息
	
	public static int InsertNewUser(User user) {
		int flag = 0;
		String sql = "insert into a values('"+user.getUname()+"', '"+user.getPword()+"', '"+user.getGender()+"')";
		
		open();
		try {
			flag = smt.executeUpdate(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		close();
		
		return flag;
	} //增添新用户。executeUpdate 方法返回的是影响的行数,如果大于0,则表明成功插入
	
	public static int DeleteUser(String uname) {
		int flag = 0;
		String sql = "delete from a where uname = '"+uname+"'";
		
		open();
		try {
			flag = smt.executeUpdate(sql);
		}catch(SQLException e) {
			e.printStackTrace();
		}
		close();
		
		return flag;
	} //删除用户
}

4.3 suc.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="test.Test, test.User, java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JDBC增删改查</title>
</head>
<body>

	<%
		ArrayList<User> userlist = Test.getAllUsers();
	%>
	<h2 align="center">UserList</h2>
	<table cellpadding="2" align="center">
		<thead> <!-- 表头标签 -->
			<tr>
				<th>姓名</th>
				<th>密码</th>
				<th>性别</th>
			</tr>	
		</thead>
		<tbody> <!-- 表格主体标签 -->
		<%
			for (User user : userlist) {	
		%>
			<tr>
				<td><%= user.getUname() %></td>
				<td><%= user.getPword() %></td>
				<td><%= user.getGender() %></td>
				<td><a href="delete.jsp?uname=<%= user.getUname() %>">删除</a></td>
			</tr>
		 <%
			}
		 %>
		 	<tr>
				<td><button onclick="window.location.href='insert.jsp'">插入</button></td>
				<td><button onclick="window.location.href='query.jsp'">查询</button></td>
			</tr>
	</table>
	
</body>
</html>

4.4 insert.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="test.Test, test.User" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>insert</title>
</head>
<body>

	<form action="insert.jsp" method="post">
		<table cellpadding="2" align="center">
			<tr>
				<td align="center"><h2>表单</h2></td>
			</tr>
			<tr>
				<td>姓名:</td>
				<td><input type="text" name="uname"></td>
			</tr>
			<tr>
				<td>密码:</td>
				<td><input type="password" name="pword"></td>
			</tr>
			<tr>
				<td>性别:</td>
				<td><input type="radio" name="gender" value="female">女</td>
				<td><input type="radio" name="gender" value="male">男</td>
			</tr>
			<tr>
				<td><input type="submit" value="提交"></td>
			</tr>
		</table>
	</form>
	<%
		if (request.getMethod().equalsIgnoreCase("post")){ //等到页面提交之后再进行插入操作
			User user = new User();
			user.setUname(request.getParameter("uname"));
			user.setPword(request.getParameter("pword"));
			user.setGender(request.getParameter("gender"));
			int flag = Test.InsertNewUser(user);
			if (flag > 0){
				out.print("插入成功!");
	%>			
			<script type="text/javascript">
                setTimeout(function() {
                    window.location.href = "suc.jsp";
                }, 3000); //设置3s后跳转
            </script>
	<%
			}
			else{
				out.print("插入失败!");
			}
		} //插入中文会乱码。
	%>

</body>
</html>

4.5 delete.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="test.Test, test.User" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>delete</title>
</head>
<body>

	<%
		String uname=request.getParameter("uname"); 
		int flag = Test.DeleteUser(uname);
		if (flag > 0){
			out.print("删除成功!");
	%>
			<script type="text/javascript">
                setTimeout(function() {
                    window.location.href = "suc.jsp";
                }, 3000); //设置3s后跳转
            </script>
	<%
		}
		else{
			out.print("删除失败!");
		}
	%>

</body>
</html>

4.6 query.jsp 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="test.Test, test.User" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>query</title>
</head>
<body>

	<form action="query.jsp" align="center" method="post">
		<table>
			<tr>
				<td align="center"><h2>查询用户性别</h2></td>
			</tr>
			<tr>
				<td>姓名:</td>
				<td><input type="text" name="uname"></td>
			</tr>
			<tr>
				<td>密码:</td>
				<td><input type="password" name="pword"></td>
			</tr>
			<tr>
				<td><input type="submit" value="查询"></td>
			</tr>
		</table>
	</form>
	<%
		if (request.getMethod().equalsIgnoreCase("post")){
			User user = Test.getOneUser(request.getParameter("uname"), request.getParameter("pword"));
	%>
			<table>
				<tr>
					<td>性别:</td>
					<td><%=user.getGender() %></td>
				</tr>
			</table>
	<%
		}
	%>

</body>
</html>

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java Web开发中,数据库增删改查是非常重要的操作。一般情况下,我们会使用JDBCJava Database Connectivity)来完成数据库的操作,下面是数据库增删改查的示例代码: 1. 增加数据 ```java public void addData(Connection conn, String name, int age) throws SQLException { String sql = "INSERT INTO user(name, age) VALUES (?, ?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, name); pstmt.setInt(2, age); pstmt.executeUpdate(); pstmt.close(); } ``` 2. 删除数据 ```java public void deleteData(Connection conn, int id) throws SQLException { String sql = "DELETE FROM user WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setInt(1, id); pstmt.executeUpdate(); pstmt.close(); } ``` 3. 更新数据 ```java public void updateData(Connection conn, int id, String name, int age) throws SQLException { String sql = "UPDATE user SET name=?, age=? WHERE id=?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, name); pstmt.setInt(2, age); pstmt.setInt(3, id); pstmt.executeUpdate(); pstmt.close(); } ``` 4. 查询数据 ```java public List<User> queryData(Connection conn) throws SQLException { String sql = "SELECT * FROM user"; PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); List<User> userList = new ArrayList<>(); while(rs.next()) { User user = new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setAge(rs.getInt("age")); userList.add(user); } rs.close(); pstmt.close(); return userList; } ``` 以上是使用JDBC实现数据库增删改查示例代码,其中User是一个JavaBean类,用于封装数据库表中的一条记录。在实际开发中,我们还可以使用ORM框架(如Hibernate、MyBatis)来操作数据库,更加方便快捷。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值