Недопустимая ошибка смещения строки 'locale' в Laravel Voyager для нового пользователя

Пул

  • Механизм объединения - это способ создания Объектов заранее. Когда класс загружен.
  • Он улучшает приложение performance [путем повторного использования одного и того же объекта для выполнения любых действий над объектными данными] & amp; memory [выделение и деактивация многих объектов создает значительные издержки управления памятью].
  • Очистка объекта не требуется, поскольку мы используем тот же объект, уменьшая нагрузку на сбор мусора.

«Пул пула [ Object , String Константный пул, Thread Пул, пул соединений]

String Константный пул

  • Строковый литеральный пул поддерживает только одну копию каждого отдельного строкового значения. который должен быть неизменным.
  • Когда вызывается метод intern, он проверяет наличие объекта с тем же содержимым в пуле с использованием метода equals. «Если String-copy доступен в пуле, то возвращает ссылку. «В противном случае объект String добавляется в пул и возвращает ссылку.

Пример: String для проверки Уникального объекта из пула.

public class StringPoolTest {
    public static void main(String[] args) { // Integer.valueOf(), String.equals()
        String eol = System.getProperty("line.separator"); //java7 System.lineSeparator();

        String s1 = "Yash".intern();
        System.out.format("Val:%s Hash:%s SYS:%s "+eol, s1, s1.hashCode(), System.identityHashCode(s1));
        String s2 = "Yas"+"h".intern();
        System.out.format("Val:%s Hash:%s SYS:%s "+eol, s2, s2.hashCode(), System.identityHashCode(s2));
        String s3 = "Yas".intern()+"h".intern();
        System.out.format("Val:%s Hash:%s SYS:%s "+eol, s3, s3.hashCode(), System.identityHashCode(s3));
        String s4 = "Yas"+"h";
        System.out.format("Val:%s Hash:%s SYS:%s "+eol, s4, s4.hashCode(), System.identityHashCode(s4));
    }
}

Пул соединений с использованием Type-4 Драйвер с использованием сторонних библиотек [ DBCP2 , c3p0 , Tomcat JDBC ]

Type 4 - The Thin driver converts JDBC calls directly into the vendor-specific database protocol Ex[Oracle - Thick, MySQL - Quora]. wiki

В механизме пула соединений, когда класс загружен он получает physical JDBC connection объекты и предоставляет физический объект подключения для пользователя. PoolableConnection является оберткой вокруг фактического соединения.

  • getConnection() выберите одно из бесплатного завернутого соединения из соединения objectpool и возвращает его.
  • close() вместо закрытия возвращает обратно завершенное соединение в пул.

Пример: Использование пула соединений ~ DBCP2 с Java 7 [ try-with-resources ]

public class ConnectionPool {
    static final BasicDataSource ds_dbcp2 = new BasicDataSource();
    static final ComboPooledDataSource ds_c3p0 = new ComboPooledDataSource();
    static final DataSource ds_JDBC = new DataSource();

    static Properties prop = new Properties();
    static {
        try {
            prop.load(ConnectionPool.class.getClassLoader().getResourceAsStream("connectionpool.properties"));

            ds_dbcp2.setDriverClassName( prop.getProperty("DriverClass") );
            ds_dbcp2.setUrl( prop.getProperty("URL") );
            ds_dbcp2.setUsername( prop.getProperty("UserName") );
            ds_dbcp2.setPassword( prop.getProperty("Password") );
            ds_dbcp2.setInitialSize( 5 );

            ds_c3p0.setDriverClass( prop.getProperty("DriverClass") );
            ds_c3p0.setJdbcUrl( prop.getProperty("URL") );
            ds_c3p0.setUser( prop.getProperty("UserName") );
            ds_c3p0.setPassword( prop.getProperty("Password") );
            ds_c3p0.setMinPoolSize(5);
            ds_c3p0.setAcquireIncrement(5);
            ds_c3p0.setMaxPoolSize(20);

            PoolProperties pool = new PoolProperties();
            pool.setUrl( prop.getProperty("URL") );
            pool.setDriverClassName( prop.getProperty("DriverClass") );
            pool.setUsername( prop.getProperty("UserName") );
            pool.setPassword( prop.getProperty("Password") );
            pool.setValidationQuery("SELECT 1");// SELECT 1(mysql) select 1 from dual(oracle)

            pool.setInitialSize(5);
            pool.setMaxActive(3);
            ds_JDBC.setPoolProperties( pool );
        } catch (IOException e) {   e.printStackTrace();
        } catch (PropertyVetoException e) { e.printStackTrace(); }
    }

    public static Connection getDBCP2Connection() throws SQLException {
        return ds_dbcp2.getConnection();
    }

    public static Connection getc3p0Connection() throws SQLException {
        return ds_c3p0.getConnection();
    }

    public static Connection getJDBCConnection() throws SQLException {
        return ds_JDBC.getConnection();
    }
}
public static boolean exists(String UserName, String Password ) throws SQLException {
    boolean exist = false;
    String SQL_EXIST = "SELECT * FROM users WHERE username=? AND password=?";
    try ( Connection connection = ConnectionPool.getDBCP2Connection();
          PreparedStatement pstmt = connection.prepareStatement(SQL_EXIST); ) {
        pstmt.setString(1, UserName );
        pstmt.setString(2, Password );

        try (ResultSet resultSet = pstmt.executeQuery()) {
            exist = resultSet.next(); // Note that you should not return a ResultSet here.
        }
    }
    System.out.println("User : "+exist);
    return exist;
}

jdbc::::: jdbc: oracle :thin:@localhost:1521:myDBName jdbc: mysql ://localhost:3306/myDBName

connectionpool.properties

URL         : jdbc:mysql://localhost:3306/myDBName
DriverClass : com.mysql.jdbc.Driver
UserName    : root
Password    :

Веб Приложение: Кому избегайте проблем подключения, когда все соединения закрыты [MySQL «wait_timeout» по умолчанию 8 часов], чтобы повторно открыть соединение с базовым БД.

Вы можете сделать это, чтобы проверить каждый Соединение путем установки testOnBorrow = true и validationQuery = «SELECT 1» и donot использует autoReconnect для сервера MySQL, поскольку он устарел. issue

===== ===== context.xml ===== =====



    


===== ===== web.xml ===== =====

    DB Connection
    jdbc/MyAppDB
    javax.sql.DataSource
    Container

===== ===== DBOperations ===== =====
servlet «   init() {}
Normal call used by sevlet  « static {}

static DataSource ds;
static {
    try {
        Context ctx=new InitialContext();
        Context envContext = (Context)ctx.lookup("java:comp/env");
        ds  =   (DataSource) envContext.lookup("jdbc/MyAppDB");
    } catch (NamingException e) {   e.printStackTrace();    }
}

См. также:

1
задан Farkhod Allamuradov 19 February 2019 в 05:42
поделиться

2 ответа

Как описано в в ответе на этот вопрос , вы можете добавить поле settings в приведениях внутри app/User.php:

protected $casts = [
  'email_verified_at' => 'datetime',
  'settings' => 'json'
];
0
ответ дан Kasper Seweryn 19 February 2019 в 05:42
поделиться

Вы пробовали?

php artisan config: cache

php artisan cache: очистить

0
ответ дан Sahil Darji 19 February 2019 в 05:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: