public void testOracle()
创新互联建站,专注为中小企业提供官网建设、营销型网站制作、成都响应式网站建设、展示型网站建设、做网站等服务,帮助中小企业通过网站体现价值、有效益。帮助企业快速建站、解决网站建设与网站营销推广问题。
{
Connection con = null;// 创建一个数据库连接
PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用Statement
ResultSet result = null;// 创建一个结果集对象
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
System.out.println("开始尝试连接数据库!");
String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE";// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库名
String user = "system";// 用户名,系统默认的账户名
String password = "147";// 你安装时选设置的密码
con = DriverManager.getConnection(url, user, password);// 获取连接
System.out.println("连接成功!");
String sql = "select * from student where name=?";// 预编译语句,“?”代表参数
pre = con.prepareStatement(sql);// 实例化预编译语句
pre.setString(1, "刘显安");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引
result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数
while (result.next())
// 当结果集不为空时
System.out.println("学号:" + result.getInt("id") + "姓名:"
+ result.getString("name"));
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try
{
// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
// 注意关闭的顺序,最后使用的最先关闭
if (result != null)
result.close();
if (pre != null)
pre.close();
if (con != null)
con.close();
System.out.println("数据库连接已关闭!");
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
具体的代码如下:
/// summary
/// Oracle 的数据库连接字符串.
/// /summary
private const String connString =
@"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.210)
(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User
Id=TEST;Password=TEST123";
192.168.1.210 是 Oracle 数据库服务器的 IP 地址
1521 是 默认的端口号
SERVICE_NAME=ORCL 意思是Oracle 数据库服务是ORCL
后面就是用户名密码了。
扩展资料:
部分描述:
abstract:可以和类、方法、属性、索引器及事件一起使用,标识一个可以扩展但不能被实体化的、必须被实现的类或方法。
as:一个转换操作符,如果转换失败,就返回null。
base:用于访问被派生类或构造中的同名成员隐藏的基类成员。
catch:定义一个代码块,在特定类型异常抛出时,执行块内代码。
checked:既是操作符又是语句,确保编译器运行时,检查整数类型操作或转换时出现的溢出。
const:标识一个可在编译时计算出来的变量值,即一经指派不可修改的值。
delegate:指定一个声明为一种委托类型。委托把方法封装为可调用实体,能在委托实体中调用。
enum:表示一个已命名常量群集的值类型。
event:允许一个类或对象提供通知的成员,他必须是委托类型。
explicit:一个定义用户自定义转换操作符的操作符,通常用来将内建类型转换为用户定义类型或反向操作,必须再转换时调用显示转换操作符。
extern:标识一个将在外部(通常不是c#语言)实现的方法。
参考资料来源:百度百科-c#
oracle中多表连接有很多种方式:
1、表与表连接有三种方式Nested loop, Hash join, Sort merge join。
2、Nested Loop就是循环嵌套的连接方法,对于被连接子集都是比较小的话,嵌套循环就是比较好的选择。在嵌套中,内表被外表驱动,外表做一次循环,内表针对外表的每一行做循环。
3、这种表的返回结果集不能太大,否则就效率实在太低的,而且还要用在表都有索引的情况下才行的。
4、Sort Merge Join 用在数据没有索引,并且数据必须是都排序号的情况。
5、总之,两表之间相连,会根据表之间的不同情况选择不同的连接方式,连接其实就是做表之间每行数据的遍历,连之前都要做好准备,有么用索引,要么用已排序号的表,要么就用hash算法,不存在什么都不准备的纯遍历循环。
6、三种连接使用前提,当表都排序号的话用Sort Merge Join连接,当两表都差不多大而且都还有索引就用Nested Loop的嵌套连接,当没有索引也没排序,而且数据量大的情况下就用这个hash算法进行相连。
举个例子给你写,你写的也不太明白,最好列举数据来演示下。给你个思路参考吧。
select t.* from (select * from a full join b on a.id=b.id) t where ……
也就是a和b正常全连接,然后作为一个结果集,在结果集中二次筛选。
左外联接的时候保证左面的表的数据是完整的然后从右面的表中符合条件的链接到左面的表当中。右外连接的话是保证右面的所有数据行连接以后都存在,从左面的表里面把符合条件的行链接到右表的操作。那么全连接就是保证左右表的所有数据行都存在与连接后的表当中的连接。假设有下面两张表以字段A做左外连接,右外连接,全连接。
table A table B
A B C A E F
1 1 1 1 2 3
2 2 2 3 4 5
左外连接
A B C E F
1 1 1 2 3
2 2 2
右外连接
A B C E F
1 1 1 2 3
3 4 5
全连接
A B C E F
1 1 1 2 3
2 2 2
3 4 5