TTTABEY 2020-05-06 17:22 采纳率: 0%
浏览 269

java与数据库连接问题 是连接失败吗

在做数据库课设,将java与sqlserver2012连接,运行时出现这样的错误

连接数据库成功
com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'select' 附近有语法错误。
不知道哪里有问题,这个错误是显示连接有问题吗

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1655)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:885)
at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:778)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:191)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:166)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeUpdate(SQLServerStatement.java:703)
at com.yjdb.LoginFrame.actionPerformed(LoginFrame.java:97)

连接的代码如下,
package com.yjdb;

import java.sql.*;

public class ConnectDB {

/**
 * @param args
 */
String driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
static String url = "jdbc:sqlserver://localhost:1433;DatabaseName=yjdb";
static String userName = "sa";
static String userPassword = "123456";
private Connection con;
public Statement stmt;
public Statement Connect(){
    try{
        Class.forName(driverName);
        con = DriverManager.getConnection(url,userName,userPassword);
        stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        System.out.println("连接数据库成功");
    }
    catch(Exception e){
        e.printStackTrace();
        }
    return stmt;
    }

}
这个是登陆界面的部分代码

public void actionPerformed(ActionEvent e){

    if(e.getSource()==b1){
        String customerID = textField.getText();        
        String customerPassword = new String(passwordField.getPassword()).trim();
        try{
            String sql = "select * from [Customer] where CID='"+customerID+"'";//执行的sql语句,在数据库里查找管理员ID
            stmt=new ConnectDB().Connect();
            rs=stmt.executeQuery(sql);
            if(rs.next())
            {
                if(customerPassword.equals(rs.getString("CPW").trim()))
                {
                    String sql1 = "Create table NowCustomer ( select CID from Customer where CID='"+customerID+"' )";
                    Statement stmt1 = new ConnectDB().Connect();
                    stmt1.executeUpdate(sql1);
                    JOptionPane.showMessageDialog(null,"欢迎进入邮局订报管理系统","登录成功!",JOptionPane.INFORMATION_MESSAGE);
                    dispose();
                    new CustomerMainFrame(customerID);
                }
                else{
                    JOptionPane.showMessageDialog(null,"对不起,密码错误,请重新输入","登陆失败!",JOptionPane.ERROR_MESSAGE);
                }
            }
            else{
                JOptionPane.showMessageDialog(null,"用户ID不存在,请重新输入","登陆失败!",JOptionPane.ERROR_MESSAGE);
            }
        }
        catch(Exception e1){
            e1.printStackTrace();
        }
    }
  • 写回答

2条回答 默认 最新

  • FFone-er 2020-05-06 17:39
    关注

    错误写的在97行,你这个也看不出来,然后你这个错误也没截全,应该是sql语句有问题;你那个创建表格的语句也有问题吧

    评论

报告相同问题?

悬赏问题

  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题