@cubycode Я также сталкиваюсь с той же проблемой, и я попробовал все решения, перечисленные здесь.
Если у вас возникли проблемы с подключением, скорее всего, проблема в том, что вы еще не включили прослушиватель TCP / IP на порт 1433. Быстрая команда «netstat -an» сообщит вам, будет ли ее прослушивание. По умолчанию сервер SQL не активирует это после установки.
Также вам нужно установить пароль в учетной записи «sa», а также включить учетную запись «sa» (если вы планируете использовать эту учетную запись для подключения).
Очевидно, это также означает, что вам нужно включить «проверку подлинности в смешанном режиме» на вашем узле MSSQL.
Вы можете использовать этот :
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class ConnectMSSQLServer
{
public void dbConnect(String db_connect_string,
String db_userid,
String db_password)
{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(db_connect_string,
db_userid, db_password);
System.out.println("connected");
Statement statement = conn.createStatement();
String queryString = "select * from sysobjects where type='u'";
ResultSet rs = statement.executeQuery(queryString);
while (rs.next()) {
System.out.println(rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args)
{
ConnectMSSQLServer connServer = new ConnectMSSQLServer();
connServer.dbConnect("jdbc:sqlserver://<hostname>", "<user>",
"<password>");
}
}
Эта примерная Java-программа соединяется с базой данных MySQL с использованием JDBC, выполняет запрос и извлекает и печатает значение поля базы данных.
Этот же примерный код может использоваться для подключения к любому типу базы данных, все, что вам нужно сделать, это изменить URL-адрес соединения (dbUrl в образце). Чтобы этот код работал правильно, вам нужно будет загрузить драйвер mysql для JDBC, другими словами, Java-коннекторы с сайта mysql.com.
Если после загрузки URL-адреса он все еще не работает, возможно, это из-за пути к классам. Вам нужно будет добавить файл jar драйвера в путь к классам.
import java.sql.*;
import javax.sql.*;
public class jdbcdemo{
public static void main(String args[]){
String dbtime;
String dbUrl = "jdbc:mysql://your.database.domain/yourDBname";
String dbClass = "com.mysql.jdbc.Driver";
String query = "Select * FROM users";
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection (dbUrl);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
dbtime = rs.getString(1);
System.out.println(dbtime);
} //end while
con.close();
} //end try
catch(ClassNotFoundException e) {
e.printStackTrace();
}
catch(SQLException e) {
e.printStackTrace();
}
} //end main
} //end class
Я также использую mssql server 2008 и jtds.In в моем случае я использую следующую строку подключения, и она работает.
Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
Connection con = DriverManager.getConnection( "jdbc:jtds:sqlserver://<your server ip
address>:1433/zacmpf", userName, password );
Statement stmt = con.createStatement();
ПРИМЕЧАНИЕ. Вам нужно добавить sqljdbc.jar в путь сборки
// localhost: локальный компьютер выступает в роли сервера
// 1433: номер порта по умолчанию для SQL
// имя пользователя: sa
// пароль: используйте пароль, который используется во время установки SQL серверная студия управления. В моем случае это «root»
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Conn {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
Connection conn=null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=company", "sa", "root");
if(conn!=null)
System.out.println("Database Successfully connected");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Вы можете попробовать настроить SQL-сервер:
ПРИМЕЧАНИЕ: ВСЕ TCP-порт - 1433. Наконец, перезапустите сервер.
В основном JDBC используют два способа - с помощью проверки подлинности Windows и проверки подлинности SQL. Аутентификация SQL, вероятно, самая простая. То, что вы можете сделать, это что-то вроде:
String userName = "username";
String password = "password";
String url = "jdbc:sqlserver://MYPC\\SQLEXPRESS;databaseName=MYDB";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(url, userName, password);
после добавления sqljdbc4.jar в путь сборки.
Для проверки подлинности Windows вы можете сделать что-то вроде:
String url = "jdbc:sqlserver://MYPC\\SQLEXPRESS;databaseName=MYDB;integratedSecurity=true";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(url);
, а затем добавить путь к sqljdbc_auth.dll в качестве аргумента виртуальной машины (по-прежнему нужно sqljdbc4.jar в пути сборки).
Пожалуйста, посмотрите здесь для краткое пошаговое руководство, показывающее, как подключиться к SQL Server с Java, используя jTDS и JDBC, если вам нужно больше деталей. Надеюсь, это поможет!
Попробуйте использовать вот так: jdbc: jtds: sqlserver: //127.0.0.1/dotcms; instance = instanceName
Я не знаю, какую версию mssql вы используете, если это экспресс-версия, экземпляр по умолчанию - sqlexpress
Не забудьте проверить, работает ли служба просмотра SQL Server работает.