小编gip*_*ani的帖子

数据库 - [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序

当我尝试运行我的数据库程序时,我收到以下错误消息.这是我从我理解的问题中得到问题的文件之一.

在此先感谢您的帮助!

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6964)
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7121)
    at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:3080)
    at sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:323)
    at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:174)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:233)
    at data.DbManager.getAccessDbConnection(DbManager.java:201)
    at data.DbManager.<init>(DbManager.java:26)
    at user.Frame.<init>(Frame.java:10)
    at user.MainP8.main(MainP8.java:16)
Run Code Online (Sandbox Code Playgroud)

DbManager.java

package data;

import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

public class DbManager {

//Add to beginning of MS Access DB URL
private  String ACCESS_DB_URL_PREFIX =
    "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
//Add to end of MS Access DB URL
private …
Run Code Online (Sandbox Code Playgroud)

java sql odbc

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

Spring - Hibernate使用FlushMode提高事务性能

我正在努力提高我的asynk事务方法的性能.

在这个任务中,我必须从表中读取近7500条记录,详细说明,并在另一个表中插入/更新相应的行.

我正在使用spring数据jpa和hibernate.

为了得到一个ScrollableResults我注入EntityManager我的服务.

我在这里得到我的ScrollableResult对象:

Session session = (Session) em.unwrap(Session.class);
        ScrollableResults res = session.createQuery("from SourceTable s")
                .setCacheMode(CacheMode.IGNORE)
                .scroll(ScrollMode.FORWARD_ONLY);


while (res.next()){
.... // em.flush() called every 40 cycles
}
Run Code Online (Sandbox Code Playgroud)

循环结果大约需要60秒.

而这里的瓶颈.如果在我的循环中我执行一个简单的查询:

query = em.createQuery("from DestTable d where d.item.id = :id", DestTable.class);

 while (res.next()){
     query.setParameter("id", myId).getSingleResult();     
 }
Run Code Online (Sandbox Code Playgroud)

执行时间变得慢了x10 ..并且需要大约600秒.

我试图修改我Session或我的参数EntityManager:session.setFlushMode(FlushModeType.COMMIT); em.setFlushMode(FlushModeType.COMMIT);

它提高了性能并删除了手动flush()方法,工作在40年代完成!

所以我的问题是:

  • 是什么叫的差异setFlushModesession还是enityManager
  • 为什么要setFlushMode(FlushModeType.COMMIT);以这种方式增加性能,而且我只能通过手动刷新entityManager来获得相同的性能?

java spring hibernate entitymanager spring-data-jpa

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

@UiThread前/后执行

随着Android系统的注解,我可以代替AsyncTask<Param, Progress, Result>使用@UiThread.

但是可以处理像AsynkTask的onPreExcecute/onPostExecute这样的东西吗?

android-annotations

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

Django:自定义对象json序列化

我想以json格式序列化自定义对象,其中entryData是我的域对象的列表.像这样的东西:

{
    "total":2,
    "current":1,
    "entryData":[
        {
            "id":1,
            "version":0,
            "name":"Default Station"
        },
        {
            "id":2,
            "version":3,
            "name":"Default Station 1"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这是我在我的一次尝试中获得json输出所做的事情:

def ground_station_listgrid(request):
    entryData = serializers.serialize("json", GroundStation.objects.all())
    response_data = {}
    response_data['totalPages'] = 2
    response_data['currentPage'] = 1
    response_data['entryData'] = entryData

    return HttpResponse(json.dumps(response_data),mimetype='application/json')
Run Code Online (Sandbox Code Playgroud)

但结果是entryData被评估为一个字符串,引号被转义:

{
"totalPages": 1, 
"currentPage": 1, 
"entryData": "[{\"pk\": 1, \"model\": \"satview.groundstation\", ....
Run Code Online (Sandbox Code Playgroud)

我也尝试过这样的事情:

def ground_station_listgrid(request):

    response_data = {}
    response_data['totalPages'] = 1
    response_data['currentPage'] = 1
    response_data['entryData'] = GroundStation.objects.all()

    return HttpResponse(json.dumps(response_data),mimetype='application/json')
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个例外: [<GroundStation: nome>, <GroundStation: nome>, <GroundStation: nome>] is not JSON …

python django json

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

JPQL/SQL查询:'%'包含空值

我有一个简单的JPQL查询.(但这也适用于sql查询..)

FROM DomainObj d where d.field1 like 'TEST%' and d.field2 like '%';
Run Code Online (Sandbox Code Playgroud)

如果DB包含以下行:

1)field1 - >'TEST'; field2 - > null

查询什么都没回复!

如果DB包含以下值:

2)提交1 - >'测试'; field2 - >''

查询返回行!

如何在搜索类似'%'的同时包含空值,使查询尽可能简单(避免和/或子句?)

我正在实现在数据库中搜索实体的功能..我也同时搜索许多字段..

谢谢Marco

mysql sql database hibernate jpql

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

为什么@Qualifier不能与@Autowired一起使用?

我有一个类:

@Service
@Qualifier("VeoExecutionService")
public class VeoExecutionService implements ExecutionService {

}
Run Code Online (Sandbox Code Playgroud)

我在测试中使用它:

@Autowired
@Qualifier("VeoExecutionService")
private VeoExecutionService veoService;
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时我得到:

Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.trizic.service.veo.VeoExecutionService com.trizic.service.veo.VeoServiceImportAccountsTest.veoService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.trizic.service.veo.VeoExecutionService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=VeoExecutionService)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289)
... 29 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.trizic.service.veo.VeoExecutionService] found for dependency: expected at …
Run Code Online (Sandbox Code Playgroud)

