📄 databasetool.java
字号:
package eshopsys.tools.database;
import java.sql.*;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DataBaseTool {
private static Connection con = null;
//该类的构造函数,因为该类对外提供方法都是静态的,所以不需要实例化,
//因此该构造方法为private
private DataBaseTool() {
}
//获得数据库连接
public static Connection getConnection() throws
SQLException {
con=getSqlServerConnection();///////////////////////////////////////
//con=getMySqlConnection();
//con=getMySqlConnectionJF();
return con;
}
//通过数据库连接池获得数据库连接
public static Connection getSqlServerSpoolConnection() throws
SQLException {
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/EshopSqlServer");
con = ds.getConnection();
}
catch (Exception e) {
throw new SQLException("从连接池中获取数据库连接发生异常 : " + e.getMessage());
}
return con;
}
public static Connection getSqlServerConnection() throws
SQLException {
String SDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String SConnstr="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EshopData";
String Suser="sa";
String Spwd="sa";
try {
Class.forName(SDriver);//数据库驱动程序加载
try {
con=DriverManager.getConnection(SConnstr, Suser,Spwd);//获取数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return con;
}
///////////////////////////////////////////////////////////////////////////////////
public static Connection getMySqlSpoolConnection() throws
SQLException {
try {
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/EshopMySql");
con = ds.getConnection();
}
catch (Exception e) {
throw new SQLException("从连接池中获取数据库连接发生异常 : " + e.getMessage());
}
return con;
}
public static Connection getMySqlConnectionJF() throws
SQLException {
String SDriver="com.mysql.jdbc.Driver";
String SConnstr="jdbc:mysql://localhost:3306/eshopdata";
String Suser="root";
String Spwd="";
try {
Class.forName(SDriver);//数据库驱动程序加载
try {
con=DriverManager.getConnection(SConnstr, Suser,Spwd);//获取数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return con;
}
///////////////////////////////////////////////////////////////////////////////////
public static Connection getMySqlConnection() throws
SQLException {
String SDriver="com.mysql.jdbc.Driver";
String SConnstr="jdbc:mysql://localhost:3306/EshopData";
String Suser="root";
String Spwd="root";
try {
Class.forName(SDriver);//数据库驱动程序加载
try {
con=DriverManager.getConnection(SConnstr, Suser,Spwd);//获取数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return con;
}
///////////////////////////////////////////////////////////////////////////////////
//关闭数据库资源
public static void close(ResultSet rs, Statement st, Connection con) {
close(rs);
close(st, con);
}
//关闭数据库资源
public static void close(Statement st, Connection con){
close(st);
close(con);
}
//关闭数据库连接,由于采用连接池方式,数据库连接不会被实际关闭
public static void close(Connection con){
try {
if(con != null)
con.close();
}
catch (Exception e) {
}
}
//关闭数据库资源
public static void close(ResultSet rs){
try {
if (rs != null)
rs.close();
}
catch (Exception e) {
}
}
//关闭数据库资源
public static void close(Statement st){
try {
if (st != null)
st.close();
}
catch (Exception e) {
}
}
//获得数据库服务器日期(适用于SQLServer数据库)
public static Date getCurrentDateFromSQLServer(Connection con) throws
SQLException {
String strSQL = "select getDate()";
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(strSQL);
rs.next();
Date dtRtn = rs.getDate(1);
close(rs, st, null);
return dtRtn;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -