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

                                  java jdbc连接Mysql数据库

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

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


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值