JDBC连接数据库

来源:互联网 发布:网络侦探进化条件 编辑:程序博客网 时间:2024/06/13 15:23

JDBC的概念

JDBC: Java DataBase Connectivity  Java数据库连接技术

主要功能:

1.创建与数据库的连接

2.执行SQL语句

3.获得SQL语句的执行结果

 

java链接数据库步骤

 

1 加载驱动

  为了实现与特定的数据库相连,JDBC必须加载相应的驱动程序类。这通常可以采用Class.forName()方法显式的加载一个驱动程序类。

  Class.forName("oracle.jdbc.driver.OracleDriver");com.mysql.jdbc.Driver

 

2 DriverManager 获取链接

DriverManager类是JDBC的管理层,作用于用户和驱动之间。DriverManager可以跟踪可用的驱动程序,并在数据库相应的驱动程序之间建立连接。DriverManager类中的getConnection()方法实现与url所指定的数据源建立连接并返回一个Connection类的对象,当调用getConnection()方法时,DriverManager类首先从已经加载的驱动程序中找到可以接受该数据库URL的驱动程序,然后请求相应的驱动程序来使用URL,用户名,密码连接到数据库,于是建立了与数据库的链接,可以返回Connection对象。

 

  DriverManager(url,username,password)

  url="jdbc:oracle:thin:@localhost:1521/orcl"

 

  oracle 1521

  mysql  3306

 

3 执行SQL语句

要想执行Sql语句的话,要创建statement对象

Statement stmt = conn.createStatement();

executeQuery():用与产生单个结果集的语句,例如:select语句

结果集用ResultSet对象接收

ResultSet rs=null;

调用ResultSet对象的next()方法得到该集合中新的一行。如果ResultSet集合多于一行,可以用一个循环将它取出

例如:

String sql="select ename from emp";

//现阶段,请大家记住executeQuery用来执行查询语句,返回结果是resultSet对象

    ResultSet rs=st.executeQuery(sql);

    while(rs.next()){

     System.out.println(rs.getString("ename"));

    }

executeUpdate():insert ,update,delete语句(结果返回一个整数,指示受影响的行数)dml

               SQL DLL(数据定义语言),例如:Create talbeDrop table(返回值总为零)

String sql="delete from emp where empno=7369";

//executeUpdate用来执行DML

int a=st.executeUpdate(sql);

System.out.println(a);

if(a>0){

System.out.println("删除成功");

}else{

System.out.println("删除失败");

}

 

execute():用于返回多个结果集,多个更新计数或二者组合的语句,一般不会需要该高级功能。

 

4 关闭连接   conn  st  rs  从小到大  

     rs.close();

     st.close();

     conn.close();  


package com.util;


import java.io.ObjectInputStream.GetField;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

public class Jdbc {
    protected Connection conn;
    protected Statement stmt;
    protected ResultSet ret;
    private String url="jdbc:mysql:///test1";//数据库连接地址test1是数据库名
    private String user="root";//数据库用户名
    private String pass="root";//密码
    //获取数据库连接
    public ArrayList<String> getCoon(){
        ArrayList<String> al=new ArrayList<String>();
        try {
            //第一步加载驱动
            Class.forName("com.mysql.jdbc.Driver");
            //第二步是获取数据库连接
            conn=DriverManager.getConnection(url, user, pass);
            //第三步是执行sql语句
            //执行sql语句前要创建连接对象
            stmt=conn.createStatement();
            String sql="select * from emp";
            ret=stmt.executeQuery(sql);
            while(ret.next()){
                al.add(ret.getString("emp_id"));
                al.add(ret.getString("emp_name"));
                al.add(ret.getString("sale"));
                al.add(ret.getString("birthday"));
                al.add(ret.getString("sex"));
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return al;
    }
    public static void main(String[] args) {
        ArrayList<String> al=new ArrayList<String>();
        al.addAll(new Jdbc().getCoon());
        System.out.println(al);
    }
    public void close(){
        try {
                if(conn!=null){
                    conn.close();
                    if(stmt!=null){
                        stmt.close();
                        if(ret!=null){
                            ret.close();
                        }
                    }
                }
            
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    }
}

原创粉丝点击