SQLServer数据库之微软Microsoft JDBC Driver For SQL Server已发布到maven中央仓库
小标 2018-08-31 来源 : 阅读 1311 评论 0

摘要:本文主要向大家介绍了SQLServer数据库之微软Microsoft JDBC Driver For SQL Server已发布到maven中央仓库,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

本文主要向大家介绍了SQLServer数据库之微软Microsoft JDBC Driver For SQL Server已发布到maven中央仓库,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

 相信通过java和SQLServer开发应用的同学们都经历过如下类似的问题。
 微软提供的JDBC官方驱动没有放置在Maven仓库中,这样如果你的Java应用需要访问SQL Server,你不得不下载sqljdbc4.jar至本地,然后每次都通过如下Maven命令安装这一驱动:
mvn install:install-file -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar -Dfile=YOUR FILE DIR\sqljdbc4.jar
然后在你的Java应用的POM.xml文件中进行如下配置:

    com.microsoft.sqlserver
    sqljdbc4
    4.0

最后再执行:
mvn clean package
如果你是使用Eclipse进行开发,上面的步骤执行以后,如果编译不通过,你可能还需要重启Eclipse。
也许是听取了广大开发群众的强烈呼声,或者是其他什么原因,微软最近这个月(今年11月份)将这个驱动发布到了Maven中央仓库,下次你要安装SQL Server驱动,直接在POM.xml文件中进行如下配置即可(微软提供了两个版本(6.1.0.jre8和6.1.0.jre7)的驱动,我目前的开发基于Java8,所以选择了6.1.0.jre8这个版本,可以参考这里):

    com.microsoft.sqlserver
    mssql-jdbc
    6.1.0.jre8

目前亲测通过。
希望大家都可以开心地写代码。
 
参考:
//stackoverflow.com/questions/19537396/missing-artifact-com-microsoft-sqlserversqljdbc4jar4-0
 
附:.NET调用Java Restful接口时间处理一则
 这个问题是由Java语言中比较难用的Date类型造成的,虽然开发过程中我们使用的是Jada-Time这个框架,但是对外暴露服务接口,还是保持为Date。当Java接口时间参数类型定义为Date,我们通过.NET调用Rest接口,虽然看起来是很简单,将参数传人调用接口即可,但是测试结果发现,.NET传人的DateTime,经过Java服务保存在数据库中死活不正确,后来才定位到问题。比如有个Java CRM客户信息Rest服务,.NET调用服务,客户信息实体Customer如下:
    public class Customer
    {
        public string firstName { get; set; }
        public string lastName { get; set; }
        public DateTime createTime { get; set; }
    }
Customer
如果我们直接New一个Customer,并给createTime赋值为DateTime.Now:
 var ent = new Customer
 {
      firstName = "jeff",
      lastName = "wong",
      createTime = DateTime.Now,
 };
 那么通过Java接口插入数据库的时间是不正确的,虽然可以插入。解决方案有两种:1、DateTime.ToUniversalTime().ToString("s")这种方式就是最朴素的拼接接口报文进行接口调用了,大致如下:
var sb = new StringBuffer(1024);
sb.Append("{");
sb.AppendFormat(" \"firstName\": \"{0}\",", ent.firstName);
sb.AppendFormat(" \"lastName\": \"{0}\",", ent.lastName);
sb.AppendFormat(" \"createTime\": \"{0}\"", ent.createTime.ToUniversalTime().ToString("s"));
sb.Append("}");
var postData = sb.ToString(); 
 
2、使用Newtonsoft.Json
 var timeConverter = new IsoDateTimeConverter
 {
         DateTimeFormat = "yyyy‘-‘MM‘-‘dd‘T‘HH‘:‘mm‘:‘ss",
         DateTimeStyles = DateTimeStyles.AdjustToUniversal
 };
var postData = JsonConvert.SerializeObject(ent, Newtonsoft.Json.Formatting.Indented, timeConverter);
最后感慨一下,Java8某些语言特性的加入,比如Lambda表达式、Optional类、Stream API、默认方法、方法引用等等,相比.NET,开发Java应用也比较爽了,当然不能忘了Spring Boot、SpringCloud这些强大的开发框架,确实可以少写很多代码,谁用谁知道。

本文由职坐标整理并发布,希望对同学们学习SQL Server有所帮助,更多内容请关注职坐标数据库SQL Server数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved