B4A Library Asynchronous MariaDB/MySQL Library

keirS

Well-Known Member
Licensed User
Longtime User
My APP will be a MySQL Manager to Android APP

I don't know what SQL Stattement will run the users..

Their will run a 5000 rows SQL or 5.000.000, of couse this last query will fail

I don"t think the library is suitable for such an app. It doesn't support SSL connections so is not secure. If you want to write such an app I would look at using SSH and the MySQL CLI.

It will handle 5000 records with no problem though. My test data set has tables with over 100,000 records and I have an app which duplicates the whole lot on a local SQLLite database using this library.


For any more help you will need to post your full code as it's impossible to see what's happening with what you have posted. Also you will need to post the unfiltered logcat file as I have already requested.
 

vbmundo

Well-Known Member
Licensed User

hi,

What MySQL control can you recommend that my ?
 

vbmundo

Well-Known Member
Licensed User
Hi,

Sorry but I need to fix this problem, can you tell me what control can I download to work in SSL and for a profesional App ?

Regards
 

keirS

Well-Known Member
Licensed User
Longtime User
Forget the SSL, are some MySQL/MariaDB control that you recommend to me, much better than this ?

I haven't used any of the other libraries apart from my own so I am not in a position to recommend them. Perhaps you missed the bit in the original post about this library:

The library is really only suitable for "in house" type apps (which is what I am using it for). I will not offer any support for and do not recommend using it in commercial applications available in the Play (or any other) store.
 

keirS

Well-Known Member
Licensed User
Longtime User
I recommend you to use jRDC2 to connect to remote databases. It is safer than connecting the clients directly to the database and it also supports SSL.

Erel are you saying that JRDC2 supports SSL between the JDBC driver and a MySQL server? If I have a Java server running JRDC2 and a MySQL server then how do I tell JRDC2 which truststore/keystore file to use and the passwords for them which are required to enable an SSL between the two?
 

vbmundo

Well-Known Member
Licensed User
I recommend you to use jRDC2 to connect to remote databases. It is safer than connecting the clients directly to the database and it also supports SSL.

Hi Erel, have you any example to use this jRDC2 ?

KeirS have a great MariaDB/MySQL control, but he said that It's not safe.

Regards
 

vbmundo

Well-Known Member
Licensed User

Thanks !!
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
Erel are you saying that JRDC2 supports SSL between the JDBC driver and a MySQL server?
It might be possible. However what I meant is that you can run jRDC on the same server that the database runs and the connection between the clients and jRDC will be secured with SSL.

Hi Erel, have you any example to use this jRDC2 ?
This is not the correct place to discuss jRDC2. See these search results: https://www.b4x.com/search?query=RDC
 

vbmundo

Well-Known Member
Licensed User
Hi Erel,

You said
I recommend you to use jRDC2 to connect to remote databases. It is safer than connecting the clients directly

My application will allow connected to their user databases, where they charged to hand his credentials, which is why we need the necessary arrangements.

The user can't install any JRDC in their server...
 

carlos7000

Well-Known Member
Licensed User
Longtime User
Hi.
Using the library, sends the data correctly, but always the function that collects errors runs. The variable 'trace' stores the following message:

B4X:
java.lang.NullPointerException: Attempt to read from field 'int org.mariadb.jdbc.internal.mysql.MySQLProtocol.datatypeMappingFlags' on a null object reference
    at org.mariadb.jdbc.MySQLResultSet.getMetaData(MySQLResultSet.java:402)
    at db.b4amariadb.mariadbconnector$1.run(mariadbconnector.java:138)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    at java.lang.Thread.run(Thread.java:833)

I suppose that may be require updating the file MariaDB-java-client-1.1.5.jar
 

Swissmade

Well-Known Member
Licensed User
Longtime User
You are using an very old version
Here it is
 

Attachments

  • mariadb-java-client-1.4.2.jar
    363 KB · Views: 325

keirS

Well-Known Member
Licensed User
Longtime User

Not seen that before. You could try the later version of the client library posted above.
 

Jose Briceño

Member
Licensed User
how to make transactions:
I was holding it like that and it's wrong
Main.MySQL1.BeginTransaction
Try
Main.MySQL1.ExecNonQuery ("INS1", "INSERT INTO
Catch
Log (LastException.Message)
End Try
Main.MySQL1.EndTransaction
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…