I have a problem connecting to SQL-server database through from my android project. I have added sqljdbc41.jar file to my /app/libs directory and I have added it to dependencies in my android studio project.
I use following code:
package com.konrad.rezerwacje1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class Database_Console {
public static void openConnection(){
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jbdc:sqlserver://127.0.0.1:1433;databaseName=my_db";
Connection con = DriverManager.getConnection(url);
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
openConnection();
}
}
yet i still get this error
java.sql.SQLException: No suitable driver found for jbdc:sqlserver://127.0.0.1:1433;databaseName=my_db
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:270)
Instead of this :
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jbdc:sqlserver://127.0.0.1:1433;databaseName=my_db";
You have to use this :
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=my_db";
Connection con = DriverManager.getConnection(url, "username", "password");
Note the different classname, and the fact that prefix jbdc in the URL has been changed to jdbc.
If it is not a requirement to go with sqljdbc41.jar, then you might consider using the jtds driver for your requirement to connect to SQL Server 2014 with Android Studio. There are tons of articles that can help you start with this set of technologies.
For a primer, here are the details:
Download the JTDS driver from here
Then import this jar into your Android Studio, eg: jtds-1.2.5.jar
Use the following details in your code:
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
DriverManager.getConnection("jdbc:jtds:sqlserver://127.0.0.1:1433/DATABASE;user=sa;password=p#ssw0rd");
Related
Im trying to connect to a database called "CompanyCSV" using JDBC but when i try to connect it says "No suitable driver found for jdbc:mariadb://localhost:3306/companyCSV", here's the code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Connectar {
public static void main(String[] args) {
String url = "jdbc:mariadb://localhost:3306/companyCSV";
String user = "root";
String passwd = "root";
try (Connection con =
DriverManager.getConnection(url, user, passwd);){
System.out.println("Connexió exitosa a la base de dades!");
} catch (SQLException e) {
System.err.println("Error d'establiment de connexió: " + e.getMessage());
}
}
}
Install JDBC driver
To connect your Java app to a MariaBD server via JDBC, you need to obtain a JDBC driver.
If using Maven as your dependency manager, you have to add the following dependency to your pom.xml file. This will download the MariaDB driver for your project.
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>2.7.2</version>
</dependency>
You need to load the driver first. I never used MariaDB but for most databases you need to do something like
Class.forName("<class implementing the driver">);
You'll surely find some examples on the MariaDB homepage.
I am using one simple code to access the SQLite database from Java application .
My code is
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectSQLite
{
public static void main(String[] args)
{
Connection connection = null;
ResultSet resultSet = null;
Statement statement = null;
try
{
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
statement = connection.createStatement();
resultSet = statement
.executeQuery("SELECT EMPNAME FROM EMPLOYEEDETAILS");
while (resultSet.next())
{
System.out.println("EMPLOYEE NAME:"
+ resultSet.getString("EMPNAME"));
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
resultSet.close();
statement.close();
connection.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
But this code gives one exception like
java.lang.ClassNotFoundException: org.sqlite.JDBC
How can I slove this,please help me.
You need to have a SQLite JDBC driver in your classpath.
Taro L. Saito (xerial) forked the Zentus project and now maintains it under the name sqlite-jdbc. It bundles the native drivers for major platforms so you don't need to configure them separately.
If you are using netbeans Download the sqlitejdbc driver
Right click the Libraries folder from the Project window and select Add Library ,
then click on the Create button enter the Library name (SQLite) and hit OK
You have to add the sqlitejdbc driver to the class path , click on the
Add Jar/Folder.. button and select the sqlitejdbc file you've downloaded previously
Hit OK and you are ready to go !
If you are using Netbeans using Maven to add library is easier. I have tried using above solutions but it didn't work.
<dependencies>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.7.2</version>
</dependency>
</dependencies>
I have added Maven dependency and java.lang.ClassNotFoundException: org.sqlite.JDBC error gone.
I'm using Eclipse and I copied your code and got the same error. I then opened up the project properties->Java Build Path -> Libraries->Add External JARs...
c:\jrun4\lib\sqlitejdbc-v056.jar
Worked like a charm. You may need to restart your web server if you've just copied the .jar file.
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import org.sqlite.SQLiteDataSource;
import org.sqlite.SQLiteJDBCLoader;
public class Test {
public static final boolean Connected() {
boolean initialize = SQLiteJDBCLoader.initialize();
SQLiteDataSource dataSource = new SQLiteDataSource();
dataSource.setUrl("jdbc:sqlite:/home/users.sqlite");
int i=0;
try {
ResultSet executeQuery = dataSource.getConnection()
.createStatement().executeQuery("select * from \"Table\"");
while (executeQuery.next()) {
i++;
System.out.println("out: "+executeQuery.getMetaData().getColumnLabel(i));
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
return initialize;
}
You have to download and add the SQLite JDBC driver to your classpath.
You can download from here https://bitbucket.org/xerial/sqlite-jdbc/downloads
If you use Gradle, you will only have to add the SQLite dependency:
dependencies {
compile 'org.xerial:sqlite-jdbc:3.8.11.2'
}
Next thing you have to do is to initialize the driver:
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException eString) {
System.err.println("Could not init JDBC driver - driver not found");
}
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
Instead of this put
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb");
Hey i have posted a video tutorial on youtube about this, you can check that and you can find here the sample code :
http://myfundatimemachine.blogspot.in/2012/06/database-connection-to-java-application.html
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class Connectdatabase {
Connection con = null;
public static Connection ConnecrDb(){
try{
//String dir = System.getProperty("user.dir");
Class.forName("org.sqlite.JDBC");
Connection con = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
return con;
}
catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null,"Problem with connection of database");
return null;
}
}
}
I am creating a java console application that connects to a MySQL database. I have outlined below what I've done but the connection is not being established:
Things I have done:
1) I have added the mysql-connector-java-5.1.36.jar to my project bulid path.
2) I have written the code that tries to establish a connection
Can anyone suggest what I'm doing wrong?
The code is given below:
import java.sql.Connection;
import java.sql.DriverManager;
public class main {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:1234/first","root","");
System.out.println("Success fully Connected");
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
this is my code snippet,
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
public class Delete
{
public static void main(String args[])
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("mysql:jdbc://localhost:3306/raja","root","459805");
Statement stmt=con.createStatement();
int count=stmt.executeUpdate("DELETE GENNU WHERE USER_ID=3;");
if(count>0)
System.out.println(" Ok Deletion done");
}
catch(ClassNotFoundException e)
{
System.out.println(e.getMessage());
}
catch(SQLException e)
{
System.out.println(e.getMessage());
}
}
}
and when I execute it , i got like this.
actually you have an error in your DELETE statement, you lack FROM keyword. it should be
DELETE FROM GENNU WHERE USER_ID=3
see the error, it's pointing on DELETE.
UPDATE 1
try, jdbc:mysql not mysql:jdbc
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/raja"
+ "user=root&password=459805");
MySQL and JAVA JDBC
Try with
Class.forName("com.mysql.jdbc.Driver").newInstance();
The documentation says:
// The newInstance() call is a work around for some
// broken Java implementations
Class.forName("com.mysql.jdbc.Driver").newInstance();
Also, the URL should be
jdbc:mysql://localhost/3306/raja
and not
mysql:jdbc://localhost/3306/raja
You need the mySQL Java Connector. Which you can find at the download page here:
https://www.mysql.com/products/connector/
I am using one simple code to access the SQLite database from Java application .
My code is
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectSQLite
{
public static void main(String[] args)
{
Connection connection = null;
ResultSet resultSet = null;
Statement statement = null;
try
{
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
statement = connection.createStatement();
resultSet = statement
.executeQuery("SELECT EMPNAME FROM EMPLOYEEDETAILS");
while (resultSet.next())
{
System.out.println("EMPLOYEE NAME:"
+ resultSet.getString("EMPNAME"));
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
resultSet.close();
statement.close();
connection.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
But this code gives one exception like
java.lang.ClassNotFoundException: org.sqlite.JDBC
How can I slove this,please help me.
You need to have a SQLite JDBC driver in your classpath.
Taro L. Saito (xerial) forked the Zentus project and now maintains it under the name sqlite-jdbc. It bundles the native drivers for major platforms so you don't need to configure them separately.
If you are using netbeans Download the sqlitejdbc driver
Right click the Libraries folder from the Project window and select Add Library ,
then click on the Create button enter the Library name (SQLite) and hit OK
You have to add the sqlitejdbc driver to the class path , click on the
Add Jar/Folder.. button and select the sqlitejdbc file you've downloaded previously
Hit OK and you are ready to go !
If you are using Netbeans using Maven to add library is easier. I have tried using above solutions but it didn't work.
<dependencies>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.7.2</version>
</dependency>
</dependencies>
I have added Maven dependency and java.lang.ClassNotFoundException: org.sqlite.JDBC error gone.
I'm using Eclipse and I copied your code and got the same error. I then opened up the project properties->Java Build Path -> Libraries->Add External JARs...
c:\jrun4\lib\sqlitejdbc-v056.jar
Worked like a charm. You may need to restart your web server if you've just copied the .jar file.
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import org.sqlite.SQLiteDataSource;
import org.sqlite.SQLiteJDBCLoader;
public class Test {
public static final boolean Connected() {
boolean initialize = SQLiteJDBCLoader.initialize();
SQLiteDataSource dataSource = new SQLiteDataSource();
dataSource.setUrl("jdbc:sqlite:/home/users.sqlite");
int i=0;
try {
ResultSet executeQuery = dataSource.getConnection()
.createStatement().executeQuery("select * from \"Table\"");
while (executeQuery.next()) {
i++;
System.out.println("out: "+executeQuery.getMetaData().getColumnLabel(i));
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex);
}
return initialize;
}
You have to download and add the SQLite JDBC driver to your classpath.
You can download from here https://bitbucket.org/xerial/sqlite-jdbc/downloads
If you use Gradle, you will only have to add the SQLite dependency:
dependencies {
compile 'org.xerial:sqlite-jdbc:3.8.11.2'
}
Next thing you have to do is to initialize the driver:
try {
Class.forName("org.sqlite.JDBC");
} catch (ClassNotFoundException eString) {
System.err.println("Could not init JDBC driver - driver not found");
}
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
Instead of this put
connection = DriverManager.getConnection("jdbc:sqlite:D:\\testdb");
Hey i have posted a video tutorial on youtube about this, you can check that and you can find here the sample code :
http://myfundatimemachine.blogspot.in/2012/06/database-connection-to-java-application.html
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
public class Connectdatabase {
Connection con = null;
public static Connection ConnecrDb(){
try{
//String dir = System.getProperty("user.dir");
Class.forName("org.sqlite.JDBC");
Connection con = DriverManager.getConnection("jdbc:sqlite:D:\\testdb.db");
return con;
}
catch(ClassNotFoundException | SQLException e){
JOptionPane.showMessageDialog(null,"Problem with connection of database");
return null;
}
}
}