• Портфолио
  • Смотреть портфолио списком
  • Создание сайтов
  • Контактная информация
  • Стандарты кодирования Java

    Стандарты кодирования Java, комментирование кода. Коллективная работа, контроль версий. Средства разработки: Eclipse

    /**
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package pac;
     
    import java.sql.*;
     
    /**
     *
     */
    public class Connect {
     
        /**
         * Comment
         * @param args command line argument
         * @throws Exception
         */
        public static void main (String[] args) {
     
            Connection conn = null;
            try {
                String userName = "root";
                String password = "666";
                String url = "jdbc:mysql://localhost/st_druzhinin";
     
                 // коннект не проходит с внешней БД, с локальной проходит, вероятнее всего отпинывает сервак.
                Class.forName("com.mysql.jdbc.Driver").newInstance();
                conn = DriverManager.getConnection(url, userName, password);
                System.out.println ("Создано соединение: " + conn); // создали соединение, вывели о нем инфу
     
                DatabaseMetaData dma = conn.getMetaData(); // проверяем, куда прицепились, выводим.
                System.out.println("База: " + dma.getURL());
     
               String sql = "SELECT department.name, subject.name, group.name, tutor.last_name FROM `department`, `subject`, `lesson`, `group`, `tutor`" +
                   "WHERE lesson.id=subject.id=group.id=tutor.id=department.id AND lesson.status IN (?)" // формируем запрос к БД st_druzhinin в таблицу students, выводим на экран.
               System.out.println(sql);
     
               PreparedStatement stmt = conn.prepareStatement(sql);  // создаем оператор
               stmt.setString(1, "0");
               ResultSet r = stmt.executeQuery(); // Сюда складываем результат запроса к БД
     
                while (r.next()) {
                        ResultSetMetaData md = r.getMetaData(); // Передаем экземпляр таблицы
                        int cnt = md.getColumnCount(); // Подсчитываем количество полей
                        int j=1; // Устанавливаем начальное поле в 1 СЮРПРИЗ! Отсчет идет с 1!!!!
                        System.out.print("ROW = "); // Выводим значение строки
                         while (j<= cnt ){ // перебираем поля в строке
                            System.out.print(r.getObject(j)); //выводим значение поля
                            System.out.print(' '); //разделяем поля пробелом
                            j++;
                        }
                      System.out.println(' '); // Переходим на новую строку <img src="http://web-fortuna.ru/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley">
                 }
            } catch (Exception e) {
                System.err.println("Oops!"); // ошибка присоединения к базе
                e.printStackTrace();
            } finally {
                if (conn != null) {
                    try {
                        conn.close();
                        System.out.println ("Database connection terminated");
                    } catch (Exception e) { }
                }
            }
        }
    }
    

    Время связывания: константы неименованные и именованные, параметры методов, файлы свойств. Обработка ошибок в Java, логгирование.

    /**
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
     
    package pac;
     
    import java.sql.*;
    import java.util.logging.Logger;
     
    /**
     *
     */
    public class Connect {
     
        public static final String USER_NAME = "root";
        public Logger log;
     
        /**
         * Creates DB connection
         *
         * @param className
         * @param userName
         * @param password
         * @param url
         * @return
         * @throws InstantiationException
         * @throws IllegalAccessException
         * @throws ClassNotFoundException
         * @throws SQLException
         */
        public static Connection createConnection(
            final String className,
            final String userName,
            final String password,
            final String url
        ) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
     
            // коннект не проходит с внешней БД, с локальной проходит, вероятнее всего отпинывает сервак.
            Class.forName(className).newInstance();
            Connection conn = DriverManager.getConnection(url, userName, password);
     
            return conn;
        }
     
        /**
         * Comment
         * @param args command line argument
         * @throws Exception
         */
        public static void main (String[] args) {
     
            Connection conn = null;
            try {
                String userName = USER_NAME;
                String password = "666";
                String url = "jdbc:mysql://localhost/st_druzhinin";
     
                conn = Connect.createConnection("com.mysql.jdbc.Driver", userName, password, url);
                System.out.println ("Создано соединение: " + conn); // создали соединение, вывели о нем инфу
                // log.debug
                DatabaseMetaData dma = conn.getMetaData(); // проверяем, куда прицепились, выводим.
                System.out.println("База: " + dma.getURL());
     
               String sql = "SELECT department.name, subject.name, group.name, tutor.last_name FROM `department`, `subject`, `lesson`, `group`, `tutor`" +
                  "WHERE lesson.id=subject.id=group.id=tutor.id=department.id AND lesson.status IN (?)"; // формируем запрос к БД st_druzhinin в таблицу students, выводим на экран.
               System.out.println(sql);
     
               PreparedStatement stmt = conn.prepareStatement(sql);  // создаем оператор
               stmt.setString(1,"1");
               ResultSet r = stmt.executeQuery(); // Сюда складываем результат запроса к БД
     
                while (r.next()) {
                        ResultSetMetaData md = r.getMetaData(); // Передаем экземпляр таблицы
                        int cnt = md.getColumnCount(); // Подсчитываем количество полей
                        int j=1; // Устанавливаем начальное поле в 1 СЮРПРИЗ! Отсчет идет с 1!!!!
                        System.out.print"ROW = "); // Выводим значение строки
                         while (j<= cnt ){ // перебираем поля в строке
                            System.out.print(r.getObject(j)); //выводим значение поля
                            System.out.print(' '); //разделяем поля пробелом
                            j++;
                        }
                      System.out.println(' '); // Переходим на новую строку <img src="http://web-fortuna.ru/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley">
                 }
            } catch (InstantiationException e) {
                //log.error
                System.err.println("Oops!");
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                //log.error
                System.err.println("Oops!");
                e.printStackTrace();
            } catch (ClassNotFoundException e) {
                //log.error
                System.err.println("Oops!");
                e.printStackTrace();
            } catch (SQLException e) {
                //log.error
                System.err.println("Oops SQL!"); // ошибка присоединения к базе
                e.printStackTrace();
            } finally {
                if (conn != null) {
                    try {
                        conn.close();
                        System.out.println ("Database connection terminated");
                    } catch (Exception e) { }
                }
            }
        }
    }
    

    Log4j

    /**
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    
    package pac;
    
    import java.sql.*;
    import org.apache.log4j.*;
    import org.apache.log4j.xml.DOMConfigurator;
    
    public class Connect {
        private static final Logger Log = Logger.getLogger(Connect.class);
        public static final String USER_NAME = "root";
        
    
        /**
         * Creates DB connection
         * 
         * @param className
         * @param userName
         * @param password
         * @param url
         * @return 
         * @throws InstantiationException
         * @throws IllegalAccessException
         * @throws ClassNotFoundException
         * @throws SQLException
         */
        public static Connection createConnection(
            final String className,
            final String userName,
            final String password,
            final String url
        ) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
    
            // коннект не проходит с внешней БД, с локальной проходит, вероятнее всего отпинывает сервак.
            Class.forName(className).newInstance();
            Connection conn = DriverManager.getConnection(url, userName, password);
    
            return conn;
        }
        
        /**
         * Comment
         * @param args command line argument
         * @throws Exception
         */
        public static void main (String[] args) {   
            DOMConfigurator.configure("log4j.xml");
            Connection conn = null;        
            try { 
                String userName = USER_NAME;
                String password = "666";
                String url = "jdbc:mysql://localhost/st_druzhinin";
    
                conn = Connect.createConnection("com.mysql.jdbc.Driver", userName, password, url);
                Log.debug ("Создано соединение: " + conn); // создали соединение, вывели о нем инфу
       
                DatabaseMetaData dma = conn.getMetaData(); // проверяем, куда прицепились, выводим.
                Log.debug("База: " + dma.getURL());
    
               String sql = "SELECT department.name, subject.name, group.name, tutor.last_name FROM `department`, `subject`, `lesson`, `group`, `tutor`" +
                   "WHERE lesson.id=subject.id=group.id=tutor.id=department.id AND lesson.status IN (?)"; // формируем запрос к БД st_druzhinin в таблицу students, выводим на экран.
               System.out.println(sql);
               
               PreparedStatement stmt = conn.prepareStatement(sql);  // создаем оператор
               stmt.setString(1, "1");
               ResultSet r = stmt.executeQuery(); // Сюда складываем результат запроса к БД
    
                while (r.next()) {
                    ResultSetMetaData md = r.getMetaData(); // Передаем экземпляр таблицы
                    int cnt = md.getColumnCount(); // Подсчитываем количество полей
                    int j=1; // Устанавливаем начальное поле в 1 СЮРПРИЗ! Отсчет идет с 1!!!!
                    System.out.print("Запись = "); // Выводим значение строки
                    while (j<= cnt ){ // перебираем поля в строке
                        System.out.print(r.getObject(j)); //выводим значение поля
                        System.out.print(' '); //разделяем поля пробелом
                        j++;
                    }
                    System.out.println(' '); // Переходим на новую строку 🙂
                }
            } catch (Exception ex) {
                Log.error(ex);
            } finally {
                if (conn != null) {
                    try {
                        conn.close();
                        System.out.println ("Database connection terminated");
                    } catch (Exception e) { }
                }
            }
        }
    }
    

    Configuration XML

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
        <appender name="CA" class="org.apache.log4j.ConsoleAppender">
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p: %m%n" />
            </layout>
        </appender>
        <appender name="FA" class="org.apache.log4j.DailyRollingFileAppender">
            <param name="file" value="log/error.log" />
            <param name="datePattern" value="'.'yyyy-MM" />
            <param name="append" value="true" />
            <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %p: %m%n" />
            </layout>
        </appender>
        <root>
            <level value="DEBUG" />
            <appender-ref ref="CA" />
            <appender-ref ref="FA" />
        </root>
    </log4j:configuration>