小编Car*_*eon的帖子

从任何sql语句生成db图

我正在使用DBArtisan 8.5.5并且它能够使用Build Query生成数据库图,它有一个很好的功能,可以自动加入,检测新添加的表上的潜在关系.因此,图表结果是一个SQL语句,因为它毕竟是一个查询生成器.

是否可以在DBArtisan中提供SQL语句并生成数据库图表?换句话说,反过来(给SQL生成图,而不是使用图表来生成SQL)?

如果没有这样的功能,是否有适用于Sybase DB的产品将提供所述功能?

sql ide diagram auto-generate dbartisan

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

用SQL或Java过滤数据?

过滤数据的一般准则/规则是什么?我习惯于在WHERE子句中的SQL语句中看到过滤器,尽管有时候过滤器会给SQL带来复杂性,使得它对于中间开发人员来说很难读取,但是很好看,但写得很复杂的看起来很复杂经过精心调整和优化.过滤也可以用Java完成,但这当然有一个缺点,即来自SQL的未过滤数据可能很大并且仅将其加载到内存中以过滤它可能是浪费.当然,如果您有多个数据源作为过滤器所需的依赖项,则有些情况下您别无选择,只能在Java中进行过滤.

java sql filter

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

javax.persistence @Column上的length字段是否定义了max?

我有这个代码:

public class Item { 
    @Column(name = "serialNo", length = 12)
    public String getSerialNo() {
        return this.serialNo;
    }

