O Framework CLDC, não suporta APIs JDBC. Dessa forma, para conectar um bancos de dados a dispositivos que têm configuração CLDC, você precisa chamar um Servlet de MIDLets. A Conexão com o banco de dados, executa as queries, e outras funcionalidades precisam ser implementadas no Servlet.

O exemplo abaixo pega o nome do banco de dados, nome de usuário e senha do MIDlet que executa no dispositivo J2ME e passa isto para o Servlet. O estado de conexão é passado para o MIDlet:


import java.io.*;
import java.util.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;

public class testMySQL extends MIDlet implements CommandListener {
    private String username;
    private String url = 
        "http://localhost:8080/servlets-examples/servlet/getConnection";
    
    private Display display;
    private Command exit = new Command("EXIT", Command.EXIT, 1);;
    private Command connect = new Command("Connect", Command.SCREEN, 1);
    private TextField tb;
    private Form menu;
    private TextField tb1;
    private TextField tb2;
    DB db;
    
    public testMySQL() throws Exception {
        display = Display.getDisplay(this);
        
    }
    
    public void startApp() {
        displayMenu();
    }
    
    public void displayMenu() {
        menu = new Form("Conexao");
        
        tb = new TextField("Informe o banco de dados: ","",30,
                TextField.ANY );
        
        tb1 = new TextField("Informe o nome de usuario: ","",30,
                TextField.ANY);
        
        tb2 = new TextField("Informe a senha: ","",30,
                TextField.PASSWORD);
        
        menu.append(tb);
        menu.append(tb1);
        menu.append(tb2);
        menu.addCommand(exit);
        menu.addCommand(connect);
        menu.setCommandListener(this);
        display.setCurrent(menu);
    }
    
    public void pauseApp() {}
    
    public void destroyApp(boolean unconditional) {}
    
    public void commandAction(Command command, Displayable screen) {
        if (command == exit) {
            destroyApp(false);
            notifyDestroyed();
        } else if (command == connect) {
            db  = new DB(this);
            db.start();
            db.connectDb(tb.getString(),tb1.getString(),tb2.getString());
        }
    }
    
    public class DB implements Runnable {
        testMySQL midlet;
        private Display display;
        String db;
        String user;
        String pwd;
        public DB(testMySQL midlet) {
            this.midlet = midlet;
            display = Display.getDisplay(midlet);
        }
        
        public void start() {
            Thread t = new Thread(this);
            t.start();
        }
        
        public void run() {
            StringBuffer sb = new StringBuffer();
            try {
                HttpConnection c = (HttpConnection) Connector.open(url);
                c.setRequestProperty(
                   "User-Agent","Profile/MIDP-1.0, Configuration/CLDC-1.0");
                c.setRequestProperty("Content-Language","en-US");
                c.setRequestMethod(HttpConnection.POST);
                
                DataOutputStream os = 
                        (DataOutputStream)c.openDataOutputStream();
                
                os.writeUTF(db.trim());
                os.writeUTF(user.trim());
                os.writeUTF(pwd.trim());
                os.flush();
                os.close();
                
                // Obtenha a resposta da servlet page.
                DataInputStream is =(DataInputStream)c.openDataInputStream();
                //is = c.openInputStream();
                int ch;
                sb = new StringBuffer();
                while ((ch = is.read()) != -1) {
                    sb.append((char)ch);
                }
                showAlert(sb.toString());
                is.close();
                c.close();
            } catch (Exception e) {
                showAlert(e.getMessage());
            }
        }
            /* Este método leva os dados de usuário como db,usuario e senha
             e passa para o servlet */
        public void connectDb(String db,String user,String pwd) {
            this.db = db;
            this.user = user;
            this.pwd = pwd;
        }
        
        /* Mostra um erro na tela*/
        private void showAlert(String err) {
            Alert a = new Alert("mensagem de erro");
            a.setString(err);
            a.setTimeout(Alert.FOREVER);
            display.setCurrent(a);
        }
        
    };
}

import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class getConnection extends HttpServlet {
    
    public void init() {
    }
    
    public void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, 
            IOException {
        
        DataInputStream in = new DataInputStream(
                (InputStream)request.getInputStream());
        
        String db = in.readUTF();
        String user = in.readUTF();
        String pwd = in.readUTF();
        
        String message ="jdbc:mysql://localhost:3306/"+db+","+user+","+pwd;
        try {
            
            connect(db.toLowerCase().trim(),user.toLowerCase().trim(), 
                    pwd.toLowerCase().trim());
            
            message += "100 ok";
            
        } catch (Throwable t) {
            message += "200 " + t.toString();
        }
        response.setContentType("text/plain");
        response.setContentLength(message.length());
        PrintWriter out = response.getWriter();
        out.println(message);
        in.close();
        out.close();
        out.flush();
    }
    
    public void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, 
            IOException {
        
        doPost(request,response);
    }
    
    /* Este método faz conexão com o MYSQL*/
    private void connect(String db, String user,String pwd) 
    throws Exception {
        
        //Estabelece conexão JDBC com MYSQL.
        //Class.forName("org.gjt.mm.mysql.Driver");
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        Connection conn = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/"+db,user,pwd);
        
        //Estabelece conexão JDBC com Oracle
        //DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
        //Connection conn = DriverManager.getConnection(
        //      "jdbc:oracle:thin:@localhost:1521:"+db,user,pwd);
        
        //Estabelece conexão JDBC com o SQL.
        //Class.forName("net.sourceforge.jtds.jdbc.Driver");
        //Connection conn = DriverManager.getConnection(
        //      "jdbc:jtds:sqlserver://localhost:1433/"+db,user,pwd);
    }
}