为啥在eclipse中执行 sql server 的查询语句总是提示语法错误,请大家帮我看看。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥在eclipse中执行 sql server 的查询语句总是提示语法错误,请大家帮我看看。相关的知识,希望对你有一定的参考价值。
public void actionPerformed(ActionEvent evt)
try
String namevalue=name.getText().trim();
String sexvalue=sex.getText().trim();
String agevalue=age.getText().trim();
String majorvalue=major.getText().trim();
String sname,ssex,sage,smajor;
sname="LIKE'%"+namevalue+"%'";
ssex="LIKE'"+sexvalue+"%'";
if(agevalue.equals(""))
sage="BETWEEN 15 AND 35";
else
sage="="+agevalue;
smajor="LIKE'"+majorvalue+"%'";
command="SELECT * FROM student WHERE name"+sname+"AND sex"+ssex+"AND age"+sage+"AND major"+smajor;
rs=stmt.executeQuery(command);
resultarea.setText("");
if(!rs.next())
resultarea.setText("找不到符合此条件的记录");
else
do
String rename=rs.getString("name");
String resex=rs.getString("sex");
String reage=rs.getString("age");
String remajor=rs.getString("major");
resultarea.append(rename);
resultarea.append(resex+" ");
resultarea.append(reage+" ");
resultarea.append(remajor+"\n");
while (rs.next());
catch (Exception ex)
resultarea.append(ex.getMessage()+"\n");
这是主要的查询语句,我的程序是一个学生信息查询系统,输入学生的姓名,学号等信息来在sql server中查找配对的信息,然后输出。
出现的问题截图
command="SELECT * FROM student WHERE name"+sname+"AND sex"+ssex+"AND age"+sage+"AND major"+smajor;
上面这句,在name后面紧接着就是like,没有空格。
And前面也没有空格。
SQL语句不予许这样模糊的定义,他找不到关键字。 参考技术A command="SELECT * FROM student WHERE name"+sname+"AND sex"+ssex+"AND age"+sage+"AND major"+smajor;
这里的sql明显写错了啊。。你在每个字段后面都差了个=,应该是这样,如果字段是字符串类型,还要加上单引号,总之就是要和SQLServer里面写的一样
SELECT * FROM student WHERE name="+sname+"AND sex="+ssex+"AND age="+sage+"AND major="+smajor 参考技术B 这个是改后的类
class Operate
private static int jishu1 = 0;
private static int jishu2 = 0;
private String a;
public Operate(String a)
this.a = a;
for (int i = 0; i < a.length(); i++)
if (a.charAt(i) == 'n')
jishu1++;
if (a.charAt(i) == 'o')
jishu2++;
public int getJiShu1()
return jishu1;
public int getJiShu2()
return jishu2;
你的错误在于private char b[]=a.toCharArray();这句。在数组b里面存放的知识a的地址而已。
相当于对于数组b根本还没有定义。所以报错
参考技术C 像这类问题 最好打印出最后你拼出的sql语句
放在数据库上执行 看错在哪里
为啥 jdbc 执行 sql server 过程需要 10 分钟,而 navicat 或 ssms 只需要 50 秒?
【中文标题】为啥 jdbc 执行 sql server 过程需要 10 分钟,而 navicat 或 ssms 只需要 50 秒?【英文标题】:Why jdbc executing sqlserver proceduce takes 10 min but navicat or ssms only 50s?为什么 jdbc 执行 sql server 过程需要 10 分钟,而 navicat 或 ssms 只需要 50 秒? 【发布时间】:2017-08-18 06:57:48 【问题描述】:我在 java 中使用 sqlserver-jdbc 驱动程序执行查询,在返回结果集之前等待了大约 700 秒,但是当我使用 navicat 或 SSMS 执行此操作时只有 50 秒。任何人都有类似的问题,我找不到原因,因为我不太了解数据库,。
【问题讨论】:
我们需要更多信息来提供帮助。给我们看一些代码,什么查询运行缓慢? 【参考方案1】:使用该脚本获取您的 SP 的缓存执行计划:
SELECT cp.objtype AS ObjectType,
OBJECT_NAME(st.objectid,st.dbid) AS ObjectName,
cp.usecounts AS ExecutionCount,
st.TEXT AS QueryText,
qp.query_plan AS QueryPlan
FROM sys.dm_exec_cached_plans AS cp
CROSS APPLY sys.dm_exec_query_plan(cp.plan_handle) AS qp
CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) AS st
WHERE objtype ='Proc' AND OBJECT_NAME(st.objectid,st.dbid) = '__YOUR_SP_NAME__';
我认为 SSMS 和 sqlserver-jdbc 驱动使用不同的缓存计划。
【讨论】:
以上是关于为啥在eclipse中执行 sql server 的查询语句总是提示语法错误,请大家帮我看看。的主要内容,如果未能解决你的问题,请参考以下文章
使用 Eclipse 在 JAVA 中连接 SQL Server,错误:ClassNotFoundException