I’m considering Elixir as the language to use in place of Java to rewrite a data access framework builder that (being written in Java) has a critical dependency on JDBC technology. It uses existing JDBC drivers provided by database vendors against traditional databases as well as custom written JDBC drivers to access non-database data sources from Web pages and REST APIs to.NET DLLs.
This all worked very well in Java 10 years ago, but for a couple of reasons it needs to be rewritten, and I would like to take advantage of the resilience of Elixir and use it rather than Java to do the rewrite.
I would very much appreciate an initial answer to the first question that I have: “Can I read and write data in Elixir using a JDBC driver?” before I ask the Elixir community to entertain any more specific questions, however any other insight or experience that anyone is willing to share on the topic will also be greatly appreciated.
You have Ecto which allows you to connect to a lot of different types of databases.
There is no support for JDBC as these are very JVM specific. Instead you can check if there isn’t ODBC driver as Erlang has built in support for ODBC which than can be used for writing Ecto driver for example, or you can check if there is no Elixir native driver already.
It looks like as a newbie I was confused by several products from a company named Elixir Technology (https://elixirtech.com/) called ‘Elixir Repertoire’, ‘Elixir Ambience’, and ‘Elixir Data Designer’ that all support JDBC – but it appears have nothing to do with Elixir the language ;-(
Thank you for confirming the absence of direct support for JDBC in Elixir.
Late to the party on this one but if you want to call Java code you can start a JVM instance and call in to it from Erlang using Jinterface. It’s unavoidably a bit ugly (marshalling/unmarshalling) but I’ve seen it work, for example in Riak bindings to Apache Solr full text search engine.