个性化阅读
专注于IT技术分析

GWT数据库

点击下载

在本教程中, 我们将使用GWT设置数据库连接。我们可以使用Eclipse来配置数据库。

Eclipse包含可以安装的HSQLDB插件。插件使安装易于设置。插件提供许多功能, 例如启动/停止数据库, 调用数据库管理器GUI。在这里, 以下步骤是配置。

选择帮助→Eclipse MarketPlace搜索关键字HSQLDB, 然后单击安装按钮。

GWT数据库1

现在, 选择“窗口”→“显示视图”→“其他”, 然后在“显示视图”对话框中, 展开“ HSQL数据库服务器”, 然后选择“ HSQLDB服务器”以打开HSQLDB视图。

单击查看菜单, 然后从下拉菜单中选择首选项。输入图中所示的值。

GWT数据库2

启动数据库并通过从下拉菜单中选择显示数据库客户端来打开数据库管理器。

GWT数据库3
GWT数据库4

加载数据库

我们使用RStore加载数据, 它具有以下功能:

  1. 它增强了Java类的持久性。
  2. 它创建数据库架构。
  3. 删除数据库架构。
  4. 它持久存在并从数据库中检索对象。

依存关系

RStore需要HSQLDB, Data Nucleus JDO, MyBatis和Hibernate库。下表列出了相关性。

共同 JDO 冬眠 MyBatis
hsqldb-2.2.9.jar jdo-api-3.0.1.jar hibernate-commons-annotations-4.0.1.Final.jar mybatis-3.2.0.jar
commons-lang-2.6.jar datanucleus-api-jdo-3.1.3.jar hibernate-core-4.1.10.Final.jar
log4j-1.2.16.jar DataNucleus将核心-3.1.4.jar hibernate-jpa-2.0-api-1.0.1.Final.jar
DataNucleus将-RDBMS-3.1.4.jar jboss-logging-3.1.0.GA.jar
DataNucleus将-增强-3.1.1.jar jboss-transaction-api_1.1_spec-1.0.0.Final.jar
asm-4.0.jar antlr-2.7.7.jar
dom4j-1.6.1.jar
javassist-3.15.0-GA.jar

下载:要下载上述文件, 请点击以下链接:

通用:hsqldb, Common-lang, log4j。

JDO:datanucleus, showfiles, jdo。

休眠:休眠。

MyBatis:mybatis。

实作

将Mysql配置添加到GWT

LoginScreen.gwt.xml

<module>
 <!-- Inherit the core Web Toolkit stuff. -->
 <inherits name='com.google.gwt.user.User'/>
 <!-- Specify the app entry point class. -->
 <entry-point class='com.yourdomain.projectname.client.LoginScreen'/>
 <!-- servlet context - path is arbritray, but must match up with the rpc init
inside java class -->
 <!-- Tomcat will listen for this from the server and waits for rpc request in
this context -->
 <servlet class="com.yourdomain.projectname.server.MySQLConnection"path="/MySQLConnection" />
 <inherits name="com.google.gwt.user.theme.standard.Standard"/>
 <inherits name="com.google.gwt.user.theme.chrome.Chrome"/>
 <inherits name="com.google.gwt.user.theme.dark.Dark"/>
</module>

数据库连接

DBConnection.java

public interface DBConnection extends RemoteService
 {
 public User authenticateUser(String user, String pass);
 }

DBConnectionAsync.java

public interface DBConnectionAsync {
 public void authenticateUser(String user, String pass, AsyncCallback<User>
callback);
}

User.java(前端设计)

import com.google.gwt.user.client.rpc.IsSerializable;
public class User implements IsSerializable {
 private String username;
 private String password;
 @SuppressWarnings("unused")
 private User() {
 //just here because GWT wants it.
 }
 public User(String username, String password) {
 this.username = username;
 this.password = password;
 }
}

MySQLConnection.java(创建Servlet)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.yourdomain.projectname.client.User;
public class MySQLConnection extends RemoteServiceServlet implements DBConnection {
 private Connection conn = null;
 private String status;
 private String url = "jdbc:mysql://yourDBserver/yourDBname";
 private String user = "DBuser";
 private String pass = "DBpass";
 public MySQLConnection() {
 try {
 Class.forName("com.mysql.jdbc.Driver").newInstance();
 conn = DriverManager.getConnection(url, user, pass);
 } catch (Exception e) {
 //NEVER catch exceptions like this
 }

 }
 public int authenticateUser(String user, String pass) {
 User user;
 try {
 PreparedStatement ps = conn.prepareStatement(
 "select readonly * from users where
username = \"" + user + "\" AND " +
 "password = \"" + pass + "\""
 );
 ResultSet result = ps.executeQuery();
 while (result.next()) {
 user = new User(result.getString(1), result.getString(2));
 }
 result.close();
 ps.close();
 } catch (SQLException sqle) {
 //do stuff on fail
 }
 return user;
 }
}

输出量

GWT数据库5
赞(0)
未经允许不得转载:srcmini » GWT数据库

评论 抢沙发

评论前必须登录!