spring 中配置sqlserver2008

不得不说的在 MS SQL SERVER 下的 JDBC 调用


 

今天下午,临时决定要再 MS SQL-SERVER  下配置 Spring 的数据源 DataSource 。但配置了半天,获取数据源仍不成功,我没有办法,找原因呗,只能写个列子测试下。先不管三七二十一,先上正确的例子再说。

看客如果想运行下面的代码,需要自己手工写个主函数调用,或者使用 JUnit 做个测试。如果这个例子运行成功,就说明不受机器环境影响,没有必要关闭防火墙和杀毒软件。

 

请注意,里面的红色字体,请换成实际SQL SERVER 服务器地址。【 dbc:sqlserver://localhost:1433】

即:

   (1)connectionUrl

    (2)String SQL = "SELECT [ID],[USER_ID],[NAME],[EMAIL] FROM [Z_MARK_MANAGE].[dbo].[USER]";

 

 上面2个你必须得换。

 

 

 

 

 

 

 

 

上面的程序如果运行不成功,典型的就是获取连接不成功。按照下面步骤查找。

 

(1)  你少数据库驱动吗?

     典型的就是 ClassNotFoundException,自己注意看下,如果少驱动,请到下面地址下载。

     微软 MS SQL SERVER 2008 驱动

     

     上面的驱动,请注意所适应的运行环境,这个下载完毕后,看里面的中文文档即可,下载下来后就是一个 HTML 页面,无非就是让你接受法律条款之类的,我大概看了下,微软这个家伙很恶心,下载的软件,你只有一次转给第二个人的机会。否则呵呵---要触犯法律的。在JAVA如此开源的情况下,不得不说微软你真的很搞。 上面的链接如果失效的话,请到CSDN的下载区搜,还是有好多人为了赚点分,给你传上去的。 我想告诉你的是,你到官方下载不会使用你超过10分钟的时间。

 

(2)  检查SQL SERVER 2008&2005 等数据库的服务是否开启,同样需要注意端口号。

     如果你说你不会检查,那我告诉你在什么位置,

     【开始】-【程序】-【Microsoft SQL Server 2008】-【配置工具】-【SQL Server 配置管理器】

      

 




 

 


 

 

      按照上面配置后,端口可以采用默认或者非默认。 接下面要注意的是。

如果你原来的 SQLSERVER 的 TCP/IP 服务是关掉的,那么启用 TCP/IP 后, 必须要重新启动 SQL-SERVER 服务。 我犯的就是这个错误。真TMD恶心

 

 

(3)1,2 步骤不行, 那么请你关闭防火墙,关闭杀毒软件。 如果还不行,那就重新启动机器再试了。

 

(4)用 SQL SERVER 的客户端登陆,使用 url 里面的 用户名和密码登陆,看看是否有这样的用户,和密码是否正确。

 

如果上面 4 个步骤,还不行, 那我也无语。 出去散散步,再搞吧

 

 

接下来就是在Spring的配置文件 applicationContext.xml 中配置数据源。 先上个正确的例子吧。

 

 

[xhtml]  view plain copy print ?
  1. <!-- 配置 Spring 使用的数据源  -->  
  2.     <bean id="dataSource"  
  3.         class="org.apache.commons.dbcp.BasicDataSource"  
  4.         destroy-method="close">  
  5.         <property name="driverClassName">  
  6.             <value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>  
  7.         </property>  
  8.         <property name="url">  
  9.             <value>jdbc:sqlserver://localhost:1433;database=Z_MARK_MANAGE;integratedSecurity=false</value>  
  10.         </property>   
  11.         <property name="username">  
  12.             <value>sa</value>  
  13.         </property>  
  14.         <property name="password">  
  15.             <value>wellhope</value>  
  16.         </property>  
  17.            
  18.         <property name="validationQuery">  
  19.             <value>select count(*) from [Z_MARK_MANAGE].[dbo].[USER_INFO]</value>  
  20.         </property>  
  21.     </bean>  

 

 

上面需要解释,

<property name="url">
   <value>jdbc:sqlserver://localhost:1433;database=Z_MARK_MANAGE;integratedSecurity=false</value>
 </property>

 

就是一个配置的url:

(1) jdbc:sqlserver 这个不需要变

(2) localhost:1433 ,这个根据实际情况,自己转,如果你不知道端口号,请查看上面的图

(3) database=Z_MARK_MANAGE;integratedSecurity=false

    这个解释下,

     a)database=Z_MARK_MANAGE  数据库实例名称,当然也可以写成 databaseName=Z_MARK_MANAGE

     b)integratedSecurity=false  这个表示的意思是,我不使用window的本机验证,使用 用户名/口令 的方式验证

 

上面的照着写就可以,如果还出现什么问题,请留言,我抽空解答。

 

下面附一个数据库的表的创建脚本和Hibernate的映射文件

 

 

 映射文件

 

 

[xhtml]  view plain copy print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE hibernate-mapping PUBLIC   
  3.     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"  
  4.     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">  
  5.   
  6. <hibernate-mapping>  
  7.     <class name="com.wellhope.bob.domain.User" table="USER_INFO">   
  8.          <id name="id" column="ID" type="int" >  
  9.             <generator class="native" />  
  10.          </id>  
  11.          <property name="user_id" column="USER_ID"></property>  
  12.          <property name="name" column="NAME"></property>  
  13.          <property name="email" column="EMAIL"></property>  
  14.          <property name="sex" column="SEX"></property>  
  15.          <property name="address" column="ADDRESS"></property>  
  16.          <property name="zip_code" column="ZIP_CODE"></property>  
  17.          <property name="department" column="DEPARTMENT"></property>  
  18.          <property name="password" column="PASSWORD"></property>  
  19.          <property name="role_id" column="ROLE_ID"></property>  
  20.     </class>  
  21. </hibernate-mapping>  

 

 

 

 数据库创建的SQL脚本

 

 CREATE TABLE [dbo].[USER_INFO](
 [ID] [bigint] IDENTITY(1,1) NOT NULL,
 [USER_ID] [nvarchar](50) NOT NULL,
 [NAME] [nvarchar](200) NULL,
 [EMAIL] [nvarchar](200) NOT NULL,
 [SEX] [nchar](1) NULL,
 [ADDRESS] [nvarchar](500) NULL,
 [ZIP_CODE] [nchar](6) NULL,
 [DEPARTMENT] [tinyint] NULL,
 [PASSWORD] [nvarchar](500) NULL,
 [ROLE_ID] [bigint] NULL

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值