Connecting to database on users computer - java

I am currently using Netbeans 8 and trying to make the MySQL database connect to the program without downloading MySQL on to the users computer or running a server, so the MySQL file must be local. How may I proceed is there a way to package with the jar of the program or should I proceed another way.
Also here is the code that connect to the database.
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/chutesandladders", name, password);
Statement update = conn.createStatement();

It is not possible to package a MySQL "file" in JAR. MySQL always runs as a server process that you can connect to using JDBC.
The JDB URL dbc:mysql://localhost:3306/chutesandladders from your question contains the hostname localhost and the port 3306 where the MySQL server is running.
If you want a client on a different machine to connect to this server, you must use the real hostname of the server in the JDBC URL. Of course you must allow access from this client to the server.
Edit: If you must use a relational database but can not access a server, you should use an embedded database. A widely used is H2.

Related

Working with two databases from different domains within a same server

I have two domains.
In domain A, I have a PHP web site and in domain B, I have Java Website.
Now I want to use both database from both site.
How can I do that? I am using MySql 5.7.17
You could set up a third server dedicated to mySQL and share that database with the 2 web servers, or you can just run a mySQL database on each of those computers and use the IP address or domain name of them to connect to each other's server
Explanation:
You currently have a java website running and a php website running on one machine if i understand correctly.
What you need to do is download mySQL, and go through the tutorial to get the server up and running https://dev.mysql.com/doc/mysql-getting-started/en/
Then you need to download the mysql Java driver, and the mysql PHP driver
Then you need to use the drivers to connect to the same mySQL server from the code, which would be on localhost if you are doing it all on one machine.
MySQL is a server. It is its own thing, not a database like SQLite that you create in the java code or php code. You create and set it up separately as it's own server, and then any other server can connect to it
You can open and close a mysql connection any time.
mysql_connect(server, username, password);
Do some stuff with one database, then you can use:
mysql_close();
mysql_connect(server2, username2, password2);
as many times as you like.
Or you can use resource links:
$db1 = mysql_connect(server1, user1, passwd1);
$db2 = mysql_connect(server2, user2, passwd2);
But in this case, each mysql command needs to be referenced with the resource link:
mysql_query(query, $db1);

How to connect Java desktop application to an online mysql database?

As titled, I want to make my desktop java application to connect to an online mysql db ?! How can I reach it such connection to be able to add and retrieve data?!
Download the connector from here. Add it to your classpath and in the code:
// This will load the MySQL driver, each DB has its own driver
Class.forName("com.mysql.jdbc.Driver");
// Setup the connection with the DB
connect = DriverManager
.getConnection("jdbc:mysql://remoteUri/database-name?"
+ "user=user&password=userpw");
By all means, a JDBC connection is the way to go. But, you must make sure that the MySQL users have access to the database from another IP Address (i.e. your desktop application).
MySQL users are set up so that they can access the database on the local machine. Therefore, you have to allow access to the MySQL database from any host. Please see the following article which shows how to do that.
You could directly connect and let the queries run over the network (via JDBC)example: vogella.com
You build an RESTful Service, there are lots of tutorials as Example;
RESTful Web Services API using Java and MySQL

do i need a tomcat server to make java jdbc swing application to run on lan

I am attempting to create a MySQL and Java client app for my home network.On the server machine I successfully connected to the MySQL as root
Now I want to connect to MySQL from my client PC using the Java client program,
How to do this??
Do i need to install Tomcat Server to run on server for this.
I am using Windows 7 on all my clients and server machines.
Tomcat server is used for web applications.You just need to create a JDBC code and in the URL string just give the ip address of the system where mysql is installed.For example
connection = DriverManager
.getConnection("jdbc:mysql://192.168.1.205:3306/database_name","root", "password");
Also if you have not granted the permission in mysql then grant it .See this for granting permission for access to mysql on remote system
Depending on what you want to achieve, you need to establish a JDBC connection to the server. Take a look at the JDBC trail for more details.
This will allow you to connect directly from you client machine to your database server. This would be done using the required JDBC connection URL for the MySQL connection, for example jdbc:mysql://[host][,failoverhost...][:port]/[database] ยป
[?propertyName1][=propertyValue1][&propertyName2][=propertyValue2]..., check out Driver/Datasource Class Names, URL Syntax and Configuration Properties for Connector/J for more details.
You may also need to configure your MySQL server to allow remote access before you can connect
You just need to do two things:
Make sure the server hosting MySQL allows incoming connections
Write JDBC code and use your MySQL server hostname/ipaddress in the jdbc string to connect and use it.

Java: DriverManager & MySQL port

I'm using a java program to connect to a database created using PhpMyAdmin.
I'm using XAMPP to open mysql port: 3306.
Of course when it's closed I can't connect to the database anymore through my java program. I use the following line code to get connection.
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+user,root,pwd);
Is there another way to connect to a database by providing for example it's full path without having to specify the mysql port and have it running? Or are there any java classes that help to get mysql port running without using softwares as XAMPP or EasyPHP ?

Testing MySQL database on LAN client

I am attempting to create a MySQL DB and Java client app for my home network. I haven't really had any experience with MySQL other than PHPMyAdmin for a website backend (also have used SQLite). I have downloaded the full MySQL installation and a test DB from the MySQL website. On the server machine I successfully connected to the DB as root. Not a difficult task.
Now I want to connect to the DB from my client PC, just to check I can. Eventually I will use the JDBC driver to connect from my Java client app, but before that I just want to check I can connect.
How should I do this? SHould I just install the MySQL command line program onto the client PC?
EXTRA INFO: forgot to add, I'm using Windows 7 on all my machines.
Yes, you could install the MySQL to get MySQL command line program and connect with it, but also you can use another MySQL client tool like PHPMyAdmin, dbForge Studio for MySQL or another one.
To connect from remote host you should create special accout for it, e.g. - 'user_name'#'your_host_name'. Find more information here -
Specifying Account Names
Account Names and Passwords

Categories

Resources