在java中,如何连接数据库??

liweixiongjdd 2009-04-29 09:52:04
在java中,如何连接数据库??最好有代码
我用的是oracle 10g
还有就是那个jdbc驱动程序如何加载??
谢谢
...全文
119 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2009-04-30
  • 打赏
  • 举报
回复
3楼回答得很详细了。
另外,楼主可以考虑使用象hibernate之类的ORM框架,一切会变得更简单一些的。
luckyllp 2009-04-30
  • 打赏
  • 举报
回复
你去问问baidu里面很多!!
Jalien 2009-04-30
  • 打赏
  • 举报
回复
哈哈 那个静态块的方法很好 学习了~
[Quote=引用 3 楼 gousheng12345 的回复:]
这里有个例子给你看看吧,希望对你有帮助

  
//写在静态块里面 初始化一次就可以了 节省资源
static
{
try
{
Class.forName(str_driver);
System.out.println(str_url);
}
catch (ClassNotFoundException ex)
{
System.out.println("Error load" + str_driver);
}
}

[/Quote]
yujie0106 2009-04-30
  • 打赏
  • 举报
回复
在很急情况下,也百度一下,可以更快速搜索到想要的代码答案。
suwanjun881011 2009-04-29
  • 打赏
  • 举报
回复
楼上滴!我倒……
lz!!!!
记得导入Oracle安装目录下的jdbc中的lib下的class12.jar包!
gousheng12345 2009-04-29
  • 打赏
  • 举报
回复
这里有个例子给你看看吧,希望对你有帮助


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class DBConnection
{

static private String str_driver = "oracle.jdbc.driver.OracleDriver";

static private String str_url = "jdbc:oracle:thin:@"+str_server+":1521:PZH";

static private String str_user = "admin";

static private String str_pwd = "cdut";

private Connection conn = null;

private Statement stmt = null;

private ResultSet rs = null;

private String sql = null;
//写在静态块里面 初始化一次就可以了 节省资源
static
{
try
{
Class.forName(str_driver);
System.out.println(str_url);
}
catch (ClassNotFoundException ex)
{
System.out.println("Error load" + str_driver);
}
}

public DBConnection()
{
}

//获得一个 连接对象
private Connection getConnection()
{
try
{
if (conn == null || conn.isClosed())
conn = DriverManager.getConnection(str_url, str_user, str_pwd);
}
catch (Exception ex)
{
ex.printStackTrace();
return null;
}
return conn;
}

//获得一个Statement对象
private Statement getStatement()
{
try
{
if (stmt == null)
stmt = getConnection().createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
// 1. ResultSet.TYPE_FORWARD_ONLY (略)
// 2. ResultSet.TYPE_SCROLL_INSENSITIVE 双向滚动,但不及时更新,就是如果数据库里的数据修改过,并不在ResultSet中反应出来。
// 3. ResultSet.TYPE_SCROLL_SENSITIVE 双向滚动,并及时跟踪数据库里的更新,以便更改ResultSet中的数据。
// 4. ResultSet.CONCUR_READ_ONLY 只读取ResultSet
// 5. ResultSet.CONCUR_UPDATABLE 用ResultSet更新数据库

}
catch (Exception ex)
{
ex.printStackTrace();
return null;
}
return stmt;
}

//可执行查询语句 返回一个结果集合
public ResultSet executeQuery(String sql)
{
try
{
rs = getStatement().executeQuery(sql);
}
catch (SQLException ex)
{
System.err.println("query error:" + ex.getMessage());
}
return rs;
}

//执行一系列的sql语句 执行成功 返回true 否则false 并且回滚
public boolean executeBatch(java.util.ArrayList sqls)
{
boolean bRet = false;
try
{
conn = getConnection();
conn.setAutoCommit(false);
stmt = conn.createStatement();
for (int i = 0; i < sqls.size(); i++)
{
String sql = (String) sqls.get(i);
stmt.addBatch(sql);
}
stmt.executeBatch();
conn.commit();
bRet = true;
}
catch (Exception ex)
{
try
{
conn.rollback();
}
catch (Exception ex2)
{
System.err.println("rollback failed:" + ex2.getMessage());
}
ex.printStackTrace();
}
finally
{
}
return bRet;
}

//执行插入 删除 更新 返回一个数值 (INSERT、UPDATE 或 DELETE 语句)
public int executeUpdate(String sql)
{
int resultNum = 0;
try
{
resultNum = getStatement().executeUpdate(sql);
}
catch (SQLException ex)
{
System.err.println("update error:" + ex.getMessage());
}
finally
{
}
return resultNum;
}

//关闭资源
public void close()
{
try
{
if (rs != null)
{
rs.close();
rs = null;
}
if (stmt != null)
{
stmt.close();
stmt = null;
}
if (conn != null)
{
conn.close();
conn = null;
}
}
catch (Exception ex)
{
System.err.println("close error:" + ex.getMessage());
}
}

/**
* 打开数据库连接
*/
public void OpenConn() throws Exception
{
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
// String url = "jdbc:oracle:thin:@172.19.40.117:1521:PIPEGIS";
conn = DriverManager.getConnection(str_url);
}
catch (Exception e)
{
System.err.println("OpenConn:" + e.getMessage());

}
}

/**
* 执行sql语句,返回结果集re
*/
public ResultSet executeQuery2(String sql)
{
stmt = null;
rs = null;
try
{
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(sql);
}
catch (SQLException e)
{
System.err.println("executeQuery:" + e.getMessage());
}
return rs;
}

/**
* 执行sql语句
*/
public void executeUpdate2(String sql)
{
stmt = null;
rs = null;
try
{
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
stmt.executeQuery(sql);
}
catch (Exception e)
{
System.err.println("executeUpdate:" + e.getMessage());
}
}

/**
* 关闭数据库连接
*
*/
public void closeStmt()
{
try
{
conn.close();
}
catch (SQLException ex)
{
System.err.println("aq.closeConn:" + ex.getMessage());
}
}

/**
* 转换编码
*/
public static String toGBK(String str)
{
try
{
if (str == null)
{
str = "";
}
else
str = new String(str.getBytes("ISO-8859-1"), "GBK");
}
catch (Exception e)
{
System.out.println(e);
}
return str;
}

}
不善^ 2009-04-29
  • 打赏
  • 举报
回复
你安装好 ORACLE
在Oracle数据库安装文件夹中找到jdbc文件夹→lib文件夹→classesl2.jar
不善^ 2009-04-29
  • 打赏
  • 举报
回复
我博客有篇文章写的是如何连接ORACLE的
http://blog.csdn.net/java_cxrs/archive/2009/02/23/3929704.aspx
去看下吧

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