Skip to content

JDBC Survey Results

Andrea Lam edited this page Oct 24, 2017 · 11 revisions

JDBC Driver for SQL Server - Pulse Survey

Results from the survey published on Feb 23, 2017 and closed on March 14, 2017.

Number of Respondents: 45

All questions below allowed multiple answers. As a result, %s in results below do not always total 100%.

What is your build system of choice?

Answer Choice Results
Maven 73.33%
Gradle 28.89%
Ant 6.67%

How do you obtain the JDBC driver?

Answer Choice Results
Download jar or add as dependency from Maven Central 86.67%
Download jar from Microsoft Download Center 13.33%
Download jar from GitHub 13.33%

What version(s) of Java do your applications use?

Answer Choice Results
Java 8 95.56%
Java 7 28.89%
Java 9 6.67%
Java 6 4.44%

What type of JVM do you use?

Answer Choice Results
Oracle JVM 88.89%
OpenJDK 37.78%
IBM JVM 4.44%
IcedTeam 2.22%
Azul 2.22%

What operating system do you use with Java?

Answer Choice Results
Windows 10 54.55%
Ubuntu 16.04 45.45%
Windows 7 29.55%
Red Hat Enterprise Linux 7/CentOS 7 28.89%
macOS Sierra 22.73%
Red Hat Enterprise Linux 6/CentOS 6 20.45%
Ubuntu 16.10 (Preview) 13.64%
Windows Server 2012 8.89%
Ubuntu 15.10 4.55%
SUSE Enterprise Linux 12 4.55%
OS X El Capitan 4.55%
Ubuntu 14.04 2.22%
Windows Server 2016 2.22%
Windows Server 2008R2 2.22%
Azure App Server (Windows) 2.22%
Arch Linux 2.22%
OpenSolaris 11 2.22%
openSUSE Leap/Tumbleweed 2.22%

What version of SQL Server does your Java application connect to?

Answer Choice Results
SQL Server 2016 62.22%
SQL Server 2012 44.44%
SQL Server 2014 44.44%
SQL Server 2008R2 37.78%
SQL Server 2008 17.78%
Azure SQL Database 17.78%
SQL Server 2005 11.11%
SQL Server vNext (2017) 6.67%
Azure SQL Data Warehouse 4.44%

JDBC Driver for SQL Server - Developer Survey

Results from the survey published on March 13, 2017 and closed on April 7, 2017.

Number of Respondents: 21

All questions below allowed multiple answers. As a result, %s in results below do not always total 100%.

What types of getting started resources do you find most helpful?

Answer Choice Results
Code-level examples and walk-throughs 90.48%
Official documentation 57.14%
JavaDocs 19.05%
Short animations demonstrating product features 9.52%
Video demonstrations 9.52%
Tutorial within the tool/IDE you currently use 9.52%
I don't need any help 4.75%

What editors and/or IDEs have you used as your primary editor in the last 3 months to create new Java applications?

Answer Choice Results
Eclipse 66.67%
IntelliJ IDEA 42.86%
Netbeans 23.81%
Notepad++ 14.29%
Visual Studio 9.52%
Android Studio 4.76%
Sublime Text 4.76%
Visual Studio Code 4.76%
Atom 4.76%

What tools do you use for continuous deployment and DevOps?

Answer Choice Results
Jenkins 88.24%
Docker 52.94%
Travis CI 17.65%
Flyaway 17.65%
Chef 11.76%
Amsible 5.88%
Team City 5.88%
Liquibase 5.88%

What frameworks have you used?

Answer Choice Results
Spring Boot 50.00%
Spring MVC 44.44%
GWT 22.22%
JSF 22.22%
Struts 2 11.11%
Wicket 11.11%
Play 1 5.56%
Dropwizard 5.56%
Apache Kafka 5.56%
Stripes 5.56%
RESTX 5.56%

What major features do you use in the JDBC driver?

