基于Myeclipse编程,平台J2EE1.4 数据库:sql server 2005 驱动:sqljdbc.jar
端口号改过了
控制台:
警告: DbConnectionManager.getConnection() 获得数据库链接失败.
链接类型:com.microsoft.jdbc.sqlserver.SQLServerDriver
链接位置:jdbc:microsoft:sqlexpress://localhost:1433;DatabaseName=db_shop
用户/密码sa/123456
Java代码如下:
package com.wgh.DB;import java.sql.*;
import java.io.*;
import java.util.*;public class connDB {
public Connection conn = null;
public Statement stmt = null;
public ResultSet rs = null;
private static String propFileName = "C:/connDB.properties";
private static Properties prop = new Properties();
private static String dbClassName =
"com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static String dbUrl =
"jdbc:microsoft:sqlexpress://localhost:1433;DatabaseName=db_shop";
private static String dbUser = "sa";
private static String dbPwd = "123456";
private static void loadProperty() {
try {
prop.load(new FileInputStream(propFileName)); //通过文件输入流对象加载Properties文件
dbClassName = prop.getProperty("DB_CLASS_NAME");
dbUrl = prop.getProperty("DB_URL",
"jdbc:microsoft:sqlexpress://localhost:1433;DatabaseName=db_shop");
dbUser = prop.getProperty("DB_USER", "sa");
dbPwd = prop.getProperty("DB_PWD", "123456");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
端口号改过了
控制台:
警告: DbConnectionManager.getConnection() 获得数据库链接失败.
链接类型:com.microsoft.jdbc.sqlserver.SQLServerDriver
链接位置:jdbc:microsoft:sqlexpress://localhost:1433;DatabaseName=db_shop
用户/密码sa/123456
Java代码如下:
package com.wgh.DB;import java.sql.*;
import java.io.*;
import java.util.*;public class connDB {
public Connection conn = null;
public Statement stmt = null;
public ResultSet rs = null;
private static String propFileName = "C:/connDB.properties";
private static Properties prop = new Properties();
private static String dbClassName =
"com.microsoft.jdbc.sqlserver.SQLServerDriver";
private static String dbUrl =
"jdbc:microsoft:sqlexpress://localhost:1433;DatabaseName=db_shop";
private static String dbUser = "sa";
private static String dbPwd = "123456";
private static void loadProperty() {
try {
prop.load(new FileInputStream(propFileName)); //通过文件输入流对象加载Properties文件
dbClassName = prop.getProperty("DB_CLASS_NAME");
dbUrl = prop.getProperty("DB_URL",
"jdbc:microsoft:sqlexpress://localhost:1433;DatabaseName=db_shop");
dbUser = prop.getProperty("DB_USER", "sa");
dbPwd = prop.getProperty("DB_PWD", "123456");
}
catch (Exception e) {
e.printStackTrace();
}
}
}
你在定义static变量时已经给变量赋值,而在后面的静态方法中的赋值是不能赋的,因为静态变量只有一次赋值 的机会,要么在定义的时候,要么在静态块中.
所以你写的静态方法loadProperty没有起作用.
试试就明白了.
jdbc:sqlserver://localhost:1433;databaseName=mydb
dbUrl = prop.getProperty("DB_URL",
"jdbc:microsoft:sqlexpress://localhost:1433;DatabaseName=db_shop");
dbUser = prop.getProperty("DB_USER", "sa");
dbPwd = prop.getProperty("DB_PWD", "123456");
貌似有问题,get能有两个参数吗?我没用过Properties,不明白。
另外其他的连接过程也就是Class.forName(driverName);
然后 DriverManager.conncetion(url,user,pwd);之类的,
package com.蜗牛;import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;public class 网络蜗牛{
private static String dbClassName;
private static String dbUrl;
private static String dbUser;
private static String dbPwd;
private Connection connection=null;
public Connection getConnection(){
loadProperty();
try {
Class.forName(dbClassName);
connection=DriverManager.getConnection(dbUrl, dbUser, dbPwd);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
private static void loadProperty() {
Properties prop = new Properties();
try {
prop.load(new FileInputStream("C:/connDB.properties"));//通过文件输入流对象加载Properties文件
dbClassName = prop.getProperty("DB_CLASS_NAME");
dbUrl = prop.getProperty("DB_URL");
dbUser = prop.getProperty("DB_USER");
dbPwd = prop.getProperty("DB_PWD");
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Connection connection=new Test().getConnection();
if(connection!=null){
System.out.println("连接数据成功");
}else {
System.out.println("连接失败");
}
}
}
DB_CLASS_NAME=com.microsoft.jdbc.sqlserver.SQLServerDriver;
DB_URL=jdbc:microsoft:sqlexpress://localhost:1433;DatabaseName=db_shop;//注意你的是否是1433
DB_USER=sa;
DB_PWD=123456;
代码改为prop.load(new FileInputStream("connDB.properties"));//放在其他地方有可能访问不到
可以在
dbClassName = prop.getProperty("DB_CLASS_NAME");
dbUrl = prop.getProperty("DB_URL");
dbUser = prop.getProperty("DB_USER");
dbPwd = prop.getProperty("DB_PWD");
后面加上System.out.println(dbPwd);//看属性文件是否得到值
"jdbc:microsoft:sqlexpress://localhost:1433;DatabaseName=db_shop";
这一句中要不要microsoft效果是一样的,全可以连接,估计是端口有问题
应该把sqlexpress改成sqlserver
a、驱动字符串: com.microsoft.sqlserver.jdbc.SQLServerDriver
b、数据库连接字符串 jdbc:sqlserver://<server_name>:<port>[;databaseName=<dbname>]
String URL="jdbc:sqlserver://localhost:1433;DataBaseName=master";
String username="sa";
String password="";
Class.forName(driverClassName);
Connection con=DriverManager.getConnection(URL,username,password);
可以修改它如果你的机子是有还原卡的话你就要看一下这里是否是1433咯...