前端表单提交数据,后端jdbc处理并插入到MySQL中

这个技术是做到了前后端分离的一个简单入门案例.
需求:前端在表单上输入一些指定的数据然后提交,后端接收提交的数据通过jdbc处理到MySQL数据库中
需求1在浏览器中提交学生的姓名,性别,学号,住址,学校
需求2jdbc解析数据发送到数据库中
环境: HBuilder X,IDEA,MySQL

一,在数据库中
1.创建表 但字段要和前端IDEA的位置要匹配
二,在IDEA中
1.创建一个Spring initializr,在pom.xml中添加mysql的jar包,和你的数据库版本要对应
2.创建以个学生类,用来封装学生的一些属性

package cn.tedu.demo;

public class Student {
//这里的属性位置要和前端上的属性位置相对应,要不然会400的
    private String name;
    private String sex;
    private  int id;
    private  String address;
    private String School;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getSchool() {
        return School;
    }

    public void setSchool(String school) {
        School = school;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", id=" + id +
                ", address='" + address + '\'' +
                ", School='" + School + '\'' +
                '}';
    }
}

2.创建一个Controller访问类

package cn.tedu.demo;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController//访问方式
@RequestMapping("student")//访问类的方式
public class Hello {
    @RequestMapping("save")//访问方法的方式
    public Object  save(Student s){//返回值类型是Object,参数类型是Student
        System.out.println("保存成功"+s);//测试IDEA是否可以接收前端提交过的数据
        return "保存成功";//成功给前端一个反馈,如果失败就直接报错方便修改错误
    }
}

3.使用jdbc解析数据

 try {
 					//传输SQL
            c=getConnection();
            String sql="insert into student values (?,?,?,?,?)";//SQL骨架  ?代表占位符
            ps=c.prepareStatement(sql);
            //通过对象获取属性值.到这里的数据要和前端数据库要一致,
            //所有的数据属性位置都要保持一致,要不然会报类型不匹配异常.
            ps.setObject(1,s.getName());
            ps.setObject(2,s.getSex());
            ps.setObject(3,s.getId());
            ps.setObject(4,s.getAddress());
            ps.setObject(5,s.getSchool());
					 //执行SQL
            ps.executeUpdate();
            System.out.println("插入成功");
        } catch (SQLException throwables) {
            System.out.println("插入失败");
            throwables.printStackTrace();
        }finally{
            close(ps,c );
        }
    }
    public Connection getConnection(){
        Connection c=null ;
        try {
        //注册并登录
            Class.forName("com.mysql.jdbc.Driver");
            String url="jdbc:mysql://localhost:3306/cgb00?characterEncoding=utf8&serverTimezone=Asia/Shanghai";//  ? 是防止中文乱码
            c= DriverManager.getConnection(url,"root","root");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return c;
    }
    public void close(PreparedStatement ps,Connection c ){//释放资源
        if(ps!=null){
            try {
                ps.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (c!=null){
            try {
                c.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

4.在HBuilder X中
这里就只展示比较关键的代码就一行

<form  method="post" action="http://localhost:8080/student/save"></form>
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以帮您完成这个任务。 首先,我们需要创建一个包含用户名和性别输入框的表单。这里我们使用 HTML 和 JSP 来实现: ```html <form action="submit-form" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username"> <br> <label for="gender">性别:</label> <input type="radio" id="gender_male" name="gender" value="male"> <label for="gender_male">男</label> <input type="radio" id="gender_female" name="gender" value="female"> <label for="gender_female">女</label> <br> <input type="submit" value="提交"> </form> ``` 这个表单包含一个文本输入框和两个单选按钮,分别用于输入用户名和性别信息。当用户提交表单时,它将被发送到 URL `/submit-form`。 接下来,我们需要编写一个 Servlet 来处理表单数据并将其保存到数据库。我们可以使用 JDBC 连接到数据库并执行 INSERT 语句来实现这个功能。下面是一个示例 Servlet 代码: ```java import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SubmitFormServlet extends HttpServlet { // 数据库连接信息 private static final String DB_URL = "jdbc:mysql://localhost:3306/mydb"; private static final String DB_USER = "root"; private static final String DB_PASSWORD = "password"; @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.getParameter("username"); String gender = req.getParameter("gender"); // 连接数据库并执行 INSERT 语句 try (Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD)) { PreparedStatement stmt = conn.prepareStatement("INSERT INTO users (username, gender) VALUES (?, ?)"); stmt.setString(1, username); stmt.setString(2, gender); stmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } resp.sendRedirect("success.jsp"); // 重定向到成功页面 } } ``` 在这个示例,我们从表单获取用户名和性别信息,然后使用 JDBC 连接到数据库,并执行 INSERT 语句将数据插入到 `users` 表。最后,我们重定向到一个成功页面。 请注意,这个示例是一个简单的演示,实际应用需要更加严谨的数据验证和错误处理。 希望这个示例可以帮助您理解如何使用 JSP 和 Servlet 创建表单并将数据保存到数据库。如果您有任何问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天行舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值