Задать вопрос
Ответы пользователя по тегу MySQL
  • Не происходит подключения к базе данных по URL?

    @nubus4000
    Попробуйте так. В папку META-INF, что в webapp, добавить context.xml с содержимым:
    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
    
        <Resource name="jdbc/est"
                  auth="Container"
                  type="javax.sql.DataSource"
                  maxActive="100" maxIdle="30" maxWait="10000"
                  username="root"
                  password="root"
                  driverClassName="com.mysql.jdbc.Driver"
                  url="jdbc:mysql://localhost/est?useEncoding=true&amp;characterEncoding=UTF-8"/>
    </Context>


    После сделайте класс DaoUtil и напишите туда это(и лучше его доработать, он перегружен всякими if и т.п.):
    public class DaoUtil {
    
        public static Connection getConnection(){
            Connection connection = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            try {
                Context context = new InitialContext();
                Context initContext  = (Context )context.lookup("java:/comp/env");
                DataSource ds = (DataSource) initContext.lookup("jdbc/est");
                connection = ds.getConnection();
            }catch (SQLException | NamingException ex){
                ex.printStackTrace();
            }
            return connection;
        }
    
        public static void close(Statement statement, ResultSet rs,Connection connection){
            try {
    
                if (statement != null) {
                    statement.close();
                }
                if (rs != null) {
                    rs.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException ex){
                ex.printStackTrace();
            }
        }
    
    }


    Ну и в контроллере уже можно писать так:
    Connection connection = DaoUtil.getConnection();

    Ну и лучше работу с connection и всякими statement перенести в слой Dao.
    Ответ написан
    Комментировать