【问题标题】:Springboot with Javascript and MYSQL带有 Javascript 和 MYSQL 的 Spring Boot
【发布时间】:2021-05-29 01:58:35
【问题描述】:

我正在 springboot 中创建一个可以正常工作的过滤器页面。当我将我的 javascript 添加到 html 页面以使用 .change 事件侦听器进行查询时,我想使用此查询在提交表单之前实时显示可用结果。它看起来像这样(更短的版本,否则它只是 var 声明不是问题的一部分)

$("#leadsForm").change(function () {
    //revenue
    var revMin = document.getElementById("revenueMin").value
    var revMax = document.getElementById("revenueMax").value

    //reg date
    var regDateMin = document.getElementById("regDateMin").value
    var regDateMax = document.getElementById("regDateMax").value

    var mainBranch = $('#mainBranch').val();
    var specificBranch = $('#specificBranch').val();

    var county = $('#county').val();

    var tel = document.getElementById("containsTel").value
    var contactPerson = document.getElementById("containsContactPerson").checked
    var location = document.getElementById("containsLocation").checked
    var employed = document.getElementById("containsEmployed").checked
    var keyValues = document.getElementById("containsKeyValues").checked
    var email = document.getElementById("containsEmail").checked
    var website = document.getElementById("containsWebsite").checked
    
var wholeQuery = "SELECT "+selectedColumns + " from company" + " WHERE " + revenueSelector + 
    regDateSelector + branchSelector +
        countySelector + telSelector + keyValuesSelector + contactPersonSelector + emailSelector +
        websiteSelector + locationSelector + employedSelector;

    console.log(wholeQuery)

我想找到一种方法来使用这个查询,JAVASCRIPT SIDE 来根据用户输入在 .change 事件监听器上更改可用的结果,上面的变量在我的变量“wholeQuery”中。

我用代码

const mysql = require((["mysql"]))
const db = mysql.createConnection({
    host : "localhost",
    user : "*****",
    password: "*****",
    database: "mydb"
})
console.log(db)

但得到错误:

    Uncaught Error: Script error for "mysql"
    https://requirejs.org/docs/errors.html#scripterror
        at makeError (require.js:5)
        at HTMLScriptElement.onScriptError (require.js:5)

问题是我无法通过 Javascript 连接到我的 SQL 数据库,除了上述方法之外,还有其他方法吗?我正在做大多数其他线程推荐的解决方案,但它不适用于我的情况,因为我的项目不是 node.js 项目。

【问题讨论】:

  • 你能把问题陈述更清楚吗?
  • 别忘了引入查询的验证和转义!任何 HTML 元素都可能被恶意用户操纵。

标签: javascript spring-boot spring-mvc mysql-workbench


【解决方案1】:

我有点疑惑,为什么要在javascript中直接连接MySQL?在 Springboot 中进行 API 调用,js 端与之交谈以获取此信息不是更有意义吗?从您的代码片段来看,您有一个类似like this one 的 node.js 项目?

如果您使用的是 Springboot,我认为您需要创建一个与 MySQL 对话的 API,这样您的 javascript 将调用该 API(可能使用类似 Axios 的东西?)

【讨论】:

  • 嗨,这听起来对我来说是一个很好的解决方案。我想将它连接到我的 javascript 的原因是因为我认为这是最简单的方法(可能不是)。我将尝试制作一个 api 来检索信息。谢谢!
  • API 将更加安全,未来可能会被其他产品使用。您的流程将如下所示:mysql > springboot(使用 jdbc 或 hikari 驱动程序与 mysql 对话 > 前端节点 js 项目,使用 Axios 之类的东西对 spring boot 服务进行 api 调用。
猜你喜欢
  • 2018-09-25
  • 1970-01-01
  • 2020-02-02
  • 2018-01-29
  • 2017-07-22
  • 2015-06-20
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多