Ответы пользователя по тегу MySQL
  • Spring MVC, как необходимо обрабатывать формы с датой?

    EugeneP2
    @EugeneP2
    Java Dev
    Я так понял, вы сделали ввод даты в виде 3-полей... Обычно, делают одно поле и на это поле вешать js либу для вода дат, например JQuery Datepicker, а в контроллере делают все, что написал azerphoenix выше
    Ответ написан
    Комментировать
  • Почему не работает база данный MySql в Maven?

    EugeneP2
    @EugeneP2
    Java Dev
    https://yadi.sk/d/sqycbG9SuN7NC

    Запустил, единственная ошибка, что не может достучатся до sql сервера, так как его нет
    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:526)


    но внес изменения в pom.xml файл:

    так как у вас веб приложение, то пакет должен быть war, а не jar, так как стандартная сборка jar не соберет зависимости в пакет
    <packaging>war</packaging>

    еще изменил версию джавы на 1.7, так вы используете фичи из этой версии
    <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>


    еще закрывайте rконекты и стейтменты БД + почитайте про коннекшен пул
    Ответ написан
    2 комментария
  • Как правильно записать URL mysql в java?

    EugeneP2
    @EugeneP2
    Java Dev
    Вообще, объект драйвера вручную никто сам не создаёт.

    1. Нужный драйвер должен быть указан в classpath.

    2. Перед получением коннекта к БД, вам нужно выполнить Class.forName(имя класса драйвера) - загрузчик классов загружает указанный класс, что приводит к инициализации статических полей и выполнение статических блоков этого класса. Причем тут статический блок? - в статическом блоке класса драйвера реализована регистрация в DriverManager-е.

    Вот пример:

    public class Driver extends NonRegisteringDriver implements java.sql.Driver {   
    static {  // статический блок
            try {   
                       java.sql.DriverManager.registerDriver(new Driver());   
                 } catch (SQLException E) {   
                             throw new RuntimeException("Can't register driver!");  
                 }  
           }
             // остальной код опущен
    }


    после чего вот это DriverManager.getConnection(URL, name,pass) без проблем находит драйвер.

    Class.forName("com.mysql.jdbc.Driver");    
    Connection con=DriverManager.getConnection( "jdbc:mysql://localhost:3306/sonoo","root","root");


    Хотя вы сами вручную и регистрируете драйвер, но DriverManager ваш драйвер не увидит. Возможно это как то связано с тем, что DriverManager и класс драйвера загружены разными загрузчиками...

    Но так тоже можно получить коннект, вместо
    connection = DriverManager.getConnection(URL, name,pass);

    использовать
    connection = driver.connect(....);
    Ответ написан
  • Как экранировать спец символы в строке перед вставкой в запрос?

    EugeneP2
    @EugeneP2
    Java Dev
    Вы наверно формируете запрос вставки конкатенацией строки?

    Используйте PreparedStatement
    Ответ написан
    Комментировать
  • Как узнатьсколько строк вернул запрос?

    EugeneP2
    @EugeneP2
    Java Dev
    Никак не узнать.

    Или перед основным запросом выполнить SELECT count(*) FROM TABLE
    Ответ написан
    Комментировать
  • Как создать сайт на javaEE?

    EugeneP2
    @EugeneP2
    Java Dev
    Для начала разберитесь с Servlet API, поставьте Tomcat, напишите сервлет. Потом JSP + JSTL
    Ответ написан
    1 комментарий