java连接SqlServer2008的数据库连接池使用:
成都创新互联公司网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了网站设计、网站建设,成都网站设计,广告投放,成都做网站选成都创新互联公司,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Vector;
/**数据库连接池的公共类 **/
public class ConnectionPool {
private VectorConnection pool;//声明集合,里面只能是放Connection
/**
* 声明要的东西
*/
private String url = "jdbc:sqlserver://localhost:1433; database=ajax";
private String username = "sa";
private String password = "sa123";
private String driverClassName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
/**
* 连接池的大小,也就是连接池中有多少个数据库连接
*/
private int poolSize = 5;
private static ConnectionPool instance = null;
/**
* 私有的构造方法,禁止外部创建本类的对象,要想获得本类的对象,通过codegetIstance/code方法
* 使用了设计模式中的单子模式
*/
private ConnectionPool() {
init();
}
/**
* 连接池初始化方法,读取属性文件的内容 建立连接池中的初始连
*/
private void init() {
pool = new VectorConnection(poolSize);
//readConfig();
addConnection();
}
/**
* 返回连接到连接池
*/
public synchronized void release(Connection conn) {
pool.add(conn);
}
/**
* 关闭连接池中的所有数据库连接
*/
public synchronized void closePool() {
for (int i = 0; i pool.size(); i++) {
try {
((Connection) pool.get(i)).close();
} catch (SQLException e) {
e.printStackTrace();
}
pool.remove(i);
}
}
/**
* 返回当前连接池的对象
*/
public static ConnectionPool getInstance() {
if (instance == null) {
instance = new ConnectionPool();
}
return instance;
}
/**
* 返回连接池中的一个数据库连接
*/
public synchronized Connection getConnection() {
if (pool.size() 0) {
Connection conn = pool.get(0);
pool.remove(conn);
return conn;
} else {
return null;
}
}
/**
* 在连接池中创建初始设置的的数据库连接
*/
private void addConnection() {
Connection conn = null;
for (int i = 0; i poolSize; i++) {
try {
Class.forName(driverClassName);
conn = java.sql.DriverManager.getConnection(url, username,
password);
pool.add(conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
从M$网站下载最新JDBC驱动或都使用maven:
dependency
groupIdcom.microsoft.sqlserver/groupId
artifactIdmssql-jdbc/artifactId
version9.4.1.jre11/version
/dependency
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
public class SQLDatabaseConnection {
// Connect to your database.
// Replace server name, username, and password with your credentials
public static void main(String[] args) {
String connectionUrl =
"jdbc:sqlserver://yourserver.database.windows.net:1433;"
+ "database=AdventureWorks;"
+ "user=yourusername@yourserver;"
+ "password=yourpassword;"
+ "encrypt=true;"
+ "trustServerCertificate=false;"
+ "loginTimeout=30;";
String insertSql = "INSERT INTO SalesLT.Product (Name, ProductNumber, Color, StandardCost, ListPrice, SellStartDate) VALUES "
+ "('NewBike', 'BikeNew', 'Blue', 50, 120, '2016-01-01');";
ResultSet resultSet = null;
try (Connection connection = DriverManager.getConnection(connectionUrl);
PreparedStatement prepsInsertProduct = connection.prepareStatement(insertSql, Statement.RETURN_GENERATED_KEYS);) {
prepsInsertProduct.execute();
// Retrieve the generated key from the insert.
resultSet = prepsInsertProduct.getGeneratedKeys();
// Print the ID of the inserted row.
while (resultSet.next()) {
System.out.println("Generated: " + resultSet.getString(1));
}
}
// Handle any errors that may have occurred.
catch (Exception e) {
e.printStackTrace();
}
}
}
1、 安装时区别:
与mysql相比,Sqlserver安装后,的配置TCP/IP协议,Sql Server 身份注册登录 ,都比较麻烦。
2、配置连接时区别:
mysql
使用的驱动:com.mysql.jdbc.Driver
依赖包:mysql 可以直接通过pom.xml下载
sqlserver驱动:com.microsoft.sqlserver.jdbc.SQLServerDriver
依赖包:sqljdbc4 需要从本地置入
sqlserver2000与2005的jar文件不一样。
驱动类,还有连接语句都不一样。
驱动类:
com.microsoft.jdbc.sqlserver.SQLServerDriver(sqlserver2000)
com.microsoft.sqlserver.jdbc.SQLServerDriver(sqlserver2005)
连接语句:
jdbc:microsoft:sqlserver://server_name:1433 (sqlserver2000)
jdbc:sqlserver://server_name:1433[;databaseName=dbname] (sqlserver2005)
如果都没有错可能是
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLSerDriver
中指出的你写的SQLSerDriver把它改成SQLServerDriver