29 April 2007

JDBC to SQL Server Express

Connecting JDBC-based tools such as SQL Developer or DbVisualizer to SQL Server Express required the following steps:

  • Obtain JDBC Driver
  • TCP/IP for SQL Server Express
  • Authentication Method

Obtain JDBC Driver

Using SQL Developer, when you get the following exception …

Unable to find driver: net.sourceforge.jtds.jdbc.Driver

… download the jTDS JDBC driver and install it in your JRE's ext folder. The latest version of the driver is 1.2. Of course, there are other JDBC drivers for SQL Server you can use.

TCP/IP for SQL Server Express

By default, TCP/IP for SQL Server Express is disabled, so JDBC cannot connect to it and you may get the following exception …

Network error IOException: Connection refused: connect

Enable TCP/IP

To enable TCP/IP, start SQL Server Configuration Manager.

  1. Expand SQL Server 2005 Network Configuration node.
  2. In the right pane, select Protocols for SQLEXPRESS. The right pane should now show Protocols and Status columns.
  3. Select Enable from the TCP/IP context menu.

Find or Configure TCP/IP Port

After enabling TCP/IP, you have to find out which port number to use. SQL Server Express allocates a port dynamically each time it is started, so to find or configure the port number, continue using SQL Server Configuration Manager

  1. Select Properties from the TCP/IP context menu. The TCP/IP Properties dialog should open.
  2. Select the IP Addresses tab.
  3. In the IPAll node …
    1. The TCP Dynamic Ports field shows the currently used port number. If you set that field to blank, then SQL Server Express should not automatically choose another port when it restarts.
    2. Set the desired port number in the TCP Port field.
    3. Press OK to apply your settings and close the dialog.


If you change the TCP/IP port, you have to restart SQL Server Express before it can use the new port number. To test that your port number is used, start a cmd window and type: netstat -an. For instance, if you used port 1433, you should see this line in the list of ports used:

TCP               LISTENING

Authentication Method

By default, SQL Server Express uses Windows Authentication Mode to authenticate connections. If you get this exception …

Login failed for user '<User name>'. The user is not associated with a trusted SQL Server connection.

… then you may have to enable SQL Server Authentication Mode and create or enable a user.

  1. Start Microsoft SQL Server Management Studio Express (SSMSE) and connect to your database server.
  2. In Object Explorer pane, select Properties from your database's context menu. The Server Properties dialog should open.
  3. Select Security page.
  4. Select SQL Server and Windows Authentication Mode check box.
  5. Press OK button to close the dialog.
  6. In Object Explorer pane, expand Security / Logins node.
  7. Select existing user sa. Note that there is a red downward arrow next to that user's image.
  8. View sa's properties. The Login Properties dialog should open.
  9. Select Status page.
  10. Ensure that the Login: Enabled radio button is selected.
  11. Select General page.
  12. Enter a password for this user.
  13. Press OK button to close the dialog.
  14. If you refresh the Object Explorer pane, note that user sa no longer has a red downward arrow.

Finally …

After all these steps, you should be able to connect to your SQL Server Express database using JDBC.


  1. Straightforward and effective advice. Thanks!

  2. Simple in all aspects... effective to the highest level!!!

  3. i can able to connect to sql server....its really wonderfull tutorial...

  4. Good Job. Well done!

  5. Very effective!.

  6. It works well for SQL Server 2008 too. Very helpful. Thank you very much.

  7. It helps me a lot. Thank you very much!

  8. Thankyou so much for this. It's always so nice to come across something that saves you heaps of time.

  9. it realy helped me alot. thanks.

  10. Good Job. Well done!
    It works well for SQL Server 2008 too. Very helpful. Thank you very much.

  11. Great walkthrough, very helpful.

  12. Thank you very much.
    You can't guess how long I've been looking for a solution to this problem.

  13. thanks very much, it's very usefull for me :D

  14. thankyou very much.

  15. Thanks a lot, It worked with SQL Server 2008...I was lost this morning, you saved my afternoon !

  16. Very usefull! Thanks a lot..

  17. Looked for a while for something like this, thanks!

  18. Worked like a charm. Thanks!

  19. Thanks a lot!!!! I wasted so many hours to fix an issue with connectivity and when I was just giving up found this link.... The steps you mentioned worked like a charm!!! Thanks again!!!!

  20. Thanks for your help, great!

  21. Dear God, this was the only thing on the net that helped after several days of looking. Had no idea that I needed to configure the tcp/ip port. Thank you.

  22. Thanks man.....Appreciate your post...

  23. Thank you so much, I am your fan now :)

  24. Thanks.....the only one tutorial for configuring sql server connection.
    GREAT JOB !!!!

  25. This is great! I wish I found this article yesterday - would save me a day of fruitless work!

  26. thank you, ms should be burning in hell for making it this complicated.

  27. I didn't know about the IPALL node. Nice explanation. Thank You.

  28. after days searching in the net, without sucess, finally i found this, thanks a lot

  29. Thank you! It helped me solve the problem;)

  30. Kinda works... just tell me that the database I'm trying to connect to doesn't exist... now I see why people don't use Java