2015-09-18 2 views
0

Утренние девелоперы (утро в Кении). Я работал с базами данных Java и MySql. мой новый клиент хочет, чтобы я создал решение на основе его текущей установленной базы данных, на которой запущен Microsoft Sql Server 2014 Enterprise Edition. Код ниже подключается к экземпляру SQL Server, но не может выполнять транзакции SQL. Я получаю исключение SQL «Недопустимое имя объекта». Попробуйте устранить код для меня. Спасибо.Транзактные SQL-выражения из java в Ms SQL Server 2014

private java.sql.`enter code here`Connection con = null; 
private final String url = "jdbc:sqlserver://"; 
private final String serverName = "localhost\\PHILIP"; 
private final String portNumber = "1433"; 
private final String databaseName = "Payrol"; 
private final String userName = "sa"; 
private final String password = "kukaphilip"; 

public Main() { 

    System.setProperty("java.net.preferIPv6Addresses", "true"); 
    getConnection(); 
} 

private String getConnectionUrl() { 
    //System.out.println(java.lang.System.getProperty("java.library.path")); 
    return "jdbc:jtds:sqlserver://localhost;Database=Payrol;integratedSecurity=true"; 
} 

private java.sql.Connection getConnection() { 
    try { 
     /*Class.forName("net.sourceforge.jtds.jdbc.Driver");*/ 
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     con = DriverManager.getConnection(getConnectionUrl()); 
     if (con != null) { 
      System.out.println("Connection Successful!"); 
      String sql = "INSERT INTO payrol.dbo.test values('1','Philip')"; 
      Statement st = con.createStatement(); 
      st.executeUpdate(sql); 
      /*st.setInt(1, 1); 
      st.setString(2, "Philip"); 
      st.execute();*/ 
     }else{ 
      System.out.println("Connection failed"); 
     } 
    } catch (SQLException e) { 
     System.out.println(e.getMessage()); 
    } catch (ClassNotFoundException ex) { 
     Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    return con; 
} 
+0

Я надеюсь, что ** kukaphilip ** не является вашим реальным паролем .... –

+0

Имеет ли инструкция ** INSERT INTO значения payrol.dbo.test ('1', 'Philip') ** из студии MS SQL Management ? –

ответ

0

Проверить Эти

1) Попробуйте выполнить тот же запрос в SSMS, чтобы увидеть, если вы получаете какие-либо ошибки.

2) Поместите payrol.dbo.test в квадратные скобки, как [Payrol]. [DBO]. [Тест]

3) Если сверка чувствителен к регистру случаи 'тест' должны быть одинаковыми в базе данных и в вашем запросе.

+0

INSERT INTO значения payrol.dbo.test ('1', 'Philip') на SQL Server отлично работают. Когда я кладу квадратные скобки, я все равно получаю «Connection Successful! Недопустимое имя объекта« Payrol.dbo.test ».» на исполнение. Случай в порядке, как определено в схеме базы данных и таблице –

Смежные вопросы