标签:
Azure SQL Database是Azure上的数据库PAAS服务,让用户可以快速的创建和使用SQL数据库而不用担心底层的备份,安全,运维,恢复等繁琐的工作,本文简单介绍如何使用Java程序连接到SQL Azure数据库。
显示连接字符串,会显示目前主要语言的连接信息,点击链接你会看到:
在对话框中,选择Microsoft JDBC driver 4.2 for SQL Server:
请注意,网上看到一些报告说使用4.0,4.1驱动连接v12数据库,即使选择不适用安全连接,也会出现强制使用SSL并报不被信任错误等问题,所以请大家连接v12数据库尽量选择4.2版本的驱动。成功添加驱动库后如下如所示:
如果你需要连接SQL Azure数据库的虚拟机和你的数据库都在Azure上,并且在一个地区(region),那么建议你使用非加密方式具有更好的性能;如果你的应用程序要透过互联网,比如从你的数据中心连接,那么建议你使用SSL的方式连接。
package com.azurelabs.china.sqlserver;
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;
public class ConnectSQL {
public static void main(String[] args) {
// TODO Auto-generated method stub
String connectionString =
"jdbc:sqlserver://YOURSERVER.database.chinacloudapi.cn:1433;"
+ "database=YOURDB;"
+ "user=YOURUSER;"
+ "password=YOURPASS;"
+ "loginTimeout=30;";
……
}
package com.azurelabs.china.sqlserver;
import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;
public class ConnectSQL {
public static void main(String[] args) {
// TODO Auto-generated method stub
String connectionString =
"jdbc:sqlserver://YOURSERVER.database.chinacloudapi.cn:1433;"
+ "database=YOURDB;"
+ "user=YOURUSER;"
+ "password=YOURPASS;"
+ "encrypt=true;"
+ "trustServerCertificate=true;"
+ "hostNameInCertificate=*.database.chinacloudapi.cn;"
+ "loginTimeout=30;";
……
}
其他的程序写法没什么差别,例如查询一个数据库表:
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
PreparedStatement prepsInsertPerson = null;
PreparedStatement prepsUpdateAge = null;
try {
connection = DriverManager.getConnection(connectionString);
// SELECT rows from the table.
String selectSQL="select id,name,age from dbo.testcon";
statement = connection.createStatement();
resultSet = statement.executeQuery(selectSQL);
// Iterate through the result set and print the attributes.
while (resultSet.next()) {
System.out.println(resultSet.getString(1) + " "
+ resultSet.getString(2)+ " "
+ resultSet.getString(3));
}
}
catch (Exception e) {
e.printStackTrace();
}
finally {
// Close the connections after the data has been handled.
if (prepsInsertPerson != null) try { prepsInsertPerson.close(); } catch(Exception e) {}
if (prepsUpdateAge != null) try { prepsUpdateAge.close(); } catch(Exception e) {}
if (resultSet != null) try { resultSet.close(); } catch(Exception e) {}
if (statement != null) try { statement.close(); } catch(Exception e) {}
if (connection != null) try { connection.close(); } catch(Exception e) {}
}
}
标签:
原文地址:http://www.cnblogs.com/cloudapps/p/5348646.html