Access SQL Azure with JDBC/Hibernate

前篇文章介绍了如何将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

时间: 2024-08-28 12:52:23

Access SQL Azure with JDBC/Hibernate的相关文章

Hibernate SQL实际sql语句监控- p6spy+hibernate+proxool 设置

由于ORM工具的缘故,我们调试程序的时候远没有直接在程序里直接写个string的SQL简单,想当年查个sql是有多么的幸福,一行sql = "select * from ..."找找就行了, 现在用了hibernate, 就算在JPA中开了show_sql=true, 打出来的还是一串 "name = ? and id = ? " 好在找到一个工具, p6spy, 作为真正JDBC的一个代理, 截获了所有sql, 让我们看到一个真实sql的机会. 先下载,以下配置默

Windows Azure Platform体验(2):SQL Azure

Windows Azure Platform有Windows Azure.SQL Azure.Azure AppFabric三部分. SQL Azure是云关系数据库.您的数据:随时随地管理.SQL Azure是云中的完全关系数据库. 这节我们体验SQL Azure,必备软件: Microsoft SQL Server 2008 R2 Windows Azure Platform账户 这次体验有下面几个步骤,分别是: 初始化SQL Azure 连接到SQL Azure 配置SQL Azure数据

[转]Entity Framework and SQL Azure

本文转自:https://msdn.microsoft.com/zh-cn/library/gg190738 Julie Lerman http://thedatafarm.com April 2011 As part of Microsoft’s Azure platform, SQL Azure is your relational database in the cloud. In fact, SQL Azure is very close to being SQL Server in t

JDBC&Hibernate

当数据库有大量用户来访问要采取什么技术解决 可以采用连接池: 什么是ORM 对象关系映射(Object Relational Mapping 简称ORM)是一种为了解决面向对象与面向关系数据库存在的互不匹配的想象的技术:简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据库中:本质上就是将数据从一种形式转换到另一种形式. Hibernate有哪5个核心接口. Configuration接口:配置Hibernate,根据其启动Hibernate,创

设置SQL Azure防火墙规则来允许SSMS管理SQL Azure

SQL Server Management Studio可以用来管理SQL Azure 但SQL Azure是云端的关系型数据库,也就是说任何一台连接到Internet的机器都能够连接到SQL Azure数据库.但是在某些情况下这是不安全的,作为用户来说,我只希望我自己企业内部能够连接到我创建的SQL Azure数据库:除我企业之外的其他人都无法连接到这台SQL Azure数据库.这个功能可以功过设置SQL Azure的防火墙规则来进行. 我这里设置任何地址都可以访问 设置SQL Azure防火

如何将本地数据库迁移至SQL Azure

Windows Azure的SQL Azure和SQL Server 拥有不同的体系结构,可以说是两个不同的产品.SQL Azure不完全支持或者尚不支持SQL Server的某些功能,这使得我们不能像平常一样使用bak文件还原的方式迁移数据库,也不能使用数据导入导出向导.很多SQL Server的特性在SQL Azure中不被支持. 那我们怎样才能将现有数据库迁移到SQL Azure上呢? 一."将数据库部署到SQL Azure"向导 我最先想到的是这个向导,对数据库右键=>任

Access sql语句创建表及字段类型(转)

http://www.cnblogs.com/hnyei/archive/2012/02/23/2364812.html 创建一张空表: Sql="Create TABLE [表名]" 创建一张有字段的表: Sql="Create TABLE [表名]([字段名1] MEMO NOT NULL, [字段名2] MEMO, [字段名3] COUNTER NOT NULL, [字段名4] DATETIME, [字段名5] TEXT(200), [字段名6] TEXT(200))

Using sql azure for Elmah

The MSDN docs contain the list of T-SQL that is either partially supported or not supported.  For example see the following location for CREATE TABLE - http://msdn.microsoft.com/en-us/library/ee336258.aspx In Elmah's case, the filegroup is not suppor

SQL Azure (16)创建PaaS SQL Azure V12数据库

<Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的Azure China 最新的Azure PaaS SQL Database(SQL Azure)已经在国内正式上线了,在这里笔者简单介绍一下. SQL Azure V12是一个SQL Azure的最新的服务,提供用户SQL Server的连接字符串,用户直接使用PaaS SQL Azure服务,无需管理数据库服务器底层的操作系统. 与传统SQL Server Virtual Machine相比,A