idea 连接数据库实现增删改查
数据库表格截图
(实现增删改查的时候,由于使用的java bean与index.jsp是一样的,不再重复显示)
user Bean user.java
package com.name;
public class user {
private String username;
private String password;
private String gender;
private int age;
public String getUsername()
{
return username;
}
public void setUsername(String username){
this.username=username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password= password;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender= gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<form method="post" action="register.jsp">
用户名:<input type="text" name="username"><br>
密码:<input type="text" name="password"><br>
性别:<input type="text" name="gender"><br>
年龄:<input type="text" name="age"><br>
<button type="submit">注册</button>
</form>
</body>
</html>
首先使用Statement实现在数据库增加用户
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Driver" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="javax.swing.plaf.nimbus.State" %>
<%@ page import="java.sql.Statement" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="user" class="com.name.user">
</jsp:useBean>
<jsp:setProperty name="user" property="*"></jsp:setProperty>
<%
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://127.0.0.1:3306/book?user=root&password=root";
Connection connection = DriverManager.getConnection(url);
String sql = "insert into user (username,password,gender,age) values ('"+user.getUsername()+"','"+user.getPassword()+"',1,23)";
Statement stmt = connection.createStatement();
int count = stmt.executeUpdate(sql);
if(count == 0){
out.print("注册失败");
}else{
out.print("注册成功");
}
%>
使用PreparedStatement执行sql语句
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Driver" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="javax.swing.plaf.nimbus.State" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="com.mysql.jdbc.PreparedStatement" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="user" class="com.name.user"></jsp:useBean>
<jsp:setProperty name="user" property="*"></jsp:setProperty>
<%
//user对象实例化
//userBean user= new userBean();
//给对象赋值
//user.setUsername(request.getParameter("username"));
//user.setPassword(request.getParameter("password"));
//数据库操作
//1.加载驱动程序
Class.forName("com.mysql.jdbc.Driver");//报错,说明驱动包没有完成
//建立数据库连接 18.3.22.1
String url ="jdbc:mysql://127.0.0.1:3306/book";
Connection connection = DriverManager.getConnection(url,"book","book");
String sql = "insert into user(username,password,gender,age) values (?,?,?,?)";
PreparedStatement temt = connection.prepareStatement(sql);
temt.setString(1,request.getParameter("username"));
temt.setString(2,request.getParameter("password"));
temt.setString(3,request.getParameter("gender"));
temt.setInt(4,request.getParameter("age"));
ResultSet rs = temt.executeQuery();
截图如下:增加用户名为admin1的用户,数据库表格添加id自增
截图如下:
使用Statement对象执行sql语句,实现删除操作
<jsp:setProperty name="user" property="*"></jsp:setProperty>
<%
//user对象实例化
//userBean user= new userBean();
//给对象赋值
//user.setUsername(request.getParameter("username"));
//user.setPassword(request.getParameter("password"));
//数据库操作
//1.加载驱动程序
Class.forName("com.mysql.jdbc.Driver");//报错,说明驱动包没有完成
//建立数据库连接 18.3.22.1
String url ="jdbc:mysql://127.0.0.1:3306/book?user=root&password=root";
Connection connection = DriverManager.getConnection(url);
//3创建Statement对象 执行sql语句 alt+enter 自动引入缺失的类
Statement stmt = connection.createStatement();
//删除
String sql="delete from user where id = 4 ";
int count = stmt.executeUpdate(sql);
if(count == 0){
out.print("删除失败");
}else{
out.print("删除成功");
}
%>
使用PreparedStatement执行sql语句,实现删除操作
<%@ page import="java.sql.*" %><%--
Created by IntelliJ IDEA.
User: 吧
Date: 2020/10/6
Time: 14:12
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>主页</title>
</head>
<body>
<%
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//建立数据库连接
String url = "jdbc:mysql://localhost:3306/book";
Connection connection = DriverManager.getConnection(url,"root","root");
//预定义对象
String sql = "delete from user where id = ? ";//使用问号代替参数
PreparedStatement pstm = connection.prepareStatement(sql);
pstm.setInt(4);
首先看数据库内,现在是由id为4的用户的
实现操作后的运行截图以及数据库变化截图如下:
使用Statement对象修改用户
现在要修改id为3的用户stadius的值为3,代码如下:
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Driver" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="javax.swing.plaf.nimbus.State" %>
<%@ page import="java.sql.Statement" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="user" class="com.name.user">
</jsp:useBean>
<jsp:setProperty name="user" property="*"></jsp:setProperty>
<%
//user对象实例化
//userBean user= new userBean();
//给对象赋值
//user.setUsername(request.getParameter("username"));
//user.setPassword(request.getParameter("password"));
//数据库操作
//1.加载驱动程序
Class.forName("com.mysql.jdbc.Driver");//报错,说明驱动包没有完成
//建立数据库连接 18.3.22.1
String url ="jdbc:mysql://127.0.0.1:3306/book?user=root&password=root";
Connection connection = DriverManager.getConnection(url);
//3创建Statement对象 执行sql语句 alt+enter 自动引入缺失的类
Statement stmt = connection.createStatement();
//使用Statement 对象执行sql语句 增删改的数据操作使用executeUpdate
String sql = "update user set stadius = 3 where id= 3";
int count = stmt.executeUpdate(sql);
if(count == 0){
out.print("修改失败");
}else{
out.print("修改成功");
}
%>
使用PreparedStatement执行sql语句,实现修改语句
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Driver" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="javax.swing.plaf.nimbus.State" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="com.mysql.jdbc.PreparedStatement" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="user" class="com.name.user"></jsp:useBean>
<jsp:setProperty name="user" property="*"></jsp:setProperty>
<%
//user对象实例化
//userBean user= new userBean();
//给对象赋值
//user.setUsername(request.getParameter("username"));
//user.setPassword(request.getParameter("password"));
//数据库操作
//1.加载驱动程序
Class.forName("com.mysql.jdbc.Driver");//报错,说明驱动包没有完成
//建立数据库连接 18.3.22.1
String url ="jdbc:mysql://127.0.0.1:3306/book";
Connection connection = DriverManager.getConnection(url,"book","book");
String sql="update user set statius=? where statius=?";
PreparedStatement pstm=connection.prepareStatement(sql);
pstm.setString(1,3);
未修改时表格是这样的,id为3时候的stadius的值是1
上述代码的运行以及数据库的变化如下:
使用PreparedStatement查找用户(想要查询123命名的客户)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>主页</title>
</head>
<body>
<%
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
//建立数据库连接
String url = "jdbc:mysql://localhost:3306/book";
Connection connection = DriverManager.getConnection(url,"root","root");
//预定义对象
String sql = "select * from user where username = ? and password = ? ";//使用问号代替参数
PreparedStatement temt = connection.prepareStatement(sql);
temt.setString(1,request.getParameter("username"));
temt.setString(2,request.getParameter("password"));
ResultSet rs = temt.executeQuery();
//结果数据
while (rs.next())
{
out.print(rs.getString("username")+"-"+rs.getString(2)+"<br>");
}
%>
</body>
</html>
使用Statement查询用户
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Driver" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="javax.swing.plaf.nimbus.State" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="com.mysql.jdbc.PreparedStatement" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<jsp:useBean id="user" class="com.name.user"></jsp:useBean>
<jsp:setProperty name="user" property="*"></jsp:setProperty>
<%
Statement stmt = connection.createStatement();
//用户名username为123
String sql = "select * from user where username = '"+request.getParameter("username")+"'";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()){
out.print(rs.getString("username")+"-"+rs.getString(1)+"<br>");
}
%>
当前数据库的表格user是如下显示的
想要查询123命名的客户
现在开始进行查找
这是所有的用户
这是查找后的用户