Spring JDBC 访问MSSQL
在Spring中对底层的JDBC做了浅层的封装即JdbcTemplate,在访问数据库的DAO层完全可以使用JdbcTemplate完成任何数据访问的操作,接下来我们重点说说Spring JDBC对SQL2005的访问,首先简单的看下配置文件,这个不是这次的重点,贴出来看看即可。
<bean id="myDataSource2" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url"
value="jdbc:sqlserver://localhost:1433;database=sshdb;integratedSecurity=false" />
<property name="username" value="sa" />
<property name="password" value="sa" />
</bean> <!-- mssql JDBC -->
<bean id="mssqlJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="myDataSource2" />
</bean>
如果大家的项目是有maven管理的,在pox中添加sqljdbc4.jar时会遇到问题,因为在maven 库中没有sqljdbc4.jar这个包,需要我们自己进行安装,下面介绍安装步骤:
①下载sqljdbc4.jar包,并存放在本地硬盘中,最好路径中不要包括中文,因为后期还需要用
②开始->运行->cmd,将命令行指向你所放sqljdbc4.jar目录
③执行以下命令
mvn install:install-file -Dfile=sqljdbc4.jar -Dpackaging=jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0
如果在回车后命令行中出现如下提示(具体的内容路径可能不同)则说明安装成功
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.3.1:install-file (default-cli) @ standalone-pom ---
[INFO] Installing /Users/claude/installers/JDBC/sqljdbc_4.0/enu/sqljdbc4.jar to /Users/claude/.m2/repository/com/microsoft/sqlserver/sqljdbc4/4.0/sqljdbc4-4.0.jar
[INFO] Installing /var/folders/c6/q1bdtq557kv54783p1g6cbsw0000gp/T/mvninstall1874482299687761721.pom to /Users/claude/.m2/repository/com/microsoft/sqlserver/sqljdbc4/4.0/sqljdbc4-4.0.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.208s
[INFO] Finished at: Tue Mar 13 14:07:31 EDT 2012
[INFO] Final Memory: 3M/81M
[INFO] ------------------------------------------------------------------------
④最后,修改pom.xml文件,加入以下代码
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>sqljdbc4</artifactId>
<version>4.0</version>
</dependency>
保存并重新install项目,如果没提示错误是最好的,如果提示了错误,可能的错误信息如下:无法下载sqljdbc4.jar这个包(大致这个意思,具体的错误不记得了),我出现这个错误的原因猜测是因为maven的localRepository我单独指定在其他目录,不是在c盘下的.m目录下,后来手动将我localRepository下的com\miciosoft\sqlserver\sqljdbc4\4.0这整个目录复制到默认的.m\Repository下面,神奇的就可以运行了......节操碎了一地有木有....
加载完了jar包,接下来就是测试是否可以进行数据操作了,一开始的时候测试了一个简单的程序
/**
* mssql jdbcTemplate
*/
private JdbcTemplate mssqlJdbcTemplate; public JdbcTemplate getMssqlJdbcTemplate() {
return mssqlJdbcTemplate;
} @Resource(name = "mssqlJdbcTemplate")
public void setMssqlJdbcTemplate(JdbcTemplate mssqlJdbcTemplate) {
this.mssqlJdbcTemplate = mssqlJdbcTemplate;
} /**
* MSSQL语句查询
* @param sql
*/
public void search_MSSQL(String sql) {
List<Map<String, Object>> result = this.mssqlJdbcTemplate
.queryForList(sql);
for (Map<String, Object> map : result) {
for (String key : map.keySet()) {
System.out.println("key:" + key);
System.out.println("value:" + map.get(key));
}
}
}
在前台调用代码,测试通过了,这样,通过spring的jdbcTemplate访问sql2005也就可以了,接下来补充一下用sql语句编写分页查询,说实话,mssql的分页查询比mysql的复杂多了,mysql通过一个关键字limit既可以实现的东西,在mssql中要写一堆代码,下面看看如何实现吧:首先看看sql语句如果编写的:
select top 1 o.* from (select row_number() over(order by ID ) as rownumber,* from [user] ) as o where rownumber>0
上面代码是表示从USER表中查询出一条记录,写的通用一点,如下:(以下分页查询只适用于SQL2005及以后版本,SQL2000的分页查询利用top完成,不过效率比使用row_number()低)
/**
*recordNum:表示查询的记录数量
*orderByColumn:表示排序的字段
*sql:表示前台传递过来的查询语句,在实际使用中这个当然是有业务层传递的一个比较复杂的查询语句,后台DAO中对其进行封装完成分页功能
*firstIndex:表示起始的索引
*/
select top recordNum o.* from (select row_number() over(order by orderByColumn) as rownumber,* from (sql)) as o where rownumber>firstIndex
好了,有兴趣的就可以自己试试了.......
Spring JDBC 访问MSSQL的更多相关文章
- Spring学习(四)——使用Spring JDBC访问数据库
本篇我们将在上一篇http://www.cnblogs.com/wenjingu/p/3824294.html的Demo程序的基础上增加数据持久层和业务层,实现登录验证功能. 1.修改gradle文件 ...
- Java Spring JDBC访问数据库
一.首先采用org.springframework.jdbc.datasource.DriverManagerDataSource类进行实现 1.applicationContext.xml配置如下: ...
- 三、Spring——数据访问
1.Spring 对 DAO的支持 Spring支持目前大多数常用的数据持久化技术,Spring定义了一套面向DAO层的异常体系,并未各种支持的持久化技术提供了异常转换器.这样,我们在设计DAO接口时 ...
- Spring实战6:利用Spring和JDBC访问数据库
主要内容 定义Spring的数据访问支持 配置数据库资源 使用Spring提供的JDBC模板 写在前面:经过上一篇文章的学习,我们掌握了如何写web应用的控制器层,不过由于只定义了SpitterRep ...
- Spring04-SpringEL&Spring JDBC数据访问
一. SpringEL入门 Spring动态语言(简称SpEL) 是一个支持运行时查询和操作对象图的强大的动态语言,语法类似于EL表达式,具有诸如显示方法和基本字符串模板函数等特性. 1. 准备工作 ...
- 三种数据库访问——Spring JDBC
本篇随笔是上两篇的延续:三种数据库访问——原生JDBC:数据库连接池:Druid Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要 ...
- Spring JDBC主从数据库访问配置
通过昨天学习的自定义配置注释的知识,探索了解一下web主从数据库的配置: 背景:主从数据库:主要是数据上的读写分离: 数据库的读写分离的好处? 1. 将读操作和写操作分离到不同的数据库上,避免主服务器 ...
- Spring JDBC 数据访问
Spring JDBC是Spring所提供的持久层技术,它的主要目标是降低使用JDBC API的门槛,以一种更直接,更简介,更简单的方式使用JDBC API, 在Spring JDBC里,仅需做那些与 ...
- Spring JDBC
转载:博客主页:http://blog.csdn.NET/chszs 一.概述 在Spring JDBC模块中,所有的类可以被分到四个单独的包:1)core即核心包,它包含了JDBC的核心功能.此包内 ...
随机推荐
- 安全沙箱冲突:Loader.content:XX 不能访问 XX 可以通过调用 Security.allowDomain 来避免此冲突。
参考资料:http://tieba.baidu.com/p/882855105 感谢:Z0287yyy 感谢分享精神. 具体解决方案:在loader去load的时候,带上这个参数 var contex ...
- ADF_Data Binding系列1_使用Bean Data Control
2015-02-16 Created By BaoXinjian
- mysq修改密码
1.确定你的mysql 是否能正常工作登录数据库cmd--"命令提示字符"窗口录入,录入cd C:\mysql\bin 并按下回车键,将目录切换为 cd C:\mysql\bin再 ...
- Oracle时间戳 与时间之间的相互转换
Unix时间戳记是从'1970-01-01 00:00:00'GMT开始的秒数,表现为整数型. Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数 (1)从Unix时间戳记 ...
- shutdown immediate时 hang住 (转载)
shutdown immediate 经常关库时hang住,在alert中有 License high water mark = 4All dispatchers and shared servers ...
- Spark SQL External Data Sources JDBC简易实现
在spark1.2版本中最令我期待的功能是External Data Sources,通过该API可以直接将External Data Sources注册成一个临时表,该表可以和已经存在的表等通过sq ...
- Jmeter组件1. CSV Data Set Config
位置:Test Plan | Add | Config Element | CSV Data Set Config 意义: 脚本参数化 节省CPU跟内存(可以准备好数据文件去代替动态生成数据,节约CP ...
- AX2012 常用表关系(客户地址,联系信息)
//客户地址信息 static void CustAddressInformation(Args _args) { CustTable custTable; DirPartyTable dirPart ...
- android WebView问题
1.加载本地js.css文件 今天碰到个问题,使用WebView加载html数据,本来没什么问题,loadUrl(),loadData(),都可以使用 但是如果需要引入本地的js.css文件就碰到问题 ...
- jQuery triger与trigerHandler的区别
trigger(event, [data]) 与 triggerHandler(event, [data]) 都是用于触发一个事件. 其两者的区别在于,如果触发的事件是有浏览器默认行为的,trigge ...