将IntelliJ IDEA连接到SQL Server数据库

凯·克鲁兹(Cai Cruz)

社区!

我目前正在使用令人敬畏的Intellij IDEA Ultimate版学习Java。我正在尝试连接到本地SQL Server数据库,但是这样做很难。最初,我尝试使用内置工具(该工具能够成功连接,但是似乎所有的工作都使我能够在Intellij控制台上运行SQL查询。更具体地说,我创建了一个基本的GUI客户可以在其中输入其个人信息,并且希望将该信息存储在“客户” SQL表中。我也尝试使用JDBC,但是由于某些原因,出现错误“ com.microsoft.sqlserver.jdbc.SQLServerDriver” “。我确实下载了所需的驱动程序,并将其放置在项目的lib文件夹中,但是我不知道该怎么办。我的猜测是我在项目中没有正确地将jar文件与驱动程序链接或放置。关于SQL工具,JetBrain的Intellij文档非常有限。它仅涉及基本功能。如果有人可以指出我在JDBC方法上的错误,或者对Intellij的SQL工具有更深入的了解,我将不胜感激。感谢您为帮助这个6个月大的新手而付出的宝贵时间:)这是我的代码:

import java.sql.*;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.*;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;

 public class Main extends Application {

 String name;
 Stage window;
 Scene scene;
 Button submitButton = new Button("Submit");
 Label fNameLabel = new Label("First Name:");
 Label lNameLabel = new Label("Last Name:");
 Label birthDateLabel = new Label("DOB:");
 Label addressLabel = new Label("Address:");
 Label emailLabel = new Label("E-mail:");
 Label phoneLabel = new Label("Phone:");
 TextField fNameTextField = new TextField();
 TextField lNameTextField = new TextField();
 TextField birthDateTextField = new TextField();
 TextField addressTextField = new TextField();
 TextField emailTextField = new TextField();
 TextField phoneTextField = new TextField();


 public static void main(String args[]) {

    launch(args);

 }

 @Override
 public void start(Stage primaryStage) throws Exception {

    window = primaryStage;
    window.setTitle("Customer Information");
    window.setOnCloseRequest(e -> {
        e.consume();
        closeWindow();
    });

    //create GripPane scene
    GridPane grid = new GridPane();
    grid.setPadding(new Insets(10,10,10,10));
    grid.setVgap(10);
    grid.setHgap(10);

    //set location of labels
    GridPane.setConstraints(fNameLabel,3,0);
    GridPane.setConstraints(lNameLabel,3,1);
    GridPane.setConstraints(birthDateLabel,3,2);
    GridPane.setConstraints(addressLabel,3,3);
    GridPane.setConstraints(emailLabel,3,4);
    GridPane.setConstraints(phoneLabel,3,5);

    //set location of TextFields
    GridPane.setConstraints(fNameTextField,4,0);
    GridPane.setConstraints(lNameTextField,4,1);
    GridPane.setConstraints(birthDateTextField,4,2);
    GridPane.setConstraints(addressTextField,4,3);
    GridPane.setConstraints(emailTextField,4,4);
    GridPane.setConstraints(phoneTextField,4,5);

    //set PromptText
    birthDateTextField.setPromptText("mm/dd/yyyy");
    emailTextField.setPromptText("[email protected]");

    //set button location
    GridPane.setConstraints(submitButton, 4, 6);

    //add all elements to grid
    grid.getChildren().addAll(fNameLabel,fNameTextField,lNameLabel,lNameTextField,
                              birthDateLabel,birthDateTextField,addressLabel,addressTextField,
                              emailLabel,emailTextField,phoneLabel,phoneTextField,submitButton);

    scene = new Scene(grid, 400, 400);

    window.setScene(scene);
    window.show();

   }

  //properly exit out of app
  private void closeWindow() {
     boolean answer = ConfirmationBox.display("title", "Are you sure you want to exit?");
      if (answer) {
        window.close();
    }
  }
}

尝试连接的SQL类:

import java.sql.*;
public class SQLMethods {
  public static void main(String[] args) {
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        String url = "jdbc:sqlserver://localhost\\SQLEXPRESS:1433;databaseName=CaiMaster";

        Connection conn = DriverManager.getConnection(url);
        Statement statement = conn.createStatement();
        ResultSet resultSet;

        resultSet = statement.executeQuery("SELECT Fname, Address FROM Customers WHERE Fname = 'Cai'");
        String lastName = resultSet.getString("Fname");
        String address = resultSet.getString("Address");
        System.out.println(lastName);
        System.out.println(address);
        conn.close();
      } catch (Exception e) {
        System.err.println("Got an exception! ");
        System.err.println(e.getMessage());

    }
   }
  }
达菲

将/ lib目录添加到依赖项下的项目中,您将获得更大的成功。

我认为您的网址不正确。一旦对/ lib目录进行排序,就可以这样尝试:

