VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1375|回复: 10

java对数据库进行模糊查询

[复制链接]

2

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-10-12 12:30:01 | 显示全部楼层 |阅读模式
如题,为什么总会报这样的错
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]第 1 行: '%8%' 附近有语法错误。
        at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
        at com.microsoft.jdbc.sqlserver.tds.TDSCursorRequest.openCursor(Unknown Source)
        at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.execute(Unknown Source)
        at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
        at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
        at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)
        at leasecar.SafeInfo.getData(SafeInfo.java:30)
        at leasecar.SafeInfo.getMyTabelModel(SafeInfo.java:112)
        at leasecar.SafeInfoPanel.jButton1_actionPerformed(SafeInfoPanel.java:132)
        at leasecar.SafeInfoPanel$SafeInfoPanel_jButton1_actionAdapter.actionPerformed(SafeInfoPanel.java:252)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
        at java.awt.Component.processMouseEvent(Component.java:5488)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
        at java.awt.Component.processEvent(Component.java:5253)
        at java.awt.Container.processEvent(Container.java:1966)
        at java.awt.Component.dispatchEventImpl(Component.java:3955)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
        at java.awt.Container.dispatchEventImpl(Container.java:2010)
        at java.awt.Window.dispatchEventImpl(Window.java:1774)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
java.lang.NullPointerException
        at leasecar.SafeInfo.getMyTabelModel(SafeInfo.java:113)
        at leasecar.SafeInfoPanel.jButton1_actionPerformed(SafeInfoPanel.java:132)
        at leasecar.SafeInfoPanel$SafeInfoPanel_jButton1_actionAdapter.actionPerformed(SafeInfoPanel.java:252)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
        at java.awt.Component.processMouseEvent(Component.java:5488)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
        at java.awt.Component.processEvent(Component.java:5253)
        at java.awt.Container.processEvent(Container.java:1966)
        at java.awt.Component.dispatchEventImpl(Component.java:3955)
        at java.awt.Container.dispatchEventImpl(Container.java:2024)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
        at java.awt.Container.dispatchEventImpl(Container.java:2010)
        at java.awt.Window.dispatchEventImpl(Window.java:1774)
        at java.awt.Component.dispatchEvent(Component.java:3803)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)


P。S。
我在sql server里面进行查询用相同的语句 ,可以正常进行查询。
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-10-12 14:00:01 | 显示全部楼层
帖一下下代码
ok!
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-10-12 14:15:01 | 显示全部楼层
找找Java中的格式化语法,你的SQL语句可能出现语法错误
回复

使用道具 举报

2

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-10-12 14:30:01 | 显示全部楼层
String a = myselect.getSelectedItem().toString();
        String b = con.getText();
        SafeInfo ss = new SafeInfo();
        MyTabelModel m;
        if (!a.equals("所有信息")) {
            if (a.equals("保险编号")) {
                int flag = 0;
                char c;
                for (int i = 0; i < b.length(); i++) {
                    c = b.charAt(i);
                    if (Character.isLetter(c)) {
                        flag = 1;
                    }
                }
                if (flag == 1) {
                    javax.swing.JOptionPane.showMessageDialog(null,
                            "<html><font color=red>请输入一个数字!</font></html>",
                            "系统消息", JOptionPane.ERROR_MESSAGE);
                    m = null;
                    this.con.setText("");
                    this.con.requestFocus();
                } else {
     //我的查询语句           m = ss.getMyTabelModel("select * from SafeInfo where " + a +
                                           "like '%" + b + "%'");
                }
            } else {
     //我的查询语句 是这里报的错           m = ss.getMyTabelModel("select * from SafeInfo where " + a +
                                       "like '%" + b + "%'");
            }
        } else {
            m = ss.getMyTabelModel("select * from SafeInfo");
        }
        if (m != null) {
            this.useTabel.setModel(m);
        } else {
            javax.swing.JOptionPane.showMessageDialog(null,
                    "<html><font color=red>没有您要找的数据,请仔细核对后再查</font></html>",
                    "系统消息", JOptionPane.ERROR_MESSAGE);
            this.con.setText("");
            this.con.requestFocus();
        }
    }


    public void myselect_actionPerformed(ActionEvent e) {
        if (this.myselect.getSelectedItem().toString().equals("所有信息")) {
            this.con.setText("");
            this.con.setEditable(false);
        } else {
            this.con.setEditable(true);
        }
回复

使用道具 举报

0

主题

7

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-10-12 18:15:01 | 显示全部楼层
sql打印出来看看,能不能直接运行。这个不是java的错
回复

使用道具 举报

2

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-10-12 20:00:01 | 显示全部楼层
我的sql语句在sql server里面可以运行的很好的...
到java里面就报错郁闷死了
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-10-12 20:15:01 | 显示全部楼层
在like 前加个空格看看,行不?
回复

使用道具 举报

2

主题

8

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-10-12 22:15:01 | 显示全部楼层
我加过的咯...不行,昏死啊....高手们都出来帮帮偶吧 。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-10-12 22:30:02 | 显示全部楼层
like 前面的空格没有,alike ‘%8%’当然会错了,你去sql server里面执行下看看就知道了
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-10-12 23:15:01 | 显示全部楼层
like前面加个空格.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表