W C# zamiast JDBC istnieje ADO.NET, czyli framework do łączenia się do bazy danych.
Entity framework Core
Alternatywa do ado.net. Oferuje rozwiązanie object-relational mapper (O/RM), czyli mapowanie rekordów bazy relacyjnej do obiektów istniejących w C#. Istnieją też takie rozwiązania w Javie.
Data providers w Dotnet
Działają jak sterowniki w JDBC.

ODBC to generyczny standard, który może być implementowany przez wiele baz lub źródeł danych, np.: Excel lub wszelakie inne bazy.
using ()
Odpowiednik try with resources w Javie. Jak działa wiadomo.
Ustawienia możliwe do zmiany w ConnString w MSSQL
- data source - do jakiej instancji serwera się połączyć
- Connection timeout - po ilu sekundach nieudanego połączenia aplikacja ma się rozłączyć
- Encrypt - jak na tak to połączenie ma enkrypcje SSL
- Failover Partner - jak baza jebnie to tu dajesz backup
- Database - nazwa bazy
- Integrated Security - jak dasz na true to wykorzystuje konto Windows, z którego wykonywana jest ta aplikacja jako źródło loginu oraz hasła w auth.
- MultipleActiveResultSet - jak tak to jeden conn może trzymać kilka ResultSetów, nie polecane
- Network Library - jaki rodzaj połączenia sieciowego z bazą
- Pwd - chujowe, używaj IntegratedSecurity
- UserId - sql server login, chujowe
Connection pool
Gdy connection string jest otwarty i nie ma żadnego otwartego connection pool, nowy jest otwarty. Dlatego każdy connection string jest powiązany z jakimś connection pool. Można skonfigurować minimalną ilość połączeń w poolu.
IDbConnection i IDbCommand
Wykorzystywane są interfejsy, a nie SQLCommand, żeby kod był przenośny na wiele DBMS.

Kod chroniący przed SQL injection.
Oracle Bazadanych a Dotnet
Zmienia się tylko SQLConnection na OracleConnection. Jako że piszemy generyczny kod pod interfejsy, pisanie kwerend wygląda praktycznie identycznie. Tak samo jak w MSSQL, dostępny jest pooling.