Spring配置的MS SQLSERVER 2008 JDBC连接

  不得不说的在 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个你必须得换。

 

 

package com.wellhope.bob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import com.microsoft.sqlserver.jdbc.SQLServerDriver; /** * @author Bob * */ public class GetConn { /** * @param args */ public void getconn() { // TODO Auto-generated method stub // Create a variable for the connection string. String connectionUrl = "jdbc:sqlserver://localhost:1433;database=Z_MARK_MANAGE;integratedSecurity=false;user=sa;password=wellhope;"; // Declare the JDBC objects. Connection con = null; Statement stmt = null; ResultSet rs = null; try { // Establish the connection. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); con = DriverManager.getConnection(connectionUrl); // Create and execute an SQL statement that returns some data. String SQL = "SELECT [ID],[USER_ID],[NAME],[EMAIL] FROM [Z_MARK_MANAGE].[dbo].[USER]"; stmt = con.createStatement(); rs = stmt.executeQuery(SQL); // Iterate through the data in the result set and display it. while (rs.next()) { System.out.println("【SUCC】获取 SQL-SERVER 的连接已成功。[1]="+rs.getString(2)); } } // Handle any errors that may have occurred. catch (Exception e) { System.out.println("【ERROR】打开 SQL-SERVER 的连接失败。"); e.printStackTrace(); } finally { if (rs != null) try { rs.close(); } catch (Exception e) { } if (stmt != null) try { stmt.close(); } catch (Exception e) { } if (con != null) try { con.close(); } catch (Exception e) { } } } }

 

 

 

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

 

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

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

     微软 MS SQL SERVER 2008 驱动

    

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

 

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

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

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

      Spring配置的MS SQLSERVER 2008 JDBC连接_第1张图片

 


Spring配置的MS SQLSERVER 2008 JDBC连接_第2张图片


Spring配置的MS SQLSERVER 2008 JDBC连接_第3张图片

 

 


 

 

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

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

 

 

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

 

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

 

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

 

 

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

 

com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;database=Z_MARK_MANAGE;integratedSecurity=false sa wellhope select count(*) from [Z_MARK_MANAGE].[dbo].[USER_INFO]

 

上面需要解释,


   jdbc:sqlserver://localhost:1433;database=Z_MARK_MANAGE;integratedSecurity=false
 

 

就是一个配置的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的映射文件

 

 

映射文件

 

 

 

数据库创建的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

)



你可能感兴趣的:(开发框架(SSH))