spring spring-annotations

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

基于所有者用户的实体访问权限

我正在使用Spring安全性开发Spring MVC webapp.

根据记录的用户和当前访问的实体,我必须允许或拒绝用户查看或修改它.如果用户创建了实体,则他是所有者,并且他可以处理该实体.我可以验证它,因为entity.user == user.

我还有这样的情况,即只能通过获取实体的父级或n-parent来比较用户.例如entity.nestedEntity.user == user

我已经看到Spring安全性有ACL支持(域对象安全性),但我认为我无法处理"父方案".而且我不是从一个空数据库开始.另外我认为我需要为每个对象构建acl ..所以我认为这不是正确的方法.

到目前为止,我在检查控制器层,获取当前用户并将其与存储在请求对象中的用户进行比较.如果它们不相同,我会抛出一个AccessDeniedException.

为了让事情尽可能简单,我可以采取哪些替代方法?

谢谢Marco

spring spring-mvc spring-security

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

catch块内的Java异常

这是一个代码:

try {
    FileOutputStream fout=new FileOutputStream("path");
    javaClassFun(url,fout);
    fout.close();
} catch (MalformedURLException ex) {
    System.err.println("Invalid URL"+ex);
} catch (IOException e) {
    System.err.println("Input/Output error"+e);
}
Run Code Online (Sandbox Code Playgroud)

当我剪切最后一个catch块并在try块之后粘贴它时,它会给出无法访问的catch块错误.我想知道这背后的原因是什么.

java exception-handling

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

检测变量是否已用于赋值

我正在开发一个动态表单,其中定义的单元格可以:

  • 包含用户直接输入的值
  • 定义为公式(禁用用户输入)。

我需要一种向用户提供提示的方法,突出显示他/她必须填写以获得有效表单的单元格。

在其他作品中我可以

cellA -> 用户输入 cellB -> 用户输入 cellC -> 公式 = cellA + cellB cellA 和 cellB 是必需的(突出显示)。这种情况很容易处理。

我也可以有更复杂的公式,称之为脚本。例如

cellC =
    if(cellD == true)
    {
        cellC = cellA;
    }
    else 
    {
        cellC = cellB;
    }
Run Code Online (Sandbox Code Playgroud)

我想知道在 javascript 中是否可以理解 vars cellA 和 cellB 是否已被用作任何分配中的正确部分。

javascript

0
推荐指数
1
解决办法
56
查看次数

.net core AddSingleton初始化

我正在尝试注册一个单例类,在 Startup.ConfigureServices 方法中提供构造函数参数。

经过几次尝试,我仍然无法使 dbContext 注入工作

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddGrpc();
        services.AddDbContext<EFContext>();

        services.AddSingleton<OPCClient>(x =>
        {
            string endpointURL = "opc.tcp://xxx.yyy.zzz.nnn:12345";
            bool autoAccept = false;
            int stopTimeout = Timeout.Infinite;
            var efContext = x.GetService<EFContext>();

            OPCClient client = new OPCClient(endpointURL, autoAccept, stopTimeout, efContext);
            client.Run();

            return client;

        });
    }


    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        // warmup
        app.ApplicationServices.GetService<OPCClient>();

        app.UseRouting();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGrpcService<OPCService>();

            endpoints.MapGet("/", async context =>
            {
                await context.Response.WriteAsync("Communication with gRPC endpoints must be made through a …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core .net-core

0
推荐指数
1
解决办法
2488
查看次数

WPF 控件的授权

我正在开发与 WCF 服务交换数据的 WPF 客户端应用程序(MVVM 模式)。我试图找到一种有效的方法来处理呈现的屏幕(TextBlock、TextBox、GridView 等)中每个控件的IsVisibileIsEnabled属性。换句话说,我需要从授权的角度处理用户可以看到/做的事情。我已经处理上下文CanExecuteRelayCommand,但这是另一个需要。

这个想法是在渲染屏幕之前,调用远程服务以获取(所选屏幕,当前用户组)的控件配置。返回的数据是一个集合

ControlName (string) / IsEnabled (bool) / IsVisible (bool)

这可能看起来很奇怪,但应用程序运行在不同的站点上,这些站点具有不同的 Active Directory 组,对每个控件具有不同的含义和不同的需求。这种架构应该允许我在服务器端配置每个控件属性,删除对组名称或代码中任何内容的所有静态引用。

我的第一个想法是在代码隐藏中应用控件的配置(最后它只是一个屏幕构建任务)。我会为屏幕调用服务,从服务器获取组件配置,然后Control在屏幕中查找每个配置。如果控件名称与元素匹配,我将继续应用相关设置。这在几行代码中应该是可行的,但我认为RelayCommands 之后可能会覆盖该设置。

另一个想法可能是将每个控件映射到 ViewModel 中的相关属性......但我会在某些屏幕中提供大量属性,在我看来这不是很容易维护。

也许有更好的方法来做到这一点。处理控件授权的好方法是什么?

c# wpf mvvm

-1
推荐指数
1
解决办法
299
查看次数