package xyz.lightly.dragform;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 需要引入的gradle依赖
* mysql compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.16'
* sql server compile group: 'com.microsoft.sqlserver', name: 'mssql-jdbc', version: '8.2.2.jre11'
*/
public class ConnectToDatabase {
// JDBC驱动引擎,这里使用的是SQL Server的JDBC
// MySQL的JDBC: com.mysql.cj.jdbc.Driver
private static final String DRIVER_NAME = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// 数据库访问链接。这里为SQL Server的数据库访问格式
// MySQL的数据库访问链接(需要加上海时区,否则报错): "jdbc:mysql://localhost:3306/cas?useSSL=false&serverTimezone=CTT"
private static String dbURL = "jdbc:sqlserver://192.168.2.48;DatabaseName=LZMISPM";
// 数据库用户名
private static String dbUser = "sa";
// 数据库密码
private static String dbPass = "sa";
/**
* 进行数据库的SQL操作
*/
public void doSqlOperation() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 将JDBC进行装载
Class.forName(DRIVER_NAME);
// 进行数据库连接
conn = DriverManager.getConnection(dbURL, dbUser, dbPass);
// 创建数据库SQL操作对象
stmt = conn.createStatement();
// 编写SQL语句。SQL Server中的数据库需要写dbo.表名
// SQL语句不能加分号,否则报错
String sql = "select count(ID) from dbo.PM_ProjectA where sync = 1";
// 查询语句使用executionQuery方法操作。返回ResultSet对象
rs = stmt.executeQuery(sql);
// 使用ResultSet对象的next方法查看是否还有下一行数据
if (rs.next()) {
int newDataRows = rs.getInt(1); // 获取int类型的数据
System.out.println(newDataRows);
}
// 增删改使用executeUpdate方法操作,返回影响了几行数据。如果为0,则说明没有进行任何数据修改。
sql = "update dbo.PM_ProjectA set sync = 1 where ID = 0";
int execResult = stmt.executeUpdate(sql);
System.out.println(execResult);
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}