    public void setSerialNo(String serialNo) {
        this.serialNo = serialNo;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,数据库模式将列定义为长度为13.当通过以下方式检索项时:

List<Item> items = getEntityManager().createNamedQuery(SQL).getResultList();
Run Code Online (Sandbox Code Playgroud)

具有数据serialNo等于字符13(因为分贝表模式允许13)仍然被显示为13,不会被截断.@Column length当时有什么用?

java annotations hibernate jpa entity-model

6
推荐指数
1
解决办法
6287
查看次数

使用@RequestMapping时是否有快速查找url-to-controller映射?

鉴于一个完全使用@RequestMapping将网址绑定到控制器的Web应用程序,我想知道是否有一种方法或插件可以生成Web应用程序的完整URL到控制器映射?

与struts.xml类似,您可以将所有URL映射到某个操作,因此您可以在中心位置查看这些信息?

否则,会发生什么从屏幕上给出一个URL,每次我想查找该url的控制器时,我最终都会进行java文件搜索.

java spring eclipse-plugin spring-mvc

5
推荐指数
1
解决办法
2654
查看次数

这是重用/共享方法的好方法吗?

我遇到了这样的代码,其中3个控制器正在使用方法调用,例如ClassA.search(a,b,flag).这是该方法的简化版本:

public List<Result> search(Object a, Object b, boolean flag) {
   //do some code logic here, common to the 3 controllers
   //at the middle there is:
   if (flag) {
      //code that affects 2 Controllers
   } else {
      //code affects only 1
   }
   //some more common code
   //some more code with the flag if else
}
Run Code Online (Sandbox Code Playgroud)

这是一个好主意,因为代码被重用了吗?或者是否有更好的方法仍然能够进行代码重用,但没有为方法调用(客户端)代码定制引入此标志(比如可能将其拆分为3种不同的方法,但仍然能够声明公共代码重构方法)?

java refactoring

5
推荐指数
1
解决办法
158
查看次数

Spring AOP表达式中访问修饰符的用途是什么?

来自Spring doc:

6.2.3.4.例子

Spring AOP用户可能最常使用执行切入点指示符.执行表达式的格式为:

执行(modifiers-pattern? ret-type-pattern声明-type-pattern?name-pattern(param-pattern)throws-pattern?)

我可以看到修饰符模式?在哪里可以说公共,私人,受保护.它在同一份文件中说:

6.2.3.1.支持的切入点指示符

由于Spring的AOP框架基于代理的特性,受保护的方法根据定义不会被拦截,既不用于JDK代理(这不适用),也不用于CGLIB代理(这在技术上可行,但不建议用于AOP).因此,任何给定的切入点都只能与公共方法匹配!

我很困惑,使用修饰符模式有什么意义?请举个例子?

java spring spring-aop

5
推荐指数
1
解决办法
1635
查看次数

Apache Commons toString实用程序,仅包含具有值的字段

是否有来自Apache Commons的toString实用程序,它只会在结果的toString值中包含那些非null的字段?

例如:

public class Person {
String name;
String height;
String age;
}
Run Code Online (Sandbox Code Playgroud)

并创建一个具有名称和年龄的实例.然后调用该实用程序,例如:

utility.toStringNonNull(person);
Run Code Online (Sandbox Code Playgroud)

将输出:

[姓名=玛丽,年龄= 28]

java tostring apache-commons utility-method

5
推荐指数
1
解决办法
5380
查看次数

Spring Security LDAP身份验证用户必须是AD组的成员

我按照以下方式配置了Spring Boot Security:https: //spring.io/guides/gs/securing-web/

我能够完美地使用我的凭据登录.但是,我需要添加一个检查,即AD用户也必须属于特定的AD组(即AD-this-a-specific-group).登录时,如果用户不属于特定的AD组,则应返回登录错误.

我一直在寻找几个小时,似乎无法找到一个明确的方法来做到这一点WebSecurityConfigurerAdapter,我使用auth.groupSearchFilter正确吗?

这是我的代码:

@Configuration 
@EnableWebSecurity    
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
Environment env;

public LdapContextSource contextSource () {
    LdapContextSource contextSource= new LdapContextSource();

    contextSource.setUrl(env.getRequiredProperty("ldap.url"));
    contextSource.setBase(env.getRequiredProperty("ldap.baseDn"));
    contextSource.setUserDn(env.getRequiredProperty("ldap.bindDn"));
    contextSource.setPassword(env.getRequiredProperty("ldap.batchPassword"));
    contextSource.afterPropertiesSet();
    return contextSource;
}

@Override
protected void configure(AuthenticationManagerBuilder auth)
        throws Exception {
     auth.ldapAuthentication()
        .userSearchFilter("(cn={0})")           
        .groupSearchBase("OU=Account Groups,OU=ITS Security")
        .groupSearchFilter("(cn=AD-this-is-a-specific-group)") 
        .contextSource(contextSource()); 
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().anyRequest().fullyAuthenticated()
        .and()
        .formLogin();
}
Run Code Online (Sandbox Code Playgroud)

java ldap spring-security spring-ldap spring-boot

5
推荐指数
2
解决办法
5990
查看次数

Spring的上下文命名空间如何工作?

例如,如果我在application-context.xml中声明:

<context:annotation-config/>
Run Code Online (Sandbox Code Playgroud)

我从官方文件中读到:

在隐式注册后处理器包括AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor会,PersistenceAnnotationBeanPostProcessor,以及上述RequiredAnnotationBeanPostProcessor.

但我想知道Spring是如何工作的,我认为这个1-liner被转换为文档中提到的后处理器的几个bean定义.

但是,我的问题是,哪个Spring组件/类实现了"从1-liner到多个bean定义的转换"功能?

java spring xml-namespaces post-processing applicationcontext

4
推荐指数
1
解决办法
2805
查看次数

从数据库加载26MB文本数据消耗了258MB的JVM堆

在启动时本地运行的应用程序(Spring,JPA Hibernate,Sybase 12,Webapp)消耗基于VisualVM的40MB 256MB堆空间.当我触发一个返回70,000多行(文本数据没有blob)的搜索时,堆空间图最多可以拍摄256MB并且会丢失内存.我已经通过使用setMaxResults(limit)解决了这个问题.但是,当我查询相同的数据,复制粘贴到文本文件并保存到文件系统时,我可以看到大小只有26MB的文本.

因此,实际上,216MB(从256-40)被从数据库加载文本26MB消耗量谁在占用190MB的时候出现内存不足的发生?也许这将是框架,但我不知道它如何消耗比实际加载的数据更多...

**再次注意我用setMaxResults(限制)解决了这个问题,我的问题不是该做什么,而是为什么,出于教育目的.

java sybase jvm hibernate out-of-memory

4
推荐指数
1
解决办法
309
查看次数