문제

저는 새로운 프로젝트를 시작하려고 합니다. 설계상의 매우 심각한 제한으로 인해 기존 시스템(PHP + SQL Server)을 처음부터 다시 작성하는 것입니다.

우리는 SQL Server(현재 기존 시스템에서 SQL Server 2000을 사용하고 있음)에 대해 꽤 잘 알고 있으며 새 프로젝트에 최신 버전(2008년인 것 같습니다)을 사용하고 싶습니다.

저는 Java가 제공하는 기술, 특히 Spring Framework와 Wicket을 정말 좋아하며 이전에 다른 프로젝트와 과제를 통해 Java에 대해 꽤 잘 알고 있습니다.따라서 우리는 Java와 Microsoft SQL Server 사용을 고려합니다.

SQL Server에는 jTDS와 Microsoft의 두 가지 JDBC 드라이버가 있습니다. http://msdn.microsoft.com/en-us/data/aa937724.aspx.내 생각엔 둘 다 테스트해야 할 것 같아.

그러한 솔루션에 내가 알아야 할 제한 사항이 있습니까?그러한 기술 조합을 경험한 사람이 있습니까?

도움이 되었습니까?

해결책

저는 Java Stack과 함께 MSQL Server를 사용하는 프로젝트를 진행했습니다.JDBC는 데이터베이스에 대해 실제로 신경을 쓰지 않아야 하기 때문에 매우 잘 작동하고 오랫동안 작동합니다.우리는 Hibernate와 함께 ehcache를 사용했고 MS JDBC Driver에 문제가 있어서 jtds로 전환했는데 정말 잘 작동합니다.

꽤 오래 전 일이므로 MS 드라이버에게 기회를 주고 싶을 수도 있습니다...

다른 팁

Java와 2008에 대해서는 잘 모릅니다.하지만 Java와 SQL2000에는 큰 문제가 없어야 합니다.lubos가 제안한 것처럼 C#을 살펴보는 것이 좋을 것입니다. 그러나 Java에 훨씬 더 익숙하다면 JDBC 커넥터만큼 실질적인 제한이 있어서는 안 됩니다. 마이크로소프트에서 지원됩니다

우리는 몇 년 동안 여러 원격 MSQL Server 인스턴스와 통신하는 Hibernate를 사용하여 애플리케이션을 실행해 왔으며 M$ 드라이버와 관련된 몇 가지 문제가 발생한 후 초기에 jTDS 드라이버로 전환했습니다.전환 이후에는 전혀 문제가 발생하지 않았습니다.그러나 복잡한 응용프로그램이 아니므로 LOB를 사용하지 않습니다.도움이 되길 바랍니다.

jTDS는 훌륭합니다.저는 고가용성 프로덕션 환경에서 수년 동안 문제 없이 사용해 왔습니다.

나는 jTDS 드라이버 쪽으로 기울고 싶습니다.MSSQL 드라이버에는 동일한 열을 두 번 다시 읽을 수 없다는 제한 사항이 있습니다.이는 Hibernate를 사용할 때 자주 발생합니다.

JDBC 드라이버는 SQL Server 2008에서 잘 작동하며 아무런 문제도 없었습니다.다운로드해야 하는 버전은 설치한 JRE 버전에 따라 다릅니다.JRE6은 JDBC4를 사용하고 JRE7은 JDBC4.1 등을 사용합니다.Microsoft에서 올바른 드라이버를 다운로드하고 설치 프로그램을 실행한 후에는sqljdbc_auth.dll ~로부터 \인증 디렉토리에 c:\windows\system32 예배 규칙서.그런 다음 이 코드를 사용하여 연결을 만들 수 있습니다.

헤더에서:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

그리고 수업 시간에:

public class connectToSQL {

    public void connectToDB() throws Exception {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String connectionUrl = "jdbc:sqlserver://<IPADDRESS>:<PORT>;DatabaseName=<NAME OF DATABASE TO CONNECT TO>;IntegratedSecurity=false";    
        Connection con = DriverManager.getConnection(connectionUrl, "<SQL SERVER USER LOGIN>", "<SQL SERVER PASSWORD>");
        Statement s = con.createStatement();
        ResultSet r = s.executeQuery("SELECT * FROM <TABLENAME TO SELECT FROM>");
        while (r.next()) {
            System.out.println(r.getString(1));
        }
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top