zoukankan      html  css  js  c++  java
  • JDBC基础篇(MYSQL)——自定义JDBCUtil工具类

    package util;
    
    import java.io.File;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Properties;
    
    /**
     * jdbc通用的方法
     * @author mzy
     *
     */
    public class JdbcUtil {
    	//url
    	private static String url = null;
    	//user
    	private static String user = null;
    	//password
    	private static String password = null;
    	//驱动程序类
    	private static String driverClass = null;
    	/**
    	 * 只注册一次,静态代码块
    	 */
    	static{
    	
    		//注册驱动程序
    		try {
    			
    			/**
    			 * 读取jdbc.properties文件
    			 */
    			//1)创建Properties对象
    			Properties prop = new Properties();
    			//构造输入流
    			/**
    			 * 相对路径:  .  这个点代表当前目录。当前目录本质上是java命令运行的目录
    			 * java项目:  在ecplise中,当前目录指向项目的根目录。
    			 * web项目: 当前目录指向%tomcat%/bin目录
    			 *   1)结论: 在web项目不能使用相对路径
    			 *   
    			 *   web项目中加载配置文件: ServletContext.getRealPath()  /  getResourceAsStream() 这种方式对于jdbcUtil这个工具而言,放到java项目中找不到ServletContext对象,不通用的!
    			 *   2)不能使用ServletContext读取文件
    			 *   
    			 *   3)使用类路径方式读取配置文件
    			 *   
    			 */
    			//1)获取类的对象
    		    Class clazz = JdbcUtil.class;
    		    //2) 使用类路径的读取方法去读取文件
    		    /**
    		     *   这个斜杠:代表项目的类路径的根目录。  类路径: 查询类的目录/路径
    		     *   java项目下: 类路径的根目录,指向项目的bin目录
    		     *   web项目下:类路径的根目录,指向项目的WEB-INF/classes目录
    		     *   
    		     *   只有把配置文件放在src目录的根目录下,那么这些文件就会自动拷贝到项目的类路径根目录下。
    		     */
    		    InputStream in = clazz.getResourceAsStream("/jdbc.properties");
    		    // File f = new File(clazz.getResource("/").getFile());
    			// System.out.println(f.getAbsolutePath());
    			//构造输入流
    		    // InputStream in = new FileInputStream("./src/jdbc.properties");
    			//2)加载文件
    			prop.load(in);
    			//3)读取文件内容
    			url = prop.getProperty("url");
    			user = prop.getProperty("user");
    			password = prop.getProperty("password");
    			driverClass = prop.getProperty("driverClass");
    			
    			// 测试是否从properties中读到
    			System.out.println(url);
    			System.out.println(user);
    			System.out.println(password);
    			System.out.println(driverClass);
    			
    			Class.forName(driverClass);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    	
    	
    	
    	/**
    	 * 获取连接方法
    	 */
    	public static Connection getConnection(){
    		try {
    			Connection conn = DriverManager.getConnection(url, user, password);
    			return conn;
    		} catch (SQLException e) {
    			e.printStackTrace();
    			throw new RuntimeException(e);
    		}
    	}
    	
    	/**
    	 * 释放资源的方法
    	 */
    	public static void close(Statement stmt,Connection conn){
    		if(stmt!=null){
    			try {
    				stmt.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    				throw new RuntimeException(e);
    			}
    		}
    		
    		if(conn!=null){
    			try {
    				conn.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    				throw new RuntimeException(e);
    			}
    		}
    	}
    	
    	/**
    	 * 释放资源的方法
    	 */
    	public static void close(ResultSet rs,Statement stmt,Connection conn){
    		if(rs!=null){
    			try {
    				rs.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    				throw new RuntimeException(e);
    			}
    		}
    		if(stmt!=null){
    			try {
    				stmt.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    				throw new RuntimeException(e);
    			}
    		}
    		
    		if(conn!=null){
    			try {
    				conn.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    				throw new RuntimeException(e);
    			}
    		}
    	}
    	
    	public static void main(String[] args) {
    		System.out.println(JdbcUtil.getConnection());
    	}
    	
    }
    

    注意:

            其中的jdbc.properties文件在src目录下:


     

    jdbc.properties中的内容如下:

    url=jdbc:mysql://localhost:3306/test
    user=root
    password=123456
    driverClass=com.mysql.jdbc.Driver


  • 相关阅读:
    【转】最大子序列和(动态规划学习)
    [转]修改Oracle XDB的8080端口
    【转】 C++常见编译/链接错误及其解决办法
    Pentaho Dashboard Editor使用向导
    [转]什么是Unicode是什么是UTF8是什么
    【转】 typedef的四个用途和两个陷阱
    【转】 C++中类型转换的解释
    从一道笔试题谈算法优化
    [转]谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
    [转]对Oracle数据库的字符集问题的资料收集,受益匪浅
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053483.html
Copyright © 2011-2022 走看看