import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* JDBC:java数据库链接 使用JDBC连接数据库的基本流程(此处使用Oracle)
* 1:加载驱动类
* 2:与数据库建立连接
* 3:执行SQL语句
* 4:处理结果集
* 5:关闭连接
*
* @author ^_^
*
*/
public class JDBCDemo {
public static void main(String[] args) {
String orc="oracle.jdbc.driver.OracleDriver";
//java.sal.Connection
//表示与数据库的连接
Connection conn=null;
try {
/*
* 1:
* 加载驱动
* 需要注意,不同的数据库,参数那个字符串内容不同
*
* 这一步执行完后也许抛出:
* ClassNotFoundException异常
* 出现原因如下:
* 1:数据库驱动的jar包没有导入到环境变量当中
* 2:Class.forName中的字符串拼写错误
*/
Class.forName(orc);
System.out.println("驱动加载成功");
/*
* 2:通过DriverManager建立与数据库的连接
* 其静态方法getConnection用于获取连接
* 通常需要三个参数
* 参数1:数据库的地址以及端口(不同数据库字符串内容不相同)
* 格式:jdbc:oracle:thin:@host:port:sid
* 参数2:数据库用户名
* 参数3:数据库密码
*/
conn=DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe",//数据库的地址及其端口
"system", //数据库用户名
"8nianji7ban"//数据库密码
);
System.out.println("数据库已经连接");
/*
* 3:java.sql.Statement
* 该类用于执行SQL语句并获取结果
*/
Statement state =conn.createStatement();
//System.out.println("QQQQQ");
String sql="select ename,job,sal,deptno from emp";//当前需要执行的数据库语句
System.out.println(sql);
/*
* Statement针对不同的SQL语句提供了不同的执行方法:
* ResultSet executeQuery(String aql)
* 该方法专门用来执行DQL语句,返回的ResultSet表示查询出来的结果集
*
* int executeUpdate(String sql)
* 该方法专门用来执行DML语句,返回的数字表示执行该语句后影响了表中多少条数据
*
* boolean execute(String sql)
* 该方法理论上什么语句都可以运行,但是由于DQL,DML都有专门的方法,所以该方法通常用来执行DDL语句
* 该方法的返回值表示执行SQL语句后是否存在结果集,存在返回true
* 若SQL语句本身就有错误,直接抛出异常:SQLException
*/
System.out.println("正在执行查询");
ResultSet rs=state.executeQuery(sql);//返回一个结果集
System.out.println("查询完毕");
/*
* 4:遍历结果集(查询结果)
* ResulSet提供用于遍历结果集的方法
* boolean next()
* 该方法有两个作用,首先当我们查询出结果集后RS的指针指向第一条数据之上,所以我们需要先调用一次next()
* 使其指针移动到第一条数据上,并表示该条数据
* 第二个作业是看返回值,若指针向下移动后,发现没有数据了,会返回false,若有则返回true,所以我们只有在该方法返回true的时候才获取当前记录的各个字段对应的值
*
* RS还提供了若干getXXX(String fieldName)
* 方法:
* 该方法是用来获取RS表示的当前记录当中给定字段对应的值,不同的字段由于类型不同,要调用相对应的方法
* 例如:varchar2类型就调用getString
*/
while(rs.next()){
//获取员工名字
String ename=rs.getString("ename");
String job=rs.getString("job");
int sal=rs.getInt("sal");
int deptno=rs.getInt("deptno");
System.out.println(ename+","+job+","+sal+","+deptno);
}
rs.close();
state.close();
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
注释比较详细,其他不做赘述.
JAVA中数据库的连接一般方法
最新推荐文章于 2024-07-10 21:58:42 发布