当前位置:Gxlcms > 数据库问题 > Java访问数据库

Java访问数据库

时间:2021-07-01 10:21:17 帮助过:3人阅读

它由一组用Java语言编写的类和接口组成。 

JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。 

一、Java访问数据库的原理:

举个例子来讲:Oracle、SQLServer、MySQL、DB2等数据库可以类比为“水厂”,Connection类比为“水厂放水到小区的阀门”,Statement类比为“小区放水到家中的阀门”,ResultSet类比为“家中放水的阀门”。 

因此,当Java连接数据库的时候,先要打开水厂的阀门(Connection),然后打开小区的阀门(Statement),接着打开家中的阀门(ResultSet),这样水才能流到家中(数据库才能与用户端进行连接)。这之后,

才能使用水(JavaApp来操作结果集,进行增删改查CRUD)。 

同样的,连接关闭的原则:“先开后关,后开先关”,也就是:先关家里的阀门,再关小区的阀门,最后关水厂的阀门。如果直接先关掉小区的阀门而不先关家里的阀门,那可能会影响到小区其他家庭的使用。 

          JDBC访问数据库的步骤: 
            1.加载数据库驱动类 
            2.获得数据库连接 
            3.获得数据库操作句柄 
            4.获得结果集(查询) 
            5.处理结果集 
            6.关闭结果集 
            7.关闭操作句柄 
            8.关闭数据库连接 

二、导入数据库驱动程序(MySQL为例)和JUnit单元测试类

 导入数据库驱动程序的步骤: 
        工程名上点击右键 -> Build Path -> Configure Build Path -> 在Libraries中,点击Add External JARs -> 进入MySQL的解压包里的mysql-connector-java-5.1.36-bin.jar。可以去MySQL官网下载,注意

        之后可以在Window->Open Perspective->MyEclipse Database Explorer里 new一个新的MySQL Connector/J。(其它数据库类似,也需导入各自的数据库驱动程序)

导入JUnit的步骤: 
        工程名上点击右键 -> Build Path -> Add Libraries -> 选择JUnit,点击Next -> 选择JUnit 4,单击Finish -> 导入成功。 

这两步完成之后,接下来就可以写代码了。 

三、JDBC处理的步骤:

1.建表 / 建序列 / 初始化数据 
  (使用 PL/SQL Developer 工具完成) 
  Table:dept 
  
2.实体类/POJO/JavaBean/封装类  
  Class:Dept 
  
3.导入 数据库驱动程序 到工程  
  ojdbc6.jar  (Oracle11g) 
  ojdbc14.jar (Oracle10g) 
  
4.新建数据库工具类: 
  4.1 获取数据库连接的方法 
  4.2 关闭数据库连接的方法  
  
5.新建dao类封装对数据库的所有操作 (增删改查 - CRUD) 

四,下面贴出代码:使用实体类封装数据库表

实体类(pojo类):其作用是用来封装表中的一条数据。(或:用来封装类的属性和方法)。 

表中的一条记录:对应于一个实体。 

写实体类:必须写三部分:属性、默认构造方法(无参构造方法)、setter和getter方法。其他方法:用到才写,不用就不写。

package com.gm.pojo;  
  
import java.io.Serializable;  
  
/** 
 * 实体类(pojo类) 
 *  
 * @author XiangdongLee 
 *  
 */  
public class Dept implements Serializable {  
    private static final long serialVersionUID = 1L;  
    private Integer deptno;  
    private String dname;  
    private String loc;  
  
    public Dept() {  
        super();  
    }  
  
    public Integer getDeptno() {  
        return deptno;  
    }  
  
    public void setDeptno(Integer deptno) {  
        this.deptno = deptno;  
    }  
  
    public String getDname() {  
        return dname;  
    }  
  
    public void setDname(String dname) {  
        this.dname = dname;  
    }  
  
    public String getLoc() {  
        return loc;  
    }  
  
    public void setLoc(String loc) {  
        this.loc = loc;  
    }  
  
}  

五,下面贴出代码:创建数据库工具类,来获得数据库连接与关闭数据库连接(以MySQL为例,其它数据库只需更改drivername,url)

package com.gm.dao;  
  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.PreparedStatement;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
  
/** 
 * DBUtil:数据库工具类 
 *  
 * @author XiangdongLee 
 *  
 */  
public class DBUtil {  
    /** 
     * 获得数据库连接 
     *  
     * @return 
     */  
    public static Connection getConnection() {  
        Connection conn = null;  
        String driverName = "com.mysql.jdbc.Driver";  
        String url = "jdbc:mysql://localhost:3306/dbmin";  
        String username = "scott";  
        String password = "tiger";  
  
        try {  
            Class.forName(driverName);  
            conn = DriverManager.getConnection(url, username, password);  
        } catch (ClassNotFoundException e) {  
            System.out.println("加载数据库驱动出错...");  
            e.printStackTrace();  
        } catch (SQLException e) {  
            System.out.println("获得数据库连接出错...");  
            e.printStackTrace();  
        }  
        return conn;  
    }  
  
    /** 
     * 关闭数据库连接 
     *  
     * @param conn 
     * @param ps 
     * @param rs 
     */  
    public static void close(Connection conn, PreparedStatement ps, ResultSet rs) {  
        // 关闭原则:先开后关,后开先关  
        if (rs != null) {  
            try {  
                rs.close();  
            } catch (SQLException e) {  
                e.printStackTrace();  
            }  
        }  
  
        if (ps != null) {  
            try {  
                ps.close();  
            } catch (SQLException e) {  
                e.printStackTrace();  
            }  
        }  
  
        if (conn != null) {  
            try {  
                conn.close();  
            } catch (SQLException e) {  
                e.printStackTrace();  
            }  
        }  
    }  
  
    public static void main(String[] args) {  
        System.out.println(getConnection());  
    }  
}  

接下来就可以创建dao类,来封装数据表的所有操作(增删改查CRUD)

Java访问数据库

标签:

人气教程排行