小编Has*_*ash的帖子

从字符串生成密钥?

我需要从字符串生成一个Key,这样我总是可以从同一个字符串创建相同的键.(特别是一个Key对象,这样我就可以用它来创建一个Cipher来创建一个SealedObject)

这在Java中是否可行,我应该考虑使用哪种类/方法组合?

java cryptography key

10
推荐指数
2
解决办法
3万
查看次数

Oracle Date数据类型,通过SQL转换为'YYYY-MM-DD HH24:MI:SS TMZ'

我有一个应用程序通过以下方式上传到Oracle Data数据类型列:

TO_TIMESTAMP_TZ('2012-10-09 1:10:21 CST','YYYY-MM-DD HH24:MI:SS TZR')
Run Code Online (Sandbox Code Playgroud)

我现在需要从此数据列中提取以下格式和时区:'YYYY-MM-DD HH24:MI:SS CDT'

注意:日期是在CST上传的,但需要在CDT中返回.

我有谷歌,但只发现以下数据类型:

SELECT dateColumn From dateTable;
09-NOV-12

SELECT TO_CHAR(dateColumn,'YYYY-MM-DD HH24:MI:SS') From dateTable;
2012-10-09 1:10:21
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下内容:

TO_TIMESTAMP_TZ(dateColumn,'YYYY-MM-DD HH24:MI:SS CDT')
data format not recognized

TO_TIMESTAMP_TZ(CRTE_DT,'YYYY-MM-DD HH24:MI:SS TZH:TZM')
09-NOV-12 1:10:21 AM +01:00
don't understand why this does not come back as YYYY-MM-DD?
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

sql oracle select date

10
推荐指数
1
解决办法
25万
查看次数

postgres truncate很慢

在postgres 9.2(CentOS)中,TRUNCATE TABLE命令偶尔需要很长时间才能运行.有一次,截断一个有100K记录的表需要1.5个多小时,在其他情况下甚至更长.当我使用pgAdmin截断表时也会发生此问题.可能的原因是什么?以及如何提高截断性能?

服务器上有16GB内存,shared_buffers = 1536MB

postgresql performance truncate centos

10
推荐指数
2
解决办法
8867
查看次数

Postgres变更集与TEXT列不兼容Liquibase 3.6.2和Postgres 9.6

我正在使用新的Spring Boot 2.1.0版本.在Spring Boot 2.1.0中,Liquibase从3.5.5更新到3.6.2.我注意到我的变更集中的一些东西都没有用.

-- test_table.sql
CREATE TABLE test_table (
   id             SERIAL PRIMARY KEY,
   --Works fine as TEXT or VARCHAR with Liquibase 3.5 which is bundled with Spring Boot version 2.0.6.RELEASE
   --Will only work as VARCHAR with Liquibase 3.6.2 which is bundled with Spring Boot version 2.1.0.RELEASE and above
   worksheet_data TEXT
);
-- test_table.csv
id,worksheet_data
1,fff

-- Liquibase Changeset
    <changeSet id="DATA_01" author="me" runOnChange="false">
    <loadData
            file="${basedir}/sql/data/test_table.csv"
            tableName="test_table"/>
    </changeSet>
Run Code Online (Sandbox Code Playgroud)

这不行.我得到了这个奇怪的堆栈跟踪.它抱怨它找不到liquibase/changelog/fff,我在变更集中根本没有引用它."fff"巧合地匹配table_test.csv中的数据值.

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path …
Run Code Online (Sandbox Code Playgroud)

postgresql liquibase

10
推荐指数
1
解决办法
775
查看次数

使用LDAP身份验证和JDBC授权实现Tomcat领域

我在遗留环境中工作,其中LDAP服务器仅用于身份验证并且不包含任何角色,并且对包含用户角色映射但没有密码的数据库进行授权.

我的计划是通过扩展JNDIRealm来实现一个新的Tomcat领域,并重写角色方法来调用封装的JDBCRealm.

我的领域在server.xml中声明:

<Realm className="com.example.LdapJdbcRealm"
   connectionURL="ldap://ldaphost:389"
   resourceName="LDAP Auth"
   userPattern="uid={0}, ou=Portal, dc=example, dc=com"
   dbConnectionURL="jdbc:oracle:thin:@oracledb:1521:dbname"
   userTable="db_user" userNameCol="user_id"
   userRoleTable="db_user_role_xref" roleNameCol="role_id" />
Run Code Online (Sandbox Code Playgroud)

这是JNDIRealm和JDBCRealm的标准属性名称的组合,稍有改动,因为它们都使用connectionURL.

package com.example;

import org.apache.catalina.Realm;
import org.apache.catalina.Context;
import org.apache.catalina.deploy.SecurityConstraint;
import org.apache.catalina.connector.Request;
import org.apache.catalina.connector.Response;
import org.apache.catalina.realm.JNDIRealm;
import org.apache.catalina.realm.JDBCRealm;

import java.security.Principal;
import java.io.IOException;

public class LdapJdbcRealm extends JNDIRealm implements Realm
{
    private JDBCRealm jdbcRealm = new JDBCRealm();