Answer Choice Results
Bulk Copy 54.55%
Always Encrypted 36.36% (Additional comment: "We could not use Always Encrypted as it is not supported by ORMs")
Table-Valued Parameters 27.27%
Azure Active Directory Authentication 0.00%
Internationalized Domain Names 0.00%

On a scale of 1 (extremely dissatisfied) to 10 (extremely satisfied), how would you rate the JDBC Driver for SQL Server?

Average number: 7


JDBC Driver for SQL Server - Prioritization Survey

Results from the survey published on April 7, 2017 and closed on May 2, 2017.

Number of Respondents: 43

All questions below allowed multiple answers. As a result, %s in results below do not always total 100%.

What features/improvements would you like to see in the JDBC Driver for SQL Server? Please rank the options below.

Feature 1 2 3 4 5 Score
Multiple Active Result Sets 0 28.13% 21.88% 21.88% 28.13% 2.50
SQL Variant Data Type Support 6.25% 18.75% 12.50% 28.13% 34.38% 2.34
Idle Connection Resiliency 3.13% 31.25 % 43.75% 15.63% 6.25% 3.09
Bug fixes for issues reported 42.86% 25.71% 14.29% 11.43% 5.71% 3.89
Other 64.71% 5.88% 0.00% 14.71% 14.71% 3.91

If you answered, "Other" to the question above (Q1), what would you like us to prioritize?

Answer Responses
Fix issue #244 25
Performance - cache prepared statements 2
Kerberos support 1
SocketTimeOut / Query Timeout 1

On a scale of 1 (extremely dissatisfied) to 10 (extremely satisfied), how would you rate the JDBC Driver for SQL Server?

Average number: 7


JDBC Driver for SQL Server - Sentiment Survey (May & June 2017)

Results from the survey published on May 2, 2017 and closed on June 30, 2017.

Number of Respondents: 45

How likely are you to recommend the JDBC Driver for SQL Server to a friend or colleague?

Average number: 7.55

What do we do well?

  • Performance, up-to-date with new SQL Server versions
  • You open sourced the driver!
    Code clean and nice!
    You guys rocks!
    1. Open sourced the driver.
      2. Got answers on issues raised in your GitHub Repo.
      3. Saw interesting conversations related to PRs.
      4. Publishing on Maven Repo
      5. Frequent releases on Maven. Especially frequency is good ~ monthly. (Daily will be nightmare. :) )
      6. Good CHANGELOG.

      Things should consider:
      1. JDK 9. OpenJDK. Your driver works on OpenJDK but better if you able to use JDK 9 specific features.
      2. Still supporting JDK 7 so you could not use stream api , process api, CompletableFuture APIs or lambdas which might be useful for your driver implementation
  • Transparency via open sourcing the driver
  • Performance and reliability have never been an issue.
  • Open source development, which makes it easier to debug production problems with SQL Server.

    Quick response on issues and questions.

What changes would you like to see to consider giving us a higher rating?

  • Improve performance. Driver level type mapping (notably between datetime2 <--> datetime)
  • Complete support for SQLServer's beautiful spatial datatypes and functions.
  • Implement more optional JDBC functionality. Improve performance.
  • Improve driver performance, as it still slower than JTDS
  • Performance
  • I really wish I could find a traditional JavaDoc for the project. I want to be able to see the method signatures, etc. in the way that is standard across essentially all Java projects. Perhaps it exists somewhere, but I haven't been able to find it after a few minutes of poking around on the Microsoft documentation link included with the project.
  • Failover when using peer-to-peer replication
  • SQL Variant type!!!!!!!!!
  • Some additional support in the drivers for Application Roles. Ideally something in the properties.
  • Stronger support/performance for ORM layers which are common in the Java community

JDBC Driver for SQL Server - Sentiment Survey (July & August 2017)

Results from the survey published on July 1, 2017 and closed on August 31, 2017.

Number of Respondents: 43

