62,621
社区成员
发帖
与我相关
我的任务
分享
public Class BaseDao{
private static final String SQL = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
// private static final String sql = "jdbc:sqlserver://localhost:1433;DatabaseName=EPETSHOP";
private static final String sql = "jdbc:sqlserver://localhost:1433";//此处是故意写错的url连接字符串
private static final String name = "sa";
private static final String pwd = "root";
/**
* 加载驱动
*/
static {
try {
Class.forName(SQL);
System.err.println("加载驱动成功!");
} catch (ClassNotFoundException e) {
System.err.println("加载驱动失败!");
e.printStackTrace();
}
}
/**
* 创建数据库链接
*
* @return
*/
public Connection getConnection() {
Connection conn = null;
try {
conn = DriverManager.getConnection(sql, name, pwd);
System.out.println("链接数据库成功!");
} catch (SQLException e) {
System.out.println("链接数据库失败!");
e.printStackTrace();
}
return conn;
}
}
/**
* 创建数据库链接
*
* @return
*/
public Connection getConnection() {
Connection conn = null;
try {
conn = DriverManager.getConnection(sql, name, pwd);
/**
* 判断是否连接到正确的数据库
*/
DatabaseMetaData dm = conn.getMetaData();//使用DatabaseMetaData类
String url = dm.getURL();//获得链接属性的字符串
//将链接属性的字符串通过拆分存放在一个Map里,
Map<String,String> map = new HashMap<String,String>();
String[] temp = url.split(";");
for (int i = 0; i < temp.length; i++) {
String str = temp[i];
String[] arr=str.split("=");
if(i==0){
map.put("jdbc", arr[0]);//存放的内容是“jdbc:sqlserver://localhost:1433;”,其实就是最基本的连接串,但是没有"="号匹配,所以单独处理
}else{
map.put(arr[0], arr[1]);
}
}
//判断Map里是否有需要连接的数据库名
if(map.containsValue("EPETSHOP")){
System.out.println("链接数据库成功!");
}else{
System.out.println("链接数据库失败!");
}
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}


private static final String sql = "jdbc:mysql://localhost:3306/a";
private static final String sql = "jdbc:sqlserver://localhost:143";