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

来源:互联网 发布:电影不能有鬼知乎 编辑:程序博客网 时间:2024/04/29 12:12
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 blocke.printStackTrace();}}}}}
注释比较详细,其他不做赘述.
1 0