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

xiaoxiao2021-02-28  46

                                  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       
转载请注明原文地址: https://www.6miu.com/read-42726.html

最新回复(0)