解决:同样的SQL语句,在java程序中查询没有结果,但是在数据库中能查询到数据

今天碰到了个问题,就是我的sql语句在数据库查询的结果是空的,但是我吧语句赋值出来。直接去数据库查询确可以查询到数据
如下:

==>  Preparing: SELECT top 300 Id, FullName,MethodName,Message FROM [dbo].[TrackLog] WHERE Message like 'http://mobileapi.centanet.com%' and FullName like 'MobileApi.CentaNet.Mobile.Model.Request%' and FullName like concat('%',?,'%') ORDER BY Id desc 
==> Parameters: GetRailWayPostsRequest (String)
<==      Total: 0

当我把语句赋值到navicat的时候,却能查询到数据

SELECT top 300 Id, FullName,MethodName,Message FROM [dbo].[TrackLog] WHERE Message like 'http://mobileapi.centanet.com%' and FullName like 'MobileApi.CentaNet.Mobile.Model.Request%' and FullName like concat('%','GetRailWayPostsRequest','%') ORDER BY Id desc 

然后我觉得这个问题很奇怪,在网上找到了一篇博客
他这个可能可以解决问题但是解决不了我的问题。然后我又试了下其他正常的语句。一个字眼一个字眼的比较。终于发现,我的问题是因为多了个空格导致的
在这里插入图片描述

总结:当出现这个情况,一般可能是特殊字符导致的,我这个就是因为多了个空格。controller接受参数的时候可以考虑将将字符两边的空格去掉。避免这种问题。一不小心十几分钟就被消耗了

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将 SQL 查询结果显示在 Java 组件上,需要经过以下步骤: 1. 连接数据库:使用 JDBC 驱动连接数据库。 2. 创建 SQL 语句:使用 SQL 语句查询数据库数据。 3. 执行 SQL 语句:使用 JDBC 执行 SQL 语句。 4. 获取查询结果:使用 JDBC 获取查询结果。 5. 将查询结果显示在 Java 组件上:将查询结果存储在 Java 对象,然后将 Java 对象数据显示在 Java 组件上。 以下是一个示例代码,演示如何将 SQL 查询结果显示在 Java 的表格组件上: ```java import java.sql.*; import javax.swing.*; import javax.swing.table.*; public class SQLTableDemo { public static void main(String[] args) { try { // 连接数据库 String url = "jdbc:mysql://localhost:3306/mydatabase"; String username = "root"; String password = "password"; Connection conn = DriverManager.getConnection(url, username, password); // 创建 SQL 语句 String sql = "SELECT * FROM mytable"; // 执行 SQL 语句 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); // 创建表格模型 DefaultTableModel model = new DefaultTableModel(); // 添加列名 ResultSetMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount(); for (int i = 1; i <= columnCount; i++) { String columnName = metaData.getColumnName(i); model.addColumn(columnName); } // 添加行数据 while (rs.next()) { Object[] rowData = new Object[columnCount]; for (int i = 1; i <= columnCount; i++) { rowData[i - 1] = rs.getObject(i); } model.addRow(rowData); } // 创建表格组件 JTable table = new JTable(model); // 显示表格组件 JFrame frame = new JFrame(); frame.add(new JScrollPane(table)); frame.pack(); frame.setVisible(true); // 关闭连接 rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } } ``` 在这个示例代码,我们使用 JDBC 连接到 MySQL 数据库,然后执行一个简单的 SQL 查询语句。接下来,我们将查询结果存储在 DefaultTableModel 对象,然后将 DefaultTableModel 对象数据显示在 JTable 组件上。最后,我们将 JTable 组件添加到 JFrame 组件,显示在屏幕上。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值