我想为2个数据库创建一个简单的应用程序-oracle和postgresql。有没有办法对所有数据库使用一个java代码?我试过这个:
public String init()
{
String user_name = null;
try
{
Context ctx = new InitialContext();
if (ctx == null)
throw new Exception("Boom - No Context");
DataSource ds = (DataSource) ctx.lookup("jdbc/DefaultDB");
if (ds != null)
{
Connection conn = ds.getConnection();
if (conn != null)
{
Statement stmt = conn.createStatement();
ResultSet rst = stmt.executeQuery("select id, user_name from user where username = " + user);
if (rst.next())
{
user_name = rst.getString("user_name");
}
conn.close();
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
return user_name;
}
如何将准备好的语句用于此代码?
2条答案
按热度按时间jexiocij1#
这是一个非常广泛的问题,但多数据库兼容性的常用方法有两个:
将所有sql语句放在资源文件中,并在运行时加载相应的资源
如果语句或逻辑结构不同(需要不同的参数等),请为两个数据库编写逻辑,并根据所使用的数据库选择正确的路径。
一些数据库抽象层(hibernate、springjdbc)可以帮助您完成很多工作,但是您仍然需要非常清楚它们之间的区别和代码。
mqxuamgl2#
您可以通过一个java代码处理多个数据库,但如下所示,
每个数据库需要设置单独的连接
你可以用
PreparedStatement
进入你的code
同样地,