【Java】连接数据库SQLServer

时间:2024-01-22 07:31:37

工具: eclipse
    Microsoft SQL Server
    SQL Server连接驱动:mssql-jdbc-6.4.0.jre8.jar

SQL script代码

CREATE DATABASE test
USE test
go

CREATE TABLE a 
(
    a1 nchar(3),            --String  NString
    a2 nvarchar(20),        --String  NString
    a3 int,             --int     int
    a4 float,           --double  double
    PRIMARY KEY (a1)
);

SELECT *
FROM a 
ORDER BY 1;

INSERT INTO a (a1, a2, a3, a4)
VALUES ();
  • 步骤:
    1. 将SQL打开,输入脚本script,运行
    2. 打开eclipse,新建JAVA项目
    3. 鼠标指向自己新建的项目,右击,建立文件夹
    4. 把mssql复制进文件夹内
    5. 右击mssql,点击build path -〉 add to build path
    6. 创建包com.jdbc,把两个JAVA文件复制进包中(JAVA database connectivity)
    7. 右击InsertSample.java,选properties
    8. Text file encoding 选other UTF-8采用Unicode字符串

Java 连接

所需的jar包下载

百度网盘 提取码: dm6m

使用方法:
  1. 在工程目录中创建lib文件夹,将下载好的JDBC(jar包)放到该文件夹下。
  2. 右键工程名,选择 Buiding Path | Configure Buiding Path ,在java build path中的Libraries分页中选择Add JARs...,选择刚才添加的JDBC(jar包)。

ConnectionProperty代码

package com.jdbc;

import com.microsoft.sqlserver.jdbc.SQLServerDataSource;

public class ConnectionProperty 
{
    //Class.forName(...);   //这句话过时了 完全不需要
    //DriverManager.getConnection(...) //过时了 JAVA1.0中用
    public static SQLServerDataSource getDateSource() 
    {
        SQLServerDataSource ds = new SQLServerDataSource();
        ds.setServerName("10.177.7.47"); //本机IPv4号
        ds.setPortNumber(1433);     //端口号
        ds.setUser("sa");       //用户名
        ds.setPassword("123");  //密码
        ds.setDatabaseName("test");     //数据库名称
        ds.setSendTimeAsDatetime(false);
        return ds;
    }
}

InsertSample代码

package com.jdbc;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

import javax.sql.DataSource;

public class InsertSample {

    public static void main(String[] args) {
        //insertA();
        selectA();
    }
    
    public static void insertA() {
        DataSource ds = ConnectionProperty.getDataSource();
        String sql = "INSERT INTO a (a1, a2, a3, a4) "
                + "VALUES (?, ?, ?, ?)";
        
        try (Scanner scanner = new Scanner(System.in);
                Connection con = ds.getConnection();
                PreparedStatement pstmt = con.prepareStatement(sql)) {
            System.out.print("a1=");
            String a1 = scanner.nextLine();
            System.out.print("a2=");
            String a2 = scanner.nextLine();
            System.out.print("a3=");
            int a3 = scanner.nextInt();
            System.out.print("a4=");
            double a4 = scanner.nextDouble();
            
            pstmt.setNString(1, a1);
            pstmt.setNString(2, a2);
            pstmt.setInt(3, a3);
            pstmt.setDouble(4, a4);
            
            int rowCount = pstmt.executeUpdate();
            System.out.println("插入" + rowCount + "行");
            
//          System.out.println("a1=" + a1);
//          System.out.println("a2=" + a2);
//          System.out.println("a3=" + a3);
//          System.out.println("a4=" + a4);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public static void selectA() {
        DataSource ds = ConnectionProperty.getDataSource();
        String sql = "SELECT a1, a2, a3, a4 "
                + "FROM a "
                + "WHERE a3 > ? "
                + "ORDER BY a1";
        
        try (Scanner scanner = new Scanner(System.in);
                Connection con = ds.getConnection();
                PreparedStatement pstmt = con.prepareStatement(sql)) {
            
            System.out.print("a3=");
            int a3 = scanner.nextInt();
            
            pstmt.setInt(1, a3);
            
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.print(rs.getNString("a1") + "\t");
                System.out.print(rs.getNString("a2") + "\t");
                System.out.print(rs.getInt("a3") + "\t");
                System.out.println(rs.getDouble("a4"));
            }
            
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

提示

可保存这此Java项目,下次连接可直接导入,只需修改部分信息。