201819102017赵景云 第五次作业 实现增删改查

本文通过IDEA展示了如何使用JDBC连接MySQL数据库,实现用户信息的增删改查操作。示例中包含了Statement和PreparedStatement的用法,涉及用户对象(userBean)的创建、数据库连接、SQL语句执行等关键步骤。
摘要由CSDN通过智能技术生成

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命名的客户
现在开始进行查找

这是所有的用户
在这里插入图片描述
这是查找后的用户
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值