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