Java 응용 프로그램에서 Microsoft SQL Server 데이터베이스와 대화하려고합니다.Java JDBC -> SQL Server
- 일반적인 Maven 스타일 Java 라이브러리 저장소에서 호스팅되지 않으므로 Microsoft 웹 사이트에서 sqljdbc_4.0.2206.100_enu.tar.gz를 다운로드했습니다.
- 로컬 Maven 저장소에 수동으로 설치합니다.
- 다음과 같은 간단한 간단한 테스트 코드를 사용합니다.
- Java 기반 SQL 쿼리 도구 인 SQLWorkbenchJ에서 데이터베이스에 액세스하여 이러한 SQL 명령에 대한 즉각적인 응답을 얻을 수 있습니다.
- 서버는 Windows 7의 SQL Server 2005입니다.
클라이언트는 Java 7입니다. 차이점없이 Java 8도 시도했습니다. 그것은 산발적으로 작동하지만, 일반적으로 테이블을 생성 명령에 달려
public static void superSimpleJdbcTest(String jdbcUrl, String user, String password) throws SQLException { try (Connection dbConnection = DriverManager.getConnection(jdbcUrl, user, password)) { System.out.println("opened connection"); try (Statement statement = dbConnection.createStatement()) { System.out.println("created statement"); System.out.println("executing create table command..."); statement.execute("create table something (id int primary key, name varchar(100))"); System.out.println("completed create table command"); System.out.println("executing insert command..."); statement.executeUpdate("insert into something (id, name) values (1, 'Brian')"); System.out.println("insert command completed"); } } }
. 내가 주석을 달면, 그것은 insert 명령에 걸려있다. 나는 틀린 것을 상상할 수 없다.
이 인스턴스에서 "정지"의 정의는 무엇입니까? –
몇 분 기다렸다가 statement.execute 또는 statement.executeUpdate 명령이 반환되지 않습니다. 이것들은 사소한 명령입니다. 다른 데이터베이스 도구로 동일한 명령을 실행하면 서버가 즉각적으로 응답합니다. – clay
* 대개 * 괜찮습니다. 그러나이 드라이버/버전은 원래 Java 5/6 용으로 작성되었으므로 7 또는 8을 사용하려고합니다. http://www.microsoft.com/en-us/download/details.aspx?id = 11774 – curtisk