String url = "jdbc:sqlserver://localhost:1433;databaseName=CaiMaster";

试试看,看看是否更好:

/**
 * SQL utility methods
 * User: MDUFFY
 * Date: 5/31/2016
 * Time: 4:41 PM
 * @link http://stackoverflow.com/questions/37536372/connect-intellij-idea-to-sql-server-database/37536406?noredirect=1#comment62595302_37536406
 */

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class SQLMethods {

    public static final String DEFAULT_DRIVER_CLASS = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    public static final String DEFAULT_URL = "jdbc:sqlserver://localhost:1433;databaseName=CaiMaster";
    private static final String DEFAULT_USERNAME = "";
    private static final String DEFAULT_PASSWORD = "";
    public static final String FIND_ALL_CUSTOMERS_QUERY = "SELECT Fname, Address FROM Customers ";
    private static final String BY_FIRST_NAME = "WHERE FNAME = ? ";


    public static void main(String[] args) {
        Connection connection = null;
        try {
            connection = SQLMethods.getConnection(DEFAULT_DRIVER_CLASS, DEFAULT_URL, DEFAULT_USERNAME, DEFAULT_PASSWORD);
            Customer customer = SQLMethods.findCustomer(connection, "Cai");
            System.out.println(customer);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            SQLMethods.close(connection);
        }
    }

    public static Connection getConnection(String driverClass, String url, String username, String password) throws SQLException, ClassNotFoundException {
        Class.forName(driverClass);
        return DriverManager.getConnection(url, username, password);
    }

    public static void close(Connection connection) {
        try {
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void close(Statement statement) {
        try {
            if (statement != null) {
                statement.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static void close(ResultSet resultSet) {
        try {
            if (resultSet != null) {
                resultSet.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    public static Customer findCustomer(Connection connection, String name) {
        Customer customer = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            ps = connection.prepareStatement(FIND_ALL_CUSTOMERS_QUERY + BY_FIRST_NAME);
            ps.setString(1, name);
            rs = ps.executeQuery();
            while (rs.next()) {
                String firstName = rs.getString("Fname");
                String address = rs.getString("Address");
                customer = new Customer(address, firstName);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            SQLMethods.close(rs);
            SQLMethods.close(ps);
        }
        return customer;
    }
}

class Customer {
    private final String firstName;
    private final String address;

    public Customer(String address, String firstName) {
        this.address = address;
        this.firstName = firstName;
    }

    public String getFirstName() {
        return firstName;
    }

    public String getAddress() {
        return address;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Customer{");
        sb.append("firstName='").append(firstName).append('\'');
        sb.append(", address='").append(address).append('\'');
        sb.append('}');
        return sb.toString();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实时将SQL Server数据库与Active Directory同步

来自分类Dev

将MS SQL数据库连接到Railo数据源

来自分类Dev

如何将Android App连接到SQL Server数据库

来自分类Dev

将JSON记录插入SQL Server数据库

来自分类Dev

将日期时间值插入SQL Server数据库

来自分类Dev

将数据库从SQL Server 2012降级到2008

来自分类Dev

将XML导入SQL Server数据库

来自分类Dev

SQL Server数据库将“ć”存储为“ c”

来自分类Dev

如何将数据插入SQL Server数据库

来自分类Dev

将XML文件读入SQL Server数据库

来自分类Dev

连接到SQL Server数据库

来自分类Dev

将LINQ to SQL连接到数据库项目而不是物理数据库吗?

来自分类Dev

如何将Azure App Service Web App连接到Google SQL Server数据库?

来自分类Dev

将Django连接到Microsoft SQL数据库

来自分类Dev

将PLC Siemens S7-1500连接到SQL Server数据库

来自分类Dev

将SQL Server连接到ASP.NET MVC中的Azure数据库

来自分类Dev

将SQL Server连接到ASP.NET MVC中的Azure数据库

来自分类Dev

将空值插入SQL Server数据库

来自分类Dev

将数据库导出到远程SQL Server实例?

来自分类Dev

将数据库从SQL Server 2012移动到2008

来自分类Dev

将Android应用连接到MS SQL数据库

来自分类Dev

如何将数据从本地SQL Server数据库更新到联机SQL Server数据库?

来自分类Dev

将语句插入SQL Server数据库

来自分类Dev

如何将数据插入SQL Server数据库

来自分类Dev

将数据从SQL Server数据库导入HTML表

来自分类Dev

将AzureAppService .Net后端连接到SQL数据库

来自分类Dev

提交从 IntelliJ IDEA 连接到 Cassandra 数据库的 Spark 应用程序

来自分类Dev

将 Xamarin.Android 与 SQL Server 数据库连接

来自分类Dev

无法将 Visual Studio 连接到 SQL Server 数据库

Related 相关文章

热门标签

归档