想知道是否建议传递数据库连接对象(到其他模块)或让方法(在另一个模块中)负责设置它.我倾向于让方法设置它,以便在使用之前不必检查连接的状态,只是让调用者将任何所需的数据传递给设置连接所需的调用方法.
我在linux机器上有一个正在运行的PostgreSql本地实例.当我使用psqlshell中的命令时,我成功登录而没有任何问题.我需要通过JDBC连接到PostgreSql,但我不知道究竟应该将什么作为url参数传递给DriverManager.getConnection().
它应该从jdbc:postgresql:但接下来会发生什么?
系统组告诉我,创建了一个像用户名一样的数据库.例如,如果我的用户是jutky一个名为db的jutky创建者,但是当我尝试打开一个连接时,jdbc:postgresql:jutky我收到一个错误
org.postgresql.util.PSQLException: FATAL: password authentication failed for user "jutky"
:(
附加信息
当我通过psql提示登录时,我没有提示输入密码,所以当我尝试通过JDBC登录时,我传递一个空字符串作为密码 - 它是正确的,还是我应该通过null什么?
当我输入psql --helpshell时,我看到其余的这一行:
Connection options:
-h, --host=HOSTNAME database server host or socket directory (default: "/var/run/postgresql")
Run Code Online (Sandbox Code Playgroud)
所以我理解我通过a连接到PostgreSql socket directory,这对JDBC中的URL字符串有用吗?
编辑
首先要感谢答案.
第二:它不是我第一次使用JDBC,特别是我第一次从JDBC连接到PostgreSql,所以我知道一般规则,我已经阅读了文档.但是在描述的情况下,我不确定如果实例正在运行socket directory并且我应该提供什么密码,我应该如何构造连接字符串.因为当我通过登录时,psql我根本没有提示输入密码.
提前致谢.
有没有办法从java中的DataSource类中获取主机名?我的意思是,我有一个DataSource对象(DS),它被注释以获取Jboss数据源.无论如何,我想获得该DS中使用的主机名.
调试,我可以这样看:我从DS获得连接,然后我得到DataSourceMetaData,其中有一个名为Protocol Connection的东西,它有主机名,但我不知道如何得到它.
这里有人知道怎么样?或另一种获取主机名的方法?提前致谢.亲切的问候,RDAM
我正在试图找出如何在使用actor系统时最好地处理数据库操作.事实上,当我们尝试不阻止AKKA时,数据库操作正在阻塞.
我在主文档中指出,处理这种情况的一种方法是在路由器后面创建一个actor池,可能在一个单独的executionContext上,它将处理数据库访问.
因此,我有以下问题:
1 - databaseActors是否始终保持连接打开状态?
2 - 它如何与许多数据库提供的连接池一起工作?
3 - 我们应该将两者结合起来,并让DatabaseActors在每次请求时从池请求一个新的连接.如果没有,是不是一直保持连接打开是一件坏事?
4 - 有人可以向我解释微妙的事情,使其成为一种避免线程饥饿的方法.例如,使用Play或spray,请求的处理是异步任务,但是如果该任务需要数据库访问并且我们向DatabaseActor发送请求,那么数据库Actor上的块(如果它发生)不会导致,异步任务中的一个块,导致可能的线程不足?
5 - 100%确定DB ACID属性确保多次读写的安全性,因此在关系之前发生.
6 - 我正在使用也称为三重存储的语义数据库,并在我的请求中大量使用语义推理功能.我还执行了很多写访问,任何建议,关于池和actor编号或专用执行上下文的调整参数?
最好,
中号
在.netCore库中,我想连接到Oracle数据库.我有什么方法可以做到吗?
我已经在另一个SO帖子上尝试了这些建议,但它不起作用,也许从那以后就删除了?正如你在我的project.json中看到的,我正在尝试使用"net461".
我目前正在尝试通过老式的ADO.Net使用Oracle.ManagedDataAccess.Client.我也知道Oracle尚未购买.netCore连接器.但即使在那里,我也无法让它工作,它很难获得System.Data,每当我尝试添加它时都会出错.
我的project.json看起来像这样:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"Oracle.ManagedDataAccess": "12.1.24160719",
},
"frameworks": {
"netstandard1.6": {
"imports": [
"dnxcore50",
"net461"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我此刻尝试这样做的方式.
using Oracle.ManagedDataAccess.Client;
public class MyRepository
{
public string GetServerVersion()
{
var _db = new OracleConnection("User Id=myUser;Password=myPassword;Data Source=MyOracleConnection");
var serverVersion = _db.ServerVersion;
return serverVersion;
}
}
Run Code Online (Sandbox Code Playgroud)
但是上面没有编译,因为它没有System.Data,我正在努力导入.
我没有根据任何特定的方式做到这一点,我只想在这个时间点找到最合理的选择.
我的问题是关于ORM和JDBC技术,与JDBC和其他方式相比,您决定使用ORM技术的标准是什么?
谢谢.
当我尝试删除或恢复数据库时,SQL Server一直告诉我数据库正在使用,但是当我运行此元数据查询时:
select * from sys.sysprocesses
where dbid
in (select database_id from sys.databases where name = 'NameOfDb')
Run Code Online (Sandbox Code Playgroud)
它什么都不返回.
有时它会返回1个进程,这是一个CHECKPOINT_QUEUE waittype.如果我试图杀死那个进程,它就不会让我(不能杀死非用户进程).
任何人都知道什么是错的?
每当我有一个使用ActiveRecord的应用程序时,我得到这个ConnectionTimeoutError - 但总是在一段未知的时间之后
ActiveRecord::ConnectionTimeoutError (could not obtain a database connection within 5 seconds. The max pool size is currently 30; consider increasing it.):
Run Code Online (Sandbox Code Playgroud)
它之前设置为5,我们已经增加了它,并且它无法同时使用30个连接.我们使用ActiveRecord的唯一方法是我们的会话存储.
我们的database.yml文件如下所示:
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 30
timeout: 5000
Run Code Online (Sandbox Code Playgroud)
(测试和生产设置相同)
我一直在谷歌搜索这个事件,刚刚发现这个帖子:
https://groups.google.com/forum/#!msg/copenhagen-ruby-user-group/GEHgi_WudmM/gnCiwWqmVfMJ
哪个提到ActiveRecord一旦完成就不会检查连接回池?真的吗?我是否需要手动管理连接?
我很感激任何建议!!
编辑我应该提一下我正在运行Rails 3.1.3
activerecord database-connection ruby-on-rails connection-timeout ruby-on-rails-3.1
我知道Java中的安全模式是在finally块中按顺序关闭ResultSet,Statement和Connection.
如果你关闭连接然后尝试关闭语句(不抛出异常).但是,如果您尝试从语句中调用任何方法,则会抛出异常.
我想知道关闭连接会自动关闭从该连接创建的所有语句对象吗?
更新:
我正在使用DatabaseProductVersion:Oracle Database 11g 11.1.0.0.0版
DriverName:Oracle JDBC驱动程序
DriverVersion:10.2.0.4.0
我在Linux机器上使用sqlite3,我在没有用户名和密码的情况下获取数据库.我可以设置相同的用户名和密码吗?
java ×4
c# ×2
jdbc ×2
.net ×1
activerecord ×1
actor ×1
ado.net ×1
akka ×1
asp.net-core ×1
database ×1
datasource ×1
hostname ×1
oracle ×1
orm ×1
postgresql ×1
scala ×1
sql-server ×1
sqlite ×1
username ×1