前篇文章介绍了如何将Tomcat及Web应用程序部署到Windows Azure,凡事只要起了头,接下来的工作就相对简单许多,本篇文章接续前篇,介绍如何透过JDBC来存取SQL Azure。
Access SQL Azure with JDBC/Hibernate
文/黄忠成
Using JDBC with SQL Azure
? 前篇文章介绍了如何将Tomcat及Web应用程序部署到Windows Azure,凡事只要起了头,接下来的工作就相对简单许多,本篇文章接续前篇,介绍如何透过JDBC来存取SQL Azure。
? 开始之前,请透过Windows Azure的管理网站建立SQL Azure数据库。
图1
于其中建立PersonData数据库,接着建立PERSONS数据表,其结构如下图。
图2
接下来只要透过SQL Azure的JDBC Driver便可连结到SQL Azure了,而安装Windows Azure SDK Plug-In for Eclipse时,附带安装了MS SQL Server 的JDBC Driver,
这个Driver也支持SQL Azure,所以读者们不需额外下载,只需将其加入Web Project的Library即可。
图3
图4
另外,别忘记当封装WAR时,除了项目本体外,其余引用的Library是不会一并封入的,所以必须额外设定。
图5
图6
图7
完成后修改index.jsp来连结至SQL Azure并列出数据库中的数据。
Insert title here
[email protected];password=...;
// Create and execute an SQL statement that returns some data.
String SQL = "SELECT * FROM dbo.PERSONS";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(SQL);
// Iterate through the data in the result set and display it.
while (rs.next()) {
out.print(rs.getString(1) + " " + rs.getString(2)+"");
}
}catch(Exception e){
out.print("Error message: "+ e.getMessage());
}
%>
Hello Azure
执行后便可看到结果,为了测试,我事先在PERSONS数据表中添加了一笔数据。
图8
当然,在Windows Azure模拟器上执行的结果也一样。
图9
Access SQL Azure with Hibernate
?? 能透过JDBC连结SQL Azure的话,有名的OR Mapping Framework:Hibernate自然也可以使用啰,但过程有些小细节需要注意一下。
? 先将Hibernate所需要的Library加入。
图10
别忘记,Deployment Assembly也要一并处理。
图11
接着加入Hibernate Configuration文件。
图12
图13
图14
这里要注意一下,Hibernate Plug-In(需额外安装)产生的组态档对于SQL Server的JDBC Driver描述有误,需修改如下。
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://c95ouvaxn9.database.windows.net;DatabaseName=PersonData
.....
[email protected]
dbo
org.hibernate.dialect.SQLServerDialect
最大的差异在于driver_class部分,Plug-In产生的是错误的。
组态档修改完后便可以建立Mapping Class。
package com.myazure.mapping;
public class Person {
private String PERSON_ID;
public String getPERSON_ID() {
return PERSON_ID;
}
public void setPERSON_ID(String pERSON_ID) {
PERSON_ID = pERSON_ID;
}
public String getNAME() {
return NAME;
}
public void setNAME(String nAME) {
NAME = nAME;
}
private String NAME;
}
然后透过Plug-In来产生Mapping文件。
图15
最后修改Hibernate Configuration文件来连结Mapping文件。
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://c95ouvaxn9.database.windows.net;DatabaseName=PersonData
.....
[email protected]
dbo
org.hibernate.dialect.SQLServerDialect
紧接着是重头戏,修改index.jsp如下。
Insert title here
");
out.print("NAME: " + p.getNAME()+"");
}
}catch(Exception e){
out.print("Error message: "+ e.getMessage());
}
%>
Hello Azure
完成并执行后,你应该会看到Hibernate抱怨找不到对应的JDBC Driver,这是因为Hibernate 4.12读取JDBC Driver的方式改变了,解决方法只要手动加上一行Class.forName就可。
Insert title here
");
out.print("NAME: " + p.getNAME()+"");
}
}catch(Exception e){
out.print("Error message: "+ e.getMessage());
}
%>
Hello Azure
完成后测试,没问题的话应该可看到以下画面。
图16
在Windows Azure模拟环境下自然也是OK的。
图17
有图有真相, 在真实的Windows Azure环境下自然也是OK的。
图18
原文:大专栏 Access SQL Azure with JDBC/Hibernate
原文地址:https://www.cnblogs.com/chinatrump/p/11516510.html