#c# #java #sqlite #system.data.sqlite #sqlitejdbc
#c# #java #sqlite #system.data.sqlite #sqlitejdbc
Вопрос:
Я использую SQLite в своих приложениях на Java и C #, используя библиотеку System.Data.SQLite для C # и драйвер Zentus SQLiteJDBC для Java.
Я заметил, что реализация Java позволяет использовать легкодоступные библиотеки SQL, которые включены в установку Java по умолчанию, в то время как реализация C # должна использовать определенные версии SQLite эквивалента C #.
Пример:
C#
SQLiteConnection connection = null;
SQLiteCommand command = null;
SQLiteDataReader dReader = null;
float[] _data;
try
{
connection = new SQLiteConnection(_connectionString);
connection.Open();
Java
Connection connection = null;
PreparedStatement ps = null;
ResultSet rs = null;
float _data[];
try
{
connection = DriverManager.getConnection(_connectionString);
Statement st = connection.createStatement();
Связано ли это с тем, как базы данных SQL используются на языках или это связано с реализациями библиотек, мне интересно узнать больше о деталях, ведущих к их использованию.
Ответ №1:
Я полагаю, что Connection
, PreparedStatement
и ResultSet
— это все интерфейсы, я полагаю. Вы могли бы сделать то же самое в C # с помощью IDbConnection
, IDbCommand
и IDataReader
вместо конкретных реализаций SQLite.
Комментарии:
1. Спасибо за информацию, есть ли какая-либо выгода между двумя языковыми реализациями или они практически одинаковы с точки зрения производительности и т.д.?
Ответ №2:
Реализация Java позволяет использовать легкодоступные библиотеки SQL, которые включены в установку Java по умолчанию, но строка подключения отличается, и вам действительно нужно импортировать разные драйверы (jar) для разных типов баз данных.
Итак, если можно так выразиться, Java as предоставила оболочку до тех пор, пока драйверы JDBC написаны для базы данных, которую вы хотите использовать с java.
Ответ №3:
Вы можете написать следующее на C#:
IDbConnection connection = null;
IDbCommand command = null;
IDataReader dReader = null;
float[] _data;
try
{
connection = new SQLiteConnection(_connectionString);
connection.Open();
Единственное, что отличается, это то, что в Java есть вспомогательный класс DriverManager
.
ПРИМЕЧАНИЕ: Интерфейс источника данных, новый в API JDBC 2.0, предоставляет другой способ подключения к источнику данных. Использование объекта DataSource является предпочтительным средством подключения к источнику данных.
Если вы используете DataSource
, который является предпочтительным способом получения соединения, согласно DriverManager
документации, вам также потребуется вызвать конкретный конструктор реализации SQLite.