How likely are you to recommend the JDBC Driver for SQL Server to a friend or colleague?

Average number: 7.35

What do we do well?

  • Testing.
  • Open-sourcing code for ms sql server jdbc-drivers
    it'll make it much more simple to debug, troubleshoot and fix any possible bugs

What changes would you like to see to consider giving us a higher rating?

  • Performance
  • Fixing all reported leaks (e.g #308)
    Provide expected implementation of getObject() methods (#6)
    Provide a decent implementation of getGeneratedKeys() (#245)
    Finally, this is the only JDBC driver that I know that does not cache the PreparedStatement (#166)
  • A Microsoft product doesn't support NTLM out of the box. Whut? >A closed-source DLL is required to make NTLM work, but its not multi-platform, and our Java services are running on Linux VMs.I've tried your Kerberos implementation, but I found it impossible to configure correctly for cross-domain authentication.
  • Performance of other drivers, such as the Merlia driver from INetsoft.de, can be significantly higher than the MS driver.
  • Improve more the performance.
  • If the JDBC batch inserts would use the SQL Bulk Copy api automatically when performing batch operations, this would be very convenient. As this would prevent the need to use a separate non-standard JDBC api to efficiently load data. Also, for the existing SQLBulkCopy API, the interface on ISQLBulkRecord for the method, getColumnOrdinals() should return a SortedSet not just a Set, as it turns out the driver code in SQLBulkCopy expects the set of columnOrdinals to be an ordered set, and this is not explicit in the interface just returning a Set as a set is unordered (this is a minor thing, but it was a source of confusion for a little while when implementing a ISQLBulkRecord instance, until reading through the source code of the SQLBulkCopy class).
  • Improved performance (especially batch inserts)
    - Bug fixes
    - Improved error messages, exception handling
  • I can connect to our SQL Server if I use kinit -k -t /path/to/keyTab [email protected] before I run my java code or tomcat application. I would like to use the keyTab directly so that the code can make a kerberos connection with out having a ticket cached.
  • More visibility on performance improvements.
  • Supporting NTLM authentication without an additional DLL. Our Java servers are Linux-based, and the DLL required is Windows-only.
  • A focus on performance to offset the recent issues exposed on github (e.g. #166). Lack of understanding how most Java application drive prepared statements throughout the industry is quite telling.
  • Performance when compared to jtds.
  • support for RSASSA-PSS certs and get started on TLS 1.3
  • Better performance, cleaner code.
  • PreparedStatement caching/optimisations for ORMs
  • complete some features that is not present now
    and add driver for ssas service
  • Increase Performance
    Bundle the .dll file for integrated security and automatically load it, if appropriate.

JDBC Driver for SQL Server - Sentiment Survey (September 2017)

Results from the survey published on September 1, 2017 and closed on September 30, 2017.

Number of Respondents: 17

How likely are you to recommend the JDBC Driver for SQL Server to a friend or colleague?

Average number: 8.17

What do we do well?

  • Really love the new MIT license and responsiveness on GitHub. The license is very useful to reverse engineer some of the internals, e.g. to learn how TVP are to be used, etc.
  • transparency, responsiveness
  • Drivers look stable and work reliably, I like the fact they've been open sourced.
  • Making driver MIT is helping to distribute and fix issues without license/IP concerns

What changes would you like to see to consider giving us a higher rating?

  • Ongoing support for Java 7
  • Rewrite the driver to use Netty http://netty.io
  • Can you give Gradle support. You are getting paid for not being ugly, retarded and lazy programmers.
  • Please list the differences in jre7 and jre8 artifact variations. Why use one vs the other, etc. ? Thanks.
  • Fix Github Issues + Pull Requests
  • Improve SQLBlobStream and PLPInputStream documentation. I'm having a lot of trouble streaming large data from SQL Server, always getting OutOfMemory exceptions and GC overhead.
  • Rewrite the driver using XNIO.
Clone this wiki locally