9.3javaweb总结

1.axios交互

发送数据到后端。

alert('注册成功(数据正在发送后端)!');
        // 获取表单数据
        //const formData = new URLSearchParams(new FormData(document.getElementById("register-form"))).toString();
        const form = document.getElementById("register-form");
        const formData = new FormData(form);
        const dataObject = {};
        formData.forEach((value, key) => {
            dataObject[key] = value;
        });
        // 发起 Axios 请求
        await axios.post('/demo5_war/Registered/AddUser', dataObject, {
            headers: {
                 //'Content-Type': 'application/x-www-form-urlencoded'
                'Content-Type': 'application/json'
            }
        })
            .then(function (response) {
                // 打印响应数据
                console.log(response);
                console.log(response.data);
                if (response.data != null) {
                    alert("注册成功!您的账号为:"+response.data.id);
                    window.location.href = 'dashboard.html';
                } else {
                    alert("错误:未收到数据");
                }
            })
            .catch(function (error) {
                // 打印 Axios 请求错误信息
                console.error("Axios Error:", error);
                alert("处理您的请求时出错.");
            });

后端接收

RegisterController这个控制器继承与BaseServlet2,会先执行父类的servic方法,在执行这个方法,返回值是需要发送给客户端的,所有在这里先转化成json类型的。
 

获取相关数据后,在对应的类中通过注解查询相关方法,然后通过注解进行参数注入执行相关方法

        String uri = req.getRequestURI(); // 获取请求的 URI
        System.out.println("uri = " + uri);
        String methodName = new String(uri.substring(uri.lastIndexOf("/") + 1)).toString(); // 从 URI 中提取方法名
        Method[] methods = this.getClass().getDeclaredMethods(); // 获取当前类中所有声明的方法
        String contentType = req.getContentType(); // 获取请求的内容类型
        System.out.println("请求类型为:" + contentType);
        ObjectMapper objectMapper = new ObjectMapper(); // 用于将 JSON 转换为 Java 对象
        JsonNode jsonNode = null;

2.Mybtis的应用

     // 加载 MyBatis 的核心配置文件,获取 SqlSessionFactory
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        // 获取 SqlSession 对象,用它来执行 SQL
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        // 获取接口代理
        UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
  • sqlSession.getMapper(UserMapper.class) 方法获取 UserMapper 接口的实现代理,用于执行数据库操作。
  • UserMapper 是一个接口,定义了与数据库交互的方法,如查询、插入、更新、删除等。

执行数据的插入(注册),并释放资源。

   userMapper.insertUser(user);
sqlSession.close();

UserMapper接口内部的大致形式

通过MyBatisX插件可以快速找到对应的sql语句。

最后在UserMapper.xml里编写sql语句即可。

这里的parameterType="javaWeb.domain.User表示将一个 User 对象作为参数传递给 SQL 语句。MyBatis 使用这个类来自动提取属性,并将它们映射到 SQL 语句中的相应位置。

  <!-- 插入用户 --> 
<insert id="insertUser" parameterType="javaWeb.domain.User">
//sql语句
  </insert>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值