Mysql y j2me netbeans

Tengo una página web que lleva un registro de usuarios y unas consultas a esos usuarios con determinados criterios.
Me gustaría saber como puedo conectarme a la base de datos alojada en el servidor desde mi aplicación j2me hecha en netbeans. Y desde ahí realizar consultas e ingresar datos en la db.
Respuesta
1
Primero debes crear un usuario en tu mysql del servidor y asignarle una constraseña para posterioremente asignarle una base de datos y permisos sobre esa base de datos.
Luego en tu clase de conexion a mysql tendras una parte donde dice localhos:8080, deberas cambiar eso por el ip del servidor : 3306 y cambiarle el usuario y contraseña a los que has creado en la bas de datos y listo. Eso seria todo, creando los metodos de validacion a ver si es que la conexion no es null, si no es null es que se ha efectuado correctamente
Por otra parte, lo mas recomendable seria crear un webservice, que se conecte de forma local (localhost) a la base de datos y tenga los metodos para lo que quieras hacer... Entonces, Tu cliente manda los datos al webservice y el webservice los ingresa o consulta depende lo que quieras hacer y devuelve un resultado. Para mi la mas facil es esta forma xq tu tienes
Ya tengo todo eso creado, en uno de los ejemplos vi que lo hacía a través de una página php pasandole los parametros por get, de modo que seria http://midominio.com/pagina.php?nombre=.....&apellidos=....
Ya esta la base de datos creada con su usuario y contraseña, la web está funcionando correctamente.
Me podrías ayudar un poco con el código para conectarme al php desde j2me
Sobre la manera de insertar datos en la db tengo una idea, pero a la hora de hacer la consulta (sacar datos de la db) como podría hacer para interpretar esos datos en j2me y por ejemplo mostrarlos en un list
Uso netbeans. Muchas gracias.
Te recuerdo que estamos en la categoria de java, si quieres codigo php puedes preguntar en la subcategoria PHP dentro de Desarrollo Web.
Lo que tu quieres es conectarte con tu aplicacion java, no con una pagina web, para una pagina web, usas php.
La conexion a base de datos es muy simple, solo debes tener una clase de conexion en java, el driver de mysql y el link correcto para accesar a los datos, las consultas las obtienes por un ResultSet
Tu clase Para la conexion seria esta clase
import java.sql.*;
public class GlobalJDBCGUI {
private static final String DEFAULT_DRIVER="com.mysql.jdbc.Driver";
private static final String DEFAULT_DATABASE_NAME="localhost/bd_naturation";
private static final String DEFAULT_USER="root";
private static final String DEFAULT_PASSWORD="1234";
private static final String DEFAULT_PRE_SOURCE_URL="jdbc:mysql://";
private static final String DEFAULT_SOURCE_URL=
"jdbc:mysql://"+DEFAULT_DATABASE_NAME
+"?user="+DEFAULT_USER
+"&password="+DEFAULT_PASSWORD;
//private static final String DATABASE_URL_COMPLETE =
// "jdbc:mysql://localhost/mystore2?user=root&password=1234";
private String driver=DEFAULT_DRIVER;
public String databaseName=DEFAULT_DATABASE_NAME;
public String user=DEFAULT_USER;
public String password=DEFAULT_PASSWORD;
public String preSourceURL=DEFAULT_PRE_SOURCE_URL;
public String sourceURL=DEFAULT_SOURCE_URL;
private Connection connection;
public GlobalJDBCGUI(String driver, String databaseName, String preSourceURL,
String user, String password)
{
setDriver(driver);
setDatabaseName(databaseName);
setPreSourceURL(preSourceURL);
setUser(user);
setPassword(password);
updateSourceURL();
//Carga la clase Driver
try {
Class.forName(this.driver);
} catch(ClassNotFoundException e) {
System.err.println(e);
}
//Crear la conexion a traves de DriveManager
try {
connection=DriverManager.getConnection(this.sourceURL);
} catch(SQLException e) {
resolveException(e);
}
}
public GlobalJDBCGUI(String user, String password) {
this(null, null, null, user, password);
}
public GlobalJDBCGUI(String databaseName, String user, String password) {
this(null, databaseName, null, user, password);
}
public GlobalJDBCGUI(String databaseName) {this(databaseName, null, null);}
public GlobalJDBCGUI() {this(null);}
//--------------------------------------------------------------------------
public void setDriver(String driver) {
this.driver=driver!=null?driver:DEFAULT_DRIVER;
}
public void setDatabaseName(String databaseName) {
this.databaseName=databaseName!=null?databaseName:DEFAULT_DATABASE_NAME;
}
public void setPreSourceURL(String preSourceURL) {
this.preSourceURL=preSourceURL!=null?preSourceURL:DEFAULT_PRE_SOURCE_URL;
}
public void setSourceURL(String sourceURL) {
this.sourceURL=sourceURL!=null?sourceURL:DEFAULT_SOURCE_URL;
}
public void setUser(String user) {
this.user=user!=null?user:DEFAULT_USER;
}
public void setPassword(String password) {
this.password=password!=null?password:DEFAULT_PASSWORD;
}
//--------------------------------------------------------------------------
public String getDriver() {return driver;}
public String getDatabaseName() {return databaseName;}
public String getPreSourceURL() {return preSourceURL;}
public String getSourceURL() {return sourceURL;}
public String getUser() {return user;}
public String getPassword() {return password;}
//--------------------------------------------------------------------------
public void updateSourceURL() {
setSourceURL(preSourceURL+databaseName
+((user==null || user=="" || password==null|| password=="")?
"" : ("?user="+user+"&password="+password)));
}
//--------------------------------------------------------------------------
public void close() {
if(connection==null) {
return;
}
try {
connection.close();
} catch(SQLException e) {
resolveException(e);
}
}
//--------------------------------------------------------------------------
public Statement createStatement() {
Statement statement=null;
try {
statement=connection.createStatement();
} catch(SQLException e) {
resolveException(e);
}
return statement;
}
public Statement createStatement(int resultSetType, int resultSetConcurrency)
{
Statement statement=null;
try {
statement=connection.createStatement(
resultSetType, resultSetConcurrency);
} catch(SQLException e) {
resolveException(e);
}
return statement;
}
public static ResultSet executeQuery(Statement statement, String query)
throws SQLException
{ ResultSet resultSet=statement.executeQuery(query);
return resultSet;
}
public void execute(Statement statement, String query)
throws SQLException
{
if(connection == null) {
return;
}
try {
statement.execute(query);
} catch(SQLException ex) {
throw new SQLException(resolveException(ex));
}
}
public static void closeResultSet(ResultSet resultSet) {
if(resultSet!=null) {
try {
resultSet.close();
} catch (SQLException e) {
resolveException(e);
}
}
}
public static void closeStatement(Statement statement) {
if(statement!=null) {
try {
statement.close();
} catch (SQLException e) {
resolveException(e);
}
}
}
public void closeConnection() {
if(connection!=null) {
try {
connection.close();
connection = null;
} catch(SQLException e) {
resolveException(e);
}
}
}
public void closeAll(ResultSet resultSet, Statement statement) {
closeResultSet(resultSet);
closeStatement(statement);
closeConnection();
}
//--------------------------------------------------------------------------
public static String resolveException(SQLException e) {
StringBuffer sb = new StringBuffer();
do {
sb.append("\nExcepcion ocurrida:\nMessage: "+e.getMessage());
sb.append("\nEstado SQL: "+e.getSQLState());
sb.append("\nCodigo del fabricante: "+e.getErrorCode()
+"\n----------------");
} while((e=e.getNextException())!=null);
return sb + "";
}
static String checkForWarning(SQLWarning w) {
if(w == null) {
return "";
}
StringBuffer sb = new StringBuffer();
do {
sb.append("\nWarning:\nMensaje: " + w.getMessage());
sb.append("\nEstado SQL: " + w.getSQLState());
sb.append("\nCodigo del fabricante: " + w.getErrorCode()
+ "\n----------------");
} while((w=w.getNextWarning())!=null);
return sb + "";
}
}
__________________________
Si te das cuenta he puesto en negrita este siguiente texto
private static final String DEFAULT_DATABASE_NAME="localhost/bd_naturation";
private static final String DEFAULT_USER="root";
private static final String DEFAULT_PASSWORD="1234";
Con el ip del servidor tendrias algo como esto: "204.254.58.21/base_de_datos";
Con y solo le cambias por el usuario y contraseña de abajo.
_____
En otra clase tendrias un metodo como esto.
public static String dameNombre(String usuario) throws SQLException {
GlobalJDBCGUI global = new GlobalJDBCGUI();
Statement stat = global.createStatement();
String sql = "Select nombre from t_persona where DNI='" + usuario + "'";
ResultSet rs = GlobalJDBCGUI.executeQuery(stat, sql);
rs.next();
return rs.getString(1).toString();
}
Que devolveria un Nombre del usuario, el dato es el siguiente. Rs. GetString(1), el resultset es un tipo de datos que es como si fuera una tabla, toda una tabla en una sola variable, por eso es que escojo el dato String de la columna 1.
Eso seria todo con respecto a java, como te repito, codigo php no tengo la menor idea. Pero sigo pensando que el webservice seria la mejor opcion, xq a veces esta forma no funciona, lo malo que es un poco complicado implementar un webservice.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas