10bet网址
连接器和api手册
本手册下载

3.13使用带弹簧的Connector/J

Spring框架是一个基于java的应用程序框架,旨在通过提供一种配置组件的方法来协助应用程序设计。Spring使用的技术是一种著名的设计模式,称为依赖注入(参见倒置控制容器和依赖注入模式)。本文将重点讨论使用Spring 2.0对MySQL数据库的面向java的访问。对于那些想知道的人来说,Spring有一个。net端口,命名为Spring.NET。

Spring不仅是一个用于配置组件的系统,而且还包括对面向方面编程(AOP)的支持。这是Spring资源和事务管理的主要好处之一,也是其基础。Spring还提供了将资源管理与JDBC和Hibernate集成的实用程序。

对于本节中的示例,将使用MySQL world样例数据库。第一个任务是通过Spring设置MySQL数据源。Spring中的组件使用术语。例如,要配置到支持world样例数据库的MySQL服务器的连接,你可以使用:

  <输入键= " db。jdbc:mysql://localhost/world"/>  < input key="db. "密码“价值= " mypass " / > < / util:地图>

在上面的示例中,我们将为配置中使用的属性分配值。对于数据源配置:

< bean id =“数据源”类= " org.springframework.jdbc.datasource。DriverManagerDataSource">   <属性名="用户名" value="${db. name=" $ ";用户名}"/> <属性名="密码" value="${db. Username}"憨豆密码}" / > < / >

占位符用于为这个bean的属性提供值。这意味着我们可以在一个地方指定配置的所有属性,而不是为每个bean上的每个属性输入值。然而,我们确实还需要一颗豆子才能把这一切拼凑起来。最后一个bean负责用属性值实际替换占位符。

< bean类= " org.springframework.beans.factory.config。">   . properties

现在我们已经配置好了MySQL数据源并准备就绪,我们将编写一些Java代码来访问它。下面的示例将使用我们用Spring配置的数据源检索三个随机城市及其对应的国家。

//创建一个新的应用程序上下文。ctx = new ClassPathXmlApplicationContext("ex1appContext.xml");//从应用程序上下文中检索数据源连接c = DataSourceUtils. getconnection (ds);{//获取三个随机城市的列表名称为“城市”、“国家”。Name as 'Country' " + "from City inner join Country on City。CountryCode =。Code " + "order by rand() limit 3");ResultSet rs = ps.executeQuery();while(rs.next()) {String city = rs.getString(“城市”);String country = rs.getString(“国家”); System.out.printf("The city %s is in %s%n", city, country); } } catch (SQLException ex) { // something has failed and we print a stack trace to analyse the error ex.printStackTrace(); // ignore failure closing connection try { c.close(); } catch (SQLException e) { } } finally { // properly release our connection DataSourceUtils.releaseConnection(c, ds); }

这与普通的JDBC访问MySQL非常相似,主要的区别是我们使用DataSourceUtils而不是DriverManager来创建连接。

虽然看起来差别不大,但其影响却相当深远。Spring以类似于J2EE应用程序服务器中的容器管理数据源的方式管理该资源。当一个连接打开时,如果它与一个事务同步,那么可以随后在代码的其他部分访问它。这使得可以将应用程序的不同部分视为事务性的,而不是传递数据库连接。