您的位置:首页 > 编程语言 > Java开发

java jdbc连接Mysql数据库Dao模式下的带配置文件的(properies)

2017-06-07 12:47 369 查看

                                  java jdbc连接Mysql数据库

                          Dao模式下的带配置文件的(properies)连接

 为什么要使用properies配置文件呢?因为当我们吧项目部署到服务器后,如果想到修改数据库的连接时,比较麻烦,因为服务器上布置的是类文件,也就是编译好的文件,当我们要是修改连接时,一旦,修改就的打开类文件但是,数据库是没有开发软件的,所以此时就需要用properies配置文件,properies记事本就可以打开修改,如果想要更方便些,你可以远程控制修改。
  不说过多的了,看代码最清晰:首先写properies文件,一般要写在src目录


接下来是连接数据库的代码
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

public class BaseDao {

String DBUser;
String DBPwd;
String DBHost;
String DBName;
int Port;
int DBType;

Connection conn; // 连接对象
PreparedStatement ps; // 查询对象
ResultSet rs; // 结果集

public BaseDao() {
Properties pro = new Properties();
InputStream in = BaseDao.class.getClassLoader().getResourceAsStream(
"datebase.properties");     //这里是properties配置文件的使用

try {
pro.load(in);
DBUser = pro.getProperty("DBUser");
DBPwd = pro.getProperty("DBPwd");
DBHost = pro.getProperty("DBHost");
DBName = pro.getProperty("DBName");
DBType = Integer.parseInt(pro.getProperty("DBType"));
Port = Integer.parseInt(pro.getProperty("Port"));

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

/**
* 打开连接
*/
public void open() {

try {
if (DBType== 1) {

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection("jdbc:mysql://" + DBHost
+ ":" + Port + "/" + DBName, DBUser, DBPwd);

}

else if (DBType == 2) {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager
.getConnection("jdbc:sqlserver://" + DBHost + ":"
+ Port + ";databasename=" + DBName, DBUser,
DBPwd);

} else if (DBType == 3) {

// 编写orcala

Class.forName("Oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@"
+ DBHost + ":" + Port + ":" + DBName, DBUser, DBPwd);

}

} catch (Exception e) {
// TODO: handle exception
System.out.println("**********");
}

}

/**
* 关闭连接方法
*/
public void close() {

try {

if (rs != null)
rs.close(); // 如果结果集存在,就关闭结果集
ps.close(); // 关闭查询对象
conn.close(); // 关闭连接查询

} catch (Exception e) {
// TODO: handle exception
}

}

/**
* 执行 增删改
*
* @param sql
* @param parm
* @return a 为受影响的行数
*/
public int exectueUpdate(String sql, Object[] parm) {
open();
int a = 0;
try {

ps = conn.prepareStatement(sql);
if (parm != null) {

for (int i = 0; i < parm.length; i++) {
ps.setObject(i + 1, parm[i]);

}

}
a = ps.executeUpdate(); // 执行

} catch (Exception e) {
// TODO: handle exception
}

close();    //调用关闭连接方法

return a;

}

/**
* 执行查询
*
* @param sql
* @param parm
* @return
*/

public ResultSet exectueQuery(String sql, Object[] parm) {
open();
try {

ps = conn.prepareStatement(sql);
if (parm != null) {
for (int i = 0; i < parm.length; i++) {
ps.setObject(i + 1, parm[i]);

}

}
rs = ps.executeQuery();

} catch (Exception e) {
// TODO: handle exception
}

return rs;

}

/**
* 这个为更改成可变参数类型 执行 增删
*
* @param sql
* @param parm
* @return a 为受影响的行数
*/
public int exectueUpdate1(String sql, Object... parm) {
open();
int a = 0;
try {
ps = conn.prepareStatement(sql);
if (parm != null) {

for (int i = 0; i < parm.length; i++) {
ps.setObject(i + 1, parm[i]);
}
}
a = ps.executeUpdate(); // 执行

} catch (Exception e) {
// TODO: handle exception
}

close();

return a;
}
}


           更多代码请看这里:点击打开链接      
       数据库自己可以根据实体类新建 我连接的是mysql
      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息