进行JDBC操作时,连接参数的配置(附DBUtil工具类)

2020-07-24 17:16:29 浏览数 (1)

JDBC连接时,两种常见的地址书写

1、jdbc连接oracle数据库

代码语言:javascript复制
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
username=chy
password=123

可能会改变的值 1、本机地址、mysql端口号 2.3、登陆oracle用户名与密码

2、jdbc连接mysql数据库

代码语言:javascript复制
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/project
username=root
password=root

可能会改变的值 1、本机地址、oracle的端口号 2、mysql的数据库名 3、登陆mysql用户名与密码

工具类DBUtil

作用是可以让我们可以在配置文件中修改配置参数,而无需在相关的java类中进行操作 并且可以直接调用本类,进行数据库连接、执行sql语句,关闭相关变量的操作 oracle与mysql通用

代码语言:javascript复制
    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.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    public class DBUtil {
    	static String driver;
    	static String url;
    	static String user;
    	static String password;
    	
    	//读取属性文件properties并获取内容
    	static{
    		//准备一个空的map,没有key-value
    		Properties prop = new Properties();
    		
    		//读取文件,并将文件键值对存入Properties对象
    		//InputStream is = new FileInputStream(new File("C:UsersAdministratorworkspacejava_empmgr2srcconn.properties"));
    		InputStream is = DBUtil.class.getResourceAsStream("/jdbc.properties"); //classpath
    		try {
    			prop.load(is);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		//从prop中根据key获取四个参数的值
    		driver = prop.getProperty("driver");
    		//driver = prop.get("driver");
    		url = prop.getProperty("url");
    		user = prop.getProperty("username");
    		password = prop.getProperty("password");
    		
    		//加载驱动
    		try {
    			Class.forName(driver);
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	/**
    	 * 获取数据库连接
    	 * @return
    	 */
    	public static  Connection getConnection(){
    		Connection conn = null;
    		try{			
    			//建立数据库连接			
    			conn = DriverManager.getConnection(url, user, password);
    		}catch(SQLException e){
    			e.printStackTrace();
    		}
    		return conn;
    		
    	}
    	
    	/**
    	 * 关闭数据库资源
    	 * @param rs
    	 * @param stmt
    	 * @param conn
    	 */
    	public static void closeAll(ResultSet rs ,Statement stmt,Connection conn){
    		//关闭数据库资源
    		try {
    			if(rs!=null){
    				rs.close();
    			}				
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		
    		try {
    			if(stmt != null){
    				stmt.close();
    			}				
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		
    		try {
    			if(conn != null){
    				conn.close();
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	/**
    	 * DML:insert  update  delete
    	 */
    	public static int executeUpdate(String  sql,Object ... params) {
    		Connection conn =  null;
    		PreparedStatement pstmt = null;
    		int n = 0;
    		try{
    			//获取数据库连接
    			conn = DBUtil.getConnection();
    			
    			//使用手枪发送SQL命令并得到结果			
    			pstmt = conn.prepareStatement(sql);
    			
    			for(int i=0;i<params.length;i  ){
    				pstmt.setObject(i 1, params[i]);
    			}		
    			n = pstmt.executeUpdate();
    			
    			
    		}catch(SQLException e){
    			e.printStackTrace();
    		}finally{
    			//关闭数据库资源
    			DBUtil.closeAll(null, pstmt, conn);
    		}
    				
    		//返回数据
    		return n;
    	}
    	public static void main(String[] args) {
    		Connection conn = getConnection();
    		System.out.println(conn);
    	}
    }
    `

0 人点赞