当我尝试运行我的数据库程序时,我收到以下错误消息.这是我从我理解的问题中得到问题的文件之一.
在此先感谢您的帮助!
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) 我正在努力提高我的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年代完成!
所以我的问题是:
setFlushMode上session还是enityManager?setFlushMode(FlushModeType.COMMIT);以这种方式增加性能,而且我只能通过手动刷新entityManager来获得相同的性能?随着Android系统的注解,我可以代替AsyncTask<Param, Progress, Result>使用@UiThread.
但是可以处理像AsynkTask的onPreExcecute/onPostExecute这样的东西吗?
我想以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 …
我有一个简单的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
我有一个类:
@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 MVC webapp.
根据记录的用户和当前访问的实体,我必须允许或拒绝用户查看或修改它.如果用户创建了实体,则他是所有者,并且他可以处理该实体.我可以验证它,因为entity.user == user.
我还有这样的情况,即只能通过获取实体的父级或n-parent来比较用户.例如entity.nestedEntity.user == user
我已经看到Spring安全性有ACL支持(域对象安全性),但我认为我无法处理"父方案".而且我不是从一个空数据库开始.另外我认为我需要为每个对象构建acl ..所以我认为这不是正确的方法.
到目前为止,我在检查控制器层,获取当前用户并将其与存储在请求对象中的用户进行比较.如果它们不相同,我会抛出一个AccessDeniedException.
为了让事情尽可能简单,我可以采取哪些替代方法?
谢谢Marco
这是一个代码:
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块错误.我想知道这背后的原因是什么.
我正在开发一个动态表单,其中定义的单元格可以:
我需要一种向用户提供提示的方法,突出显示他/她必须填写以获得有效表单的单元格。
在其他作品中我可以
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 是否已被用作任何分配中的正确部分。
我正在尝试注册一个单例类,在 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) 我正在开发与 WCF 服务交换数据的 WPF 客户端应用程序(MVVM 模式)。我试图找到一种有效的方法来处理呈现的屏幕(TextBlock、TextBox、GridView 等)中每个控件的IsVisibile和IsEnabled属性。换句话说,我需要从授权的角度处理用户可以看到/做的事情。我已经处理上下文CanExecute中RelayCommand,但这是另一个需要。
这个想法是在渲染屏幕之前,调用远程服务以获取(所选屏幕,当前用户组)的控件配置。返回的数据是一个集合
ControlName (string) / IsEnabled (bool) / IsVisible (bool)
这可能看起来很奇怪,但应用程序运行在不同的站点上,这些站点具有不同的 Active Directory 组,对每个控件具有不同的含义和不同的需求。这种架构应该允许我在服务器端配置每个控件属性,删除对组名称或代码中任何内容的所有静态引用。
我的第一个想法是在代码隐藏中应用控件的配置(最后它只是一个屏幕构建任务)。我会为屏幕调用服务,从服务器获取组件配置,然后Control在屏幕中查找每个配置。如果控件名称与元素匹配,我将继续应用相关设置。这在几行代码中应该是可行的,但我认为RelayCommands 之后可能会覆盖该设置。
另一个想法可能是将每个控件映射到 ViewModel 中的相关属性......但我会在某些屏幕中提供大量属性,在我看来这不是很容易维护。
也许有更好的方法来做到这一点。处理控件授权的好方法是什么?