小编Ray*_*Ray的帖子

我可以使用MyBatis生成动态SQL而不执行它吗?

我有一些复杂的查询要使用许多可选的过滤器构建,MyBatis似乎是生成动态SQL的理想候选者.

但是,我仍然希望我的查询在与应用程序的其余部分(不使用MyBatis)相同的框架中执行.

所以我希望做的是严格使用MyBatis来生成SQL,但是从那里使用我的应用程序的其余部分来实际执行它.这可能吗?如果是这样,怎么样?

java dynamic-sql mybatis

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

按值查找枚举的正确方法

我有几个Java枚举,看起来像下面(为机密性编辑等).在每种情况下,我都有一个我真的不满意的查找方法; 在下面的例子中,它是findByChannelCode.

public enum PresentationChannel {
    ChannelA("A"),
    ChannelB("B"),
    ChannelC("C"),
    ChannelD("D"),
    ChannelE("E");

    private String channelCode;

    PresentationChannel(String channelCode) {
        this.channelCode = channelCode;
    }

    public String getChannelCode() {
        return this.channelCode;
    }

    public PresentationChannel findByChannelCode(String channelCode) {
        if (channelCode != null) {
            for (PresentationChannel presentationChannel : PresentationChannel.values()) {
                if (channelCode.equals(presentationChannel.getChannelCode())) {
                    return presentationChannel;
                }
            }
        }

        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我可以使用a时,我觉得这些线性查找很傻HashMap<String, PresentationChannel>.所以我想到了下面的解决方案,但是我希望它有点混乱,而且更重要的是,我肯定在别人遇到这个问题时我不在乎重新发明轮子.我想得到这个群体的一些圣人智慧:用值索引枚举的正确方法是什么?

我的解决方案

ImmutableMap<String, PresentationChannel> enumMap = Maps.uniqueIndex(ImmutableList.copyOf(PresentationChannel.values()), new Function<PresentationChannel, String>() {
        public String apply(PresentationChannel input) {
            return input.getChannelCode(); …
Run Code Online (Sandbox Code Playgroud)

java enums

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

番石榴的链接顺序

我对番石榴有点新鲜,它的风格.我肯定在挖掘它,但我不断绊倒的一件事是链式方法的顺序.我似乎有这个问题的地方最多的是使用复合物Ordering.我不得不一直问自己这样的问题:

  • natural去哪儿了?
  • 在什么地方nullFirst(或上次)去?
  • 哪个nullsFirst做什么?(在下面的示例中,一个用于主机,一个用于姓氏,一个用于名字?)

这是我刚刚开始研究的一个例子.它看起来很麻烦,我只是不确定我是否把它放在一起.我有一些JUnits来测试它,看起来没问题,但总有那些奇怪的边界情况.

Ordering<Host> lastNameThenFirstNameOrdering = Ordering.natural().nullsFirst().onResultOf(new Function<Host, String>() {
    public String apply(Host host) {
        return host.getLastName();
    }}).compound(Ordering.natural().nullsFirst().onResultOf(new Function<Host, String>() {
    public String apply(Host host) {
        return host.getFirstName();
    }})).nullsFirst();
Run Code Online (Sandbox Code Playgroud)

至于一个实际的问题:这些事情是如何被执行的,是否有明确的规则?它似乎是倒数第一,但我很难说出来.

编辑:只是想指出我试图替换的大而丑陋的代码:

    Ordering<Host> ordering2 = new Ordering<Host>() {
        public int compare(Host host1, Host host2) {
            if (host1 == null || host2 == null) {
                return host1 == host2 ? 0 : ((host1 == null) ? -1 : 1); 
            }
            if(host1.getLastName() != …
Run Code Online (Sandbox Code Playgroud)

java method-chaining guava

11
推荐指数
3
解决办法
6555
查看次数

如何控制Spring从队列中接收的速率?

我使用Spring的消息驱动的POJO框架(DefaultMessageListenerContainer特别是)来监听几个队列和主题.

在一个特别队列的情况下,需要减慢我排空队列的速率,每五分钟一个消息的顺序.消息的实际处理是亚秒操作,但我希望监听器在消息之间闲置一段时间.

我已经创建了一些hack,但它确实是次优的:我所做的是将max concurrency设置为1并Thread.sleep(..)在处理每条消息后添加一个.我想找到一种方法,而不是DefaultMessageListenerContainer在尝试接收之间等待,而不是让处理程序在将要处理消息期间进行等待.

我曾经考虑过是否会有ScheduledExecutor帮助,但我意识到需要在任务生成的地方进行限制.是否有一些方法DefaultMessageListenerContainer可以覆盖以实现我追求的目标?

java spring jms

7
推荐指数
1
解决办法
2317
查看次数

如何检索每个轴上的3D旋转角度?

我有一个Model3DGroup,它使用应用于对象的Transform属性的AxisAngleRotation3D围绕x,y,z轴中的任何一个旋转.

问题是我无法控制网格上应用的各种旋转.我需要在每个渲染循环的每个x,y,z轴上显示网格的角度.

我怎样才能做到这一点?我尝试在对象上检索AxisAngleRotation3D对象,但它只给出了上次应用的旋转.哪个不对.

例如,如果应用了Axis的旋转:Vector3D(1,1,0)角度:45

绕Z轴的实际旋转不是0.如何获得每个轴上的实际角度?

.net c# wpf rotation

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

在指定时间内安排Java任务

我希望能够在Java中的特定时间安排任务.我知道ExecutorService有能力定期安排,并在指定的延迟后安排,但我看的时间比一段时间更长.

有没有办法Runnable在2:00 进行执行,或者我是否需要计算从现在到2:00之间的时间,然后安排runnable在延迟后执行?

java scheduled-tasks executor runnable

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

在C#中创建的Excel图表上更改轴标签

所以我一直试图解决这个问题一段时间,但似乎无法到达任何地方.我正在使用C#创建Excel电子表格.我的电子表格包含一个图表.我可以用图表做任何事情除了更改X轴标签.我已经尝试过几乎所有我能找到但没有任何作用的东西.

Excel.ChartObjects xlChart = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);
Excel.ChartObject myChart = (Excel.ChartObject)xlChart.Add(1420, 660, 320, 180);
Excel.Chart chartPage = myChart.Chart;
chartPage.ChartType = Excel.XlChartType.xlXYScatterLines;
chartPage.HasTitle = true;
chartPage.ChartTitle.Text = "Title Text";
chartPage.HasLegend = false;

var yAxis = (Excel.Axis)chartPage.Axes(Excel.XlAxisType.xlValue,Excel.XlAxisGroup.xlPrimary);
yAxis.HasTitle = true;
yAxis.AxisTitle.Text = "Y-Axis Title text";
yAxis.MaximumScale = 20;
yAxis.AxisTitle.Orientation = Excel.XlOrientation.xlUpward;

Excel.Range Data_Range = xlWorkSheet.get_Range("A10", "C10");//Data to be plotted in chart
Excel.Range XVal_Range = xlWorkSheet.get_Range("A1", "C1");//Catagory Names I want on X-Axis as range
var x_labels = new List<string>() { "Val1", "Val2", "Val3" }; //Catagory …
Run Code Online (Sandbox Code Playgroud)

c# excel charts

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

在Google Web Toolkit中使用Google Font API

Google Web Toolkit应用程序中使用Google Web Fonts有什么最佳做法吗?我最初的倾向是直接在我的.html文件中添加css引用,la

<link href='http://fonts.googleapis.com/css?family=Josefin+Sans:light,regular,bold' rel='stylesheet' type='text/css'>
Run Code Online (Sandbox Code Playgroud)

但我不确定这是否是最好的方法.在这里使用ClientBundle有什么好处(或任何方式)?

gwt google-font-api

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

Google Guava/Equivalence /不同的equals()和hashCode()方法实现

我希望能够在两个equals-Implementations之间切换,但我不确定EquivalenceGoogle Guava 的类是否可以提供此功能.假设我有两个equals方法equalsContent()和equalsKeys()或类似的东西我想以某种方式将equals方法委托给两个私有方法之一(对于两个hashCode方法也是如此).

好吧,我不知道Equivalence抽象类和Equivalences类(静态方法)的用法是什么.

此外,您将如何实现上述所需的属性?我可以使用另一个简单地为值设置标志或枚举的方法,并使用两个抽象方法(equals(),hashCode())在枚举中实现两个equals和hash方法,并简单地调用enum.equals()或enum equals()和hashCode()方法中的.hashCode().你怎么看?

java guava

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

GWT UiBinder和Image Sprites

我无法让CSS图像精灵出现在GWT UiBinder中.我确实回顾了如何在GWT中使用图像精灵?,但发现我已经做了建议.

我有一个ui.xml,ClientBundle接口与CssBundle嵌套接口,和一个CSS文件.

ui.xml:

<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui">
    <ui:with field="resources"
    type="edu.wts.upholdingthetruth.poweroftheword.client.resources.POWResources" />

    <g:FlowPanel width="100%" styleName="{resources.sprites.underMenuGlow}" />
</ui:UiBinder> 
Run Code Online (Sandbox Code Playgroud)

ClientBundle:

public interface POWResources extends ClientBundle {
    public static final POWResources INSTANCE = GWT.create(POWResources.class);

    @Source("site1/undertopglow.png")
    ImageResource underTopGlow();

    @Source("sprites.css")
    public Sprites sprites();

    public interface Sprites extends CssResource {

            String underMenuGlow();
    }

    // other stuff
}
Run Code Online (Sandbox Code Playgroud)

sprites.css:

@sprite .underMenuGlow {gwt-image: "underTopGlow"}
Run Code Online (Sandbox Code Playgroud)

所以,我编译我的应用程序(没有抱怨),并在浏览器中,我的图像丢失.当我在Chrome的开发人员工具中查看该页面时,我看到相应的div引用了混淆的css类,但我无法在任何地方找到该类.

另一方面,我能够使用显示图像<g:Image resource="{resources.underTopGlow}" />.

有没有一个步骤,我想通过像这样的CSS精灵来显示图像?

gwt sprite uibinder clientbundle

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