SqlConnection 또는 OracleConnection 대신 DbConnection을 사용하는 것이 어떻습니까?
저는 C#에 익숙하지 않은 자바 리트레드입니다.앞으로 몇 주 안에 DML 코드를 대량으로 작성할 때 문제가 발생하지 않기를 바랍니다.
저는 Connection, Statement 등 JDBC의 추상 클래스를 사용하는 것에 익숙합니다.C#은 시스템에서 DbConnection, DbCommand 등과 같은 유사한 추상 클래스를 제공합니다.데이터. 공용 네임스페이스입니다.
하지만 MS 문서와 다른 책에서 본 대부분의 예제는 구체적인 클래스인 SqlConnection, OracleCommand 등을 사용합니다.이러한 구체성은 mySQL 문서에도 나타납니다.
이 분야에서 가장 좋은 방법은 무엇입니까?이를 위해 추상적인 클래스가 아닌 구체적인 테이블 서버별 클래스를 선택해야 하는 강력한 이유가 있습니까?(물론 추상적인 것을 콘크리트로 하향 조정하는 것의 위험성을 알고 있습니다.)
추상 클래스는 프레임워크의 첫 번째 버전의 일부가 아니라 버전 2.0에서 도입되었습니다.많은 사례들이 그 이전에 쓰여졌거나 그 이전에 쓰여졌던 사례들에 기반을 두고 있습니다.
구체적이거나 추상적인 수업을 사용하는 것은 대부분 취향의 문제입니다.모든 데이터베이스에서 작동할 수 있는 코드를 작성하는 것은 좋은 생각이지만, 제 경험으로는 데이터베이스 시스템을 자주 전환하지 않으며, 변경해야 할 사항이 너무 많기 때문에 추상 클래스를 사용하든 사용하지 않든 큰 문제가 되지 않습니다.
데이터베이스별 ADO가 가장 많습니다.NET 클래스에는 해당 데이터베이스 드라이버와 관련된 추가 오버로드 및/또는 메서드 및 속성이 있습니다.
SqlConnection 및 OracleConnection과 같은 구체적인 클래스를 사용하면 드라이버별 기능에 더 쉽게 액세스할 수 있습니다.
일반적으로 회사 또는 사용자가 사용 중인 데이터베이스를 알면 특정 데이터베이스 유형을 대상으로 합니다.Oracle을 알고 있는 경우 Oracle 관련 클래스를 사용하고 SQLClient를 알고 있는 경우 SqlClient 등을 사용합니다.
어떤 유형의 참조인지 확실하지 않은 경우 데이터베이스 유형에 대한 걱정 없이 목표를 달성할 수 있도록 일반/일반화된 참조 형식을 선택할 수 있습니다.반대로, 데이터베이스 유형을 확인한 후 작업을 수행하기 위해 여러 조건문을 작성하는 것이 좋습니다.
이해를 돕기 위한 일반적인 시나리오는 다음과 같습니다.최종 사용자가 구성 파일을 변경하고 연결 문자열을 입력하여 데이터베이스에 연결할 수 있도록 코드를 작성하는 경우, 어떤 기능을 사용하시겠습니까?이곳은 DbFactory와 관련 클래스가 편리한 곳으로, 코드 청크를 작성하는 대신 일반 클래스(예: 일종의)를 사용하여 모든 것을 처리합니다.
특정 공급자를 대상으로 하는 경우 DbFactory가 해당 공급자를 처리하기 전에 내부적으로 확인해야 하므로 성능이 향상되지만 최종 사용자 공급자에 대한 확신이 없는 경우 코드가 방대할 뿐만 아니라 효율적이지도 않습니다.
다음 질문으로 넘어가겠습니다: 추상적이거나 구체적입니다.그것은 당신에게 달려 있고, 그것의 시나리오 기반입니다.추상화의 장점은 규칙(인터페이스 등)에 대해 클라이언트를 강제로 연결할 수 있을 뿐만 아니라 일반화(구체적인 클래스와 유사)를 통해 하위 클래스 메소드에 액세스할 수 있다는 것입니다(가능하면 이 항목을 참조하십시오).런타임 다형성을 사용하여 하나의 객체를 사용하고 이 상위 클래스에 속하는 다른 클래스에서 다른 구현을 가진 메서드를 호출할 수 있습니다. 이 메서드는 관심 계산이 필요하지 않습니다. 예를 들어, 은행의 단순 이자 및 복합 이자가 해당 클래스에서 계산될 수 있습니다.관심 가져요, 당신이 그냥 "관심 가져요() 그리고 붐!"이라고 말했기 때문에.
일반 사용자가 사용하는 데이터베이스의 유형을 알 수 없고 연결 문자열을 알 수 없는 시나리오에서는 일반 사용자에게 클래스를 구현하도록 강제하고 연결 문자열을 초기화하는 추상적인 방법을 구현한 다음 출력을 제공하는 데 필요한 작업을 수행해야 합니다.
도움이 되길 바랍니다.
언급URL : https://stackoverflow.com/questions/5282984/why-not-dbconnection-instead-of-sqlconnection-or-oracleconnection
'programing' 카테고리의 다른 글
Windows 7에서 가장 빠른 IPC 방법 (0) | 2023.08.13 |
---|---|
WSDL 파일에서 ASMX 웹 서비스 만들기 (0) | 2023.08.13 |
mysql workbench 열 아이콘의 의미 (0) | 2023.08.08 |
@예약 주석을 사용하여 시작된 예약된 작업을 중지하는 방법은 무엇입니까? (0) | 2023.08.08 |
하위 요소를 호버링할 때 상위 요소의 스타일을 지정하는 방법은 무엇입니까? (0) | 2023.08.08 |