谁有连接数据库的例子
zqjhyl
2007-12-27
我正在做一个设计不能登录数据库测试 不了.是通过servlet读取数据库.
|
|
jacky-zhang
2008-01-18
The example below takes database name, username and password from MIDlet running on the J2ME device and passes it to the Servlet. The status of connection is passed to 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("Connect"); tb = new TextField("Please input database: ","",30, TextField.ANY ); tb1 = new TextField("Please input username: ","",30, TextField.ANY); tb2 = new TextField("Please input password: ","",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(); // Get the response from the 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()); } } /* This method takes input from user like db,user and pwd and pass to servlet */ public void connectDb(String db,String user,String pwd) { this.db = db; this.user = user; this.pwd = pwd; } /* Display Error On screen*/ private void showAlert(String err) { Alert a = new Alert(""); 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); } /* This method connects to MYSQL database*/ private void connect(String db, String user,String pwd) throws Exception { // Establish a JDBC connection to the MYSQL database server. //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); // Establish a JDBC connection to the Oracle database server. //DriverManager.registerDriver(new oracle.jdbc.OracleDriver()); //Connection conn = DriverManager.getConnection( // "jdbc:oracle:thin:@localhost:1521:"+db,user,pwd); // Establish a JDBC connection to the SQL database server. //Class.forName("net.sourceforge.jtds.jdbc.Driver"); //Connection conn = DriverManager.getConnection( // "jdbc:jtds:sqlserver://localhost:1433/"+db,user,pwd); } } |