zoukankan      html  css  js  c++  java
  • JavaWeb中jdbcproperties配置文件

    开发中使用properties配置文件,方便后期维护。

    1. 文件位置: 任意,建议src下
    2. 文件名称:任意,扩展名为properties
    3. 文件内容:一行一组数据,格式“key=value”  
      1.      key 命名自定义,如果是多单词,习惯使用点分割,例如jdbc.driver
      2.     value 值不支持中文,如果有需要使用非英文字符,将进行Unicode转化

      配置文件只需要加载一次,提供静态代码,当前类被加载到内存执行

      1 package com.jdbc.dao;
      2 
      3 import java.sql.Connection;
      4 import java.sql.DriverManager;
      5 import java.sql.PreparedStatement;
      6 import java.sql.ResultSet;
      7 import java.sql.SQLException;
      8 import java.util.ResourceBundle;
      9 
     10 
     11 public class JdbcUtils {
     12     
     13     private static  String user;
     14     public  static String password;
     15     public  static String className;
     16     public  static String url;
     17     Connection con=null;
     18     PreparedStatement pstm=null;
     19     ResultSet rs=null;
     20     static{
        //getBundle("properties配置文件的名称");
    21 ResourceBundle bundle=ResourceBundle.getBundle("jdbc");
            // getObject("properties配置文件的key值");
    22 user=bundle.getString("jdbc.user"); 23 password=bundle.getString("jdbc.password"); 24 className=bundle.getString("jdbc.className"); 25 url=bundle.getString("jdbc.url"); 26 27 } 28 public JdbcUtils() { 29 try{ 30 Class.forName(className); 31 } catch (ClassNotFoundException e) { 32 e.printStackTrace(); 33 } 34 35 } 36 37 38 39 40 41 public Connection getConnection() { 42 try { 43 con=(Connection) DriverManager.getConnection(url, user, password); 44 } catch (SQLException e) { 45 con=null; 46 e.printStackTrace(); 47 48 } 49 50 return con; 51 } 52 53 54 public ResultSet excuteQuery(String sql, Object[] obj) { 55 if (sql!=null ){ 56 con=getConnection(); 57 if(con!=null){ 58 try { 59 pstm=(PreparedStatement) con.prepareStatement(sql); 60 if (obj!=null) { 61 for(int i=0;i<obj.length;i++){ 62 pstm.setObject(i+1,obj[i]); 63 } 64 } 65 66 rs=pstm.executeQuery(); 67 68 } catch (SQLException e) { 69 e.printStackTrace(); 70 } 71 } 72 } 73 74 return rs; 75 } 76 77 78 public int excuteUpdate(String sql, Object[] obj) { 79 // TODO Auto-generated method stub 80 int flag=-1; 81 if(sql!=null && obj!=null){ 82 con=getConnection(); 83 84 if (con!=null) { 85 try { 86 pstm=(PreparedStatement) con.prepareStatement(sql); 87 for(int i=0;i<obj.length;i++){ 88 pstm.setObject(i+1, obj[i]); 89 } 90 flag=pstm.executeUpdate(); 91 92 } catch (SQLException e) { 93 e.printStackTrace(); 94 } 95 } 96 } 97 return flag; 98 } 99 100 public ResultSet queryAll(String sql) { 101 102 con=getConnection(); 103 if(con!=null){ 104 try { 105 pstm=(PreparedStatement) con.prepareStatement(sql); 106 rs=pstm.executeQuery(); 107 } catch (SQLException e) { 108 e.printStackTrace(); 109 } 110 } 111 112 113 return rs; 114 115 } 116 117 118 public void closeAll() { 119 // TODO Auto-generated method stub 120 if (rs!=null) { 121 try { 122 rs.close(); 123 } catch (SQLException e) { 124 // TODO Auto-generated catch block 125 e.printStackTrace(); 126 } 127 } 128 if (pstm!=null) { 129 try { 130 pstm.close(); 131 } catch (SQLException e) { 132 // TODO Auto-generated catch block 133 e.printStackTrace(); 134 } 135 136 } 137 if (con!=null) { 138 try { 139 con.close(); 140 } catch (SQLException e) { 141 // TODO Auto-generated catch block 142 e.printStackTrace(); 143 } 144 } 145 } 146 147 148 }

    配置文件 jdbc.properties 

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.user=root
    jdbc.password=root
    jdbc.className=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/bookstore

    加载配置文件:properties对象

    开发中会使用Properties对象进行, 我们可以采用加载properties 文件获得流,然后使用Properties对象进行处理

    1.  加载properties文件获取inputStream
    1.1   方式1.使用类加载ClassLoader加载src的资源(固定写法)     获得ClassLoader固定写法:当前类.class.getClassLoader();

            InputStream  is=   jdbcUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
        // InputStream is=本类名.class.getClassLoader().getSourceAsStream("properties配置文件名称");

    1.2 方式2 加载当前类同包下的资源,如果需要从src开始必须填写   ‘’/‘’

     

            InputStream is2=jdbcUtil.class.getResourceAsStream("jdbc2.properties");

    加载src下的资源

            InputStream is3=jdbcUtil.class.getResourceAsStream("/jdbc.properties");

     加载完成后:使用Properties处理流

    Properties props=new Properties();

     使用load() 方法加载指定的流

    props.load(is);    /   props.load(is3);   / props.load(is2); 

    Properties props=new Properties();
    
                props.load(is);
                //使用getProperty(key),获取需要的值
                className=props.getProperty("jdbc.className");
                url=props.getProperty("jdbc.url");
                user=props.getProperty("jdbc.user");
                password=props.getProperty("jdbc.password");
            

    jdbc加载项目

    package com.jdec.util_v3;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.URL;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Properties;
    
    public class jdbcUtil {
        private static  String user;
        public  static String password;
        public  static String className;
        public  static String url;
        Connection con=null;
        PreparedStatement pstm=null;
        ResultSet rs=null;
        static{
            //1.加载properties文件获取inputStream
            /*1.1 方式1.使用类加载ClassLoader加载src的资源(固定写法)
             * 获得ClassLoader固定写法:当前类.class.getClassLoader();
             */
            InputStream  is=   jdbcUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
            //加载当前类同包下的资源,如果需要从src开始必须填写/
            InputStream is2=jdbcUtil.class.getResourceAsStream("jdbc2.properties");
            //加载src下的资源
            InputStream is3=jdbcUtil.class.getResourceAsStream("/jdbc.properties");
            
            //使用Properties处理流
            // 使用load() 方法加载指定的流
            Properties props=new Properties();
            try {
                props.load(is);
                //使用getProperty(key),获取需要的值
                className=props.getProperty("jdbc.className");
                url=props.getProperty("jdbc.url");
                user=props.getProperty("jdbc.user");
                password=props.getProperty("jdbc.password");
                        
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }
            public jdbcUtil() {
                try{
                    Class.forName(className);
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
    
            }
    
    
                
    
    
                public Connection getConnection() {
                    try {
                        con=(Connection) DriverManager.getConnection(url, user, password);
                    } catch (SQLException e) {
                        con=null;
                        e.printStackTrace();
                        
                    }
                    
                    return con;
                }
    
        
                public ResultSet excuteQuery(String sql, Object[] obj) {
                    if (sql!=null ){
                        con=getConnection();
                        if(con!=null){
                            try {
                                pstm=(PreparedStatement) con.prepareStatement(sql);
                                    if (obj!=null) {
                                        for(int i=0;i<obj.length;i++){
                                            pstm.setObject(i+1,obj[i]);
                                        }
                                    }
                                    
                                 rs=pstm.executeQuery();
                    
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                    
                    return rs;
                }
    
    
                public int excuteUpdate(String sql, Object[] obj) {
                    // TODO Auto-generated method stub
                    int flag=-1;
                    if(sql!=null && obj!=null){
                        con=getConnection();
                        
                        if (con!=null) {
                            try {
                                pstm=(PreparedStatement) con.prepareStatement(sql);
                                for(int i=0;i<obj.length;i++){
                                    pstm.setObject(i+1, obj[i]);
                                }
                                flag=pstm.executeUpdate();
                                
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                    return flag;
                }
    
                public ResultSet queryAll(String sql) {
                    
                        con=getConnection();
                        if(con!=null){
                            try {
                                pstm=(PreparedStatement) con.prepareStatement(sql);
                                rs=pstm.executeQuery();
                            } catch (SQLException e) {
                                e.printStackTrace();
                            }
                        }
                    
                    
                    return rs;
                    
                }
    
    
            public void closeAll() {
                // TODO Auto-generated method stub
                if (rs!=null) {
                    try {
                        rs.close();
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                            if (pstm!=null) {
                                try {
                                    pstm.close();
                                } catch (SQLException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }
                                
                            }
                            if (con!=null) {
                                try {
                                    con.close();
                                } catch (SQLException e) {
                                    // TODO Auto-generated catch block
                                    e.printStackTrace();
                                }
                            }
                        }
    
        
    }

    测试类

    package com.jdbc.util;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import org.junit.Test;
    
    import com.jdbc.dao.JdbcUtils;
    import com.jdec.util_v3.jdbcUtil;
    
    
    
        public static void main(String[] args) throws SQLException{
            jdbcUtil jd=new jdbcUtil();
            String sql="select * from book";
            Object[] obj=null;
            ResultSet rs=jd.excuteQuery(sql, obj);
            while(rs.next()){
                System.out.println(rs.getObject("bookId")+"   "+rs.getObject("bookName")+"     "+rs.getObject("bookAuthor"));
    
            }
        }
    }

    jdbc.properties

    jdbc.user=root
    jdbc.password=root
    jdbc.className=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/bookstore
  • 相关阅读:
    【前端优化之渲染优化】大屏android手机动画丢帧的背后
    ES6/ES2015核心内容(上)
    ES6/ES2015核心内容(上)
    ES6/ES2015核心内容(上)
    ES6/ES2015核心内容(上)
    Java实现zip文件解压[到指定目录]
    Java实现zip文件解压[到指定目录]
    Java实现zip文件解压[到指定目录]
    Java实现zip文件解压[到指定目录]
    spring boot项目中处理Schedule定时任务
  • 原文地址:https://www.cnblogs.com/shaoxiaohuan/p/7743998.html
Copyright © 2011-2022 走看看