JAVA中数据库的连接一般方法


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();
				}
			}
		}
	}
}
注释比较详细,其他不做赘述.
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值