gpt4 book ai didi

mysql - 如何避免不必要地从数据库中获取数据?

转载 作者:行者123 更新时间:2023-11-29 00:23:14 24 4
gpt4 key购买 nike

在执行以下 JDBC 代码时,我在 MySQL 管理员中观察到一些不必要的数据库获取事件。

public void tableData() {
List<TaxAccountReportTableBean> tdata = new ArrayList<TaxAccountReportTableBean>();
Connection con = null;
Statement st = null;
ResultSet rs = null;
Class.forName("com.mysql.jdbc.Driver");
con = (Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/inventory" + "", "root", "root");
st = (Statement)con.createStatement();

try {
String qry = "SELECT taxno, region, taxname , tax, cf, cftax FROM Tax";
System.out.println("-------->"+qry);
rs = st.executeQuery(qry);

while (rs.next()) {
trtb = new TaxAccountReportTableBean();
trtb.setTaxno(rs.getString(1));
trtb.setRegion(rs.getString(2));
trtb.setTaxname(rs.getString(3));
trtb.setTaxpercent(rs.getString(4));
trtb.setCfreq(rs.getString(5));
trtb.setCftax(rs.getString(6));
tdata.add(trtb);
}

rs.close();
st.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}

当我执行查询时,我在 MySQL 管理员中观察到有 10 个查询正在访问数据库。由于这种不必要的提取,应用程序性能很差。这是怎么引起的,我该如何解决?


更新:我调试了代码,发现不必要的查询提取是在连接创建过程中发生的,而不是在从查询中获取数据的过程中发生的。我怎样才能避免这个问题?

最佳答案

在mysql中可以使用WHERE条件来过滤数据,也可以使用limit子句获取特定行的数据。

String qry = "SELECT taxno, region, taxname ,  tax, cf, cftax  FROM  Tax WHERE your_condition limit 10"

你的情况会是这样的:

name LIKE "%abc%" //or you can use any thing based on your db structure.

关于mysql - 如何避免不必要地从数据库中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20278398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com