    protected static final String info = "com.example.LdapJdbcRealm/1.0";
    protected static final String name = "LdapJdbcRealm";

    public String getDbConnectionURL() {
        return jdbcRealm.getConnectionURL();
    }

    public void setDbConnectionURL(String dbConnectionURL) {
        jdbcRealm.setConnectionURL(dbConnectionURL); …
Run Code Online (Sandbox Code Playgroud)

tomcat authorization ldap jdbc

9
推荐指数
2
解决办法
9656
查看次数

Oracle sqlldr时间戳格式令人头疼

我很难将sqlldrcsv数据文件导入到我的表中,特别是使用时间戳字段.

我的csv文件中的数据采用以下格式:

16-NOV-09 01.57.48.001000 PM
Run Code Online (Sandbox Code Playgroud)

我已经在我的控制文件中尝试了所有方式的组合,并在圈子中进行.我在网上找不到任何东西 - 甚至没有详细说明所有日期/时间戳格式字符串的Oracle参考页面.

有谁知道这个参考页面在哪里,或者我应该在我的控制文件中使用什么格式字符串来获取此时间戳格式.

作为参考,这是我最近尝试过的:

load data
infile 'kev.csv'
into table page_hits
fields terminated by "~" 
( ...
  event_timestamp TIMESTAMP "dd-mmm-yy hh24.mi.ss", 
...)
Run Code Online (Sandbox Code Playgroud)

oracle format timestamp sql-loader

9
推荐指数
1
解决办法
3万
查看次数

JPA Criteria API:子类的查询属性

我有这样的类结构:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class Article {
   private String aBaseProperty;
}

@Entity
public class Book extends Article {
   private String title;
}

@Entity
public class CartItem {
   @ManyToOne(optional = false)
   public Article article;
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下内容来接收所有CartItems引用a Book的内容title = 'Foo':

CriteriaBuilder builder = em.getCriteriaBuilder();
CriteriaQuery<CartItem> query = builder.createQuery(CartItem.class);
Root<CartItem> root = query.from(CartItem.class);
builder.equal(root.get("article").get("title"), "Foo");
List<CartItem> result = em().createQuery(query).getResultList();
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这将导致错误(对我来说很有意义,因为titleBook,在不Article...):

java.lang.IllegalArgumentException: Could not resolve attribute named title
    at org.hibernate.ejb.criteria.path.SingularAttributePath.locateAttributeInternal(SingularAttributePath.java:101) …

sql polymorphism hibernate jpa criteria

9
推荐指数
1
解决办法
6081
查看次数

Oracle中的最大语句长度是多少

我正在构建一个包含数据的SQL语句,我想知道我是否会在Oracle 10g中打破一些最大语句长度.

该语句大约为3 200 000字节,不能拆分,必须完整解析.

在我用这种方式投入太多时间之前,我想知道我是否会受到这个声明大小的限制.

我正在使用SQL开发人员,但我认为如果服务器可以做到这一点,那么SQL开发人员也可以.

sql oracle oracle10g oracle-sqldeveloper

9
推荐指数
1
解决办法
3万
查看次数

使用CriteriaBuilder一次删除多个对象

我正在尝试使用CriteriaBuilderAPI 通过一个查询删除一堆对象.我正在寻找像这样的选择:

CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<T> query = criteriaBuilder.createQuery(entityClass);
Root<T> root = query.from(entityClass);
query.select(root).where(/*some condition*/);
return entityManager.createQuery(query).getResultList();
Run Code Online (Sandbox Code Playgroud)

但后来删除而不是选择.据我所知,没有removedelete方法CriteriaQuery.是否可以使用此API?

我当然可以执行select,然后调用entityManager.remove(object)每个结果,但这感觉非常低效.

java hibernate jpa criteria-api

9
推荐指数
2
解决办法
9767
查看次数

dbms_metadata.get_ddl无效

我想CARD_TABLEXT架构中 获取Table的DDL

SQL> select dbms_metadata.get_ddl('TABLE','CARD_TABLE','XT') from dual;
    ERROR:
    ORA-31603: object "CARD_TABLE" of type TABLE not found in
    schema "XT"
    ORA-06512: at "SYS.DBMS_METADATA", line 5746
    ORA-06512: at "SYS.DBMS_METADATA", line 8333
    ORA-06512: at line 1
Run Code Online (Sandbox Code Playgroud)

但我的选择查询工作

select count(*) from XT.CARD_TABLE;
count(*)
---------
0
Run Code Online (Sandbox Code Playgroud)

我查询dba_objects它仍然得到了表:

    SQL> select owner,object_type from DBA_OBJECTS
    where object_name='CARD_TABLE'  2
      3  ;


PUBLIC     SYNONYM
    XT     TABLE PARTITION
    XT     TABLE PARTITION
    XT     TABLE PARTITION
    XT     TABLE
    XT     TABLE PARTITION
    VAT    TABLE

    7 rows selected.
Run Code Online (Sandbox Code Playgroud)

sql oracle

9
推荐指数
1
解决办法
1万
查看次数