2011-05-24 132 views
2

任何人都可以請建議一個網站,我可以找到如何將jdbc添加到gwt項目以及如何從gwt項目中的數據庫訪問數據的分步說明?我是GWT新手,無法找到任何好的資源來學習。谷歌網絡工具包

感謝

+0

HI這個鏈接會幫助你學習GWT + JDBC [**點擊這裏**](http://code.google.com/p/gwt-examples/wiki/project_MySQLConn)這裏是鏈接到GWT。 [**點擊這裏**](http://gwt.google.com/samples/Showcase/Showcase.html#!CwDatePicker) – Ankit 2011-05-24 16:50:14

+0

我已經看過你提供的第一個教程,它沒有多大幫助。謝謝 – sap 2011-05-24 16:51:52

回答

2

GWT是一種客戶端技術 - 它創建在瀏覽器上運行的代碼。你不能直接從瀏覽器與數據庫交談。你需要一箇中介servlet服務器。以下是你需要做的:

  1. 使用GWT-RPC爲GWT代碼交談的servlet的服務器。網絡上有很多很好的教程。

  2. 創建使用JDBC與您的數據庫交談的服務器端代碼。 ANKIT已經爲您提供了一個鏈接,例如:http://code.google.com/p/gwt-examples/wiki/project_MySQLConn

您也可以採取直接的路線,並使用預包裝的框架,讓您談談「直接」從GWT數據庫,其中框架提供了一箇中間步驟(GWT-RPC到JDBC):gwtexpress

0

只需按照google's tutorial本身。 GWT是一個在編譯時將java代碼轉換爲javascript代碼的java框架。請不要混淆數據庫連接和gwt應用程序。他們是完全獨立的。在gwt應用程序中,您將看到客戶端&服務器軟件包。只有客戶端包內的類纔會被編譯爲javascript代碼。您必須在服務器包內編寫jdbc代碼。這些代碼不會(不能)編譯成javascript。

要使數據庫數據進入客戶端,您必須進行rpc調用。

我希望這些信息可以幫助您瞭解您的基本知識。

0

在該代碼中,你可以學習如何在數據庫與GWT JDBC

public class ExampleServiceImpl extends RemoteServiceServlet implements ExampleService{ 

//private Connection con=null; 
    private String status; 
    private String url="jdbc:mysql://localhost:3306/test"; 
    private String user="test"; 
    private String pass = "123456"; 
    private Person people; 
    private ResultSet resultSet=null; 
    private Statement stm=null; 
    private Connection con=null; 

    private Statement stm2=null; 
    private Connection conn2=null; 
    private ResultSet resultSet2=null; 
    private MySqlConnection conn=new MySqlConnection(); 


@Override 
public Person getPerson(String name,String surname,int password) { 
    Person personinfo=new Person(); 
    personinfo.setName(name); 
    personinfo.setSurname(surname); 
    personinfo.setPassword(password); 

    ResultSet resultSet=null; 
    Statement stm=null; 
    Connection con=null; 
    MySqlConnection conn=new MySqlConnection();  
     con = conn.getConnection(); 
    try { 
     stm = ((Connection) con).createStatement(); 
    } catch (SQLException e3) { 
     // TODO Auto-generated catch block 
     e3.printStackTrace(); 
    } 
    String sorgu = "SELECT * FROM person"; 
     try { 
     resultSet = stm.executeQuery(sorgu); 
    } catch (SQLException e3) { 
     // TODO Auto-generated catch block 
     e3.printStackTrace(); 
    } 
    while(true){ 
    String sql = "INSERT INTO person " + 
       "VALUES ("+ password +", '" + name+ "','" + surname + "')"; 

    try { 
     stm.executeUpdate(sql); 
    } catch (SQLException e2) { 
     // TODO Auto-generated catch block 
     e2.printStackTrace(); 
    } 

    try { 
     ((Connection) con).setAutoCommit(false); 
    } catch (SQLException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    try { 
     ((Connection) con).commit(); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    try { 
     stm.close(); 
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    return personinfo; 
    } 
} 

公共類的MySqlConnection連接擴展RemoteServiceServlet { private static final serial serialVersionUID = 1L;

public static Connection con; 

public static Connection getConnection() 
    { 
    try 
    {    
     if(con==null) 
     { 
     Class.forName("com.mysql.jdbc.Driver"); 
     String url = "jdbc:mysql://localhost:3306/mysqlconn?user=root&password=123456"; 
     con= DriverManager.getConnection(url); 
     } 
    } 
    catch (Exception ex) 
    { 
     ex.printStackTrace(); 
    }   
    return con; 
    } 

    public static void CloseConnection() 
    { 
    try 
    { 
     con.close(); 
     con = null; 
    } 
    catch (SQLException e) 
    { 
     e.printStackTrace(); 
    } 
    } 
}