Java数据库面试题

事务的四大特性:原子性 一致性 持久性 隔离性
jdbc:叫做Java数据库连接
jdbc接口及相关类在Java.sql包和javax.sql包中,
jdbc接口让Java程序和jdbc驱动实现了松耦合,是的切换不同的额数据库变得更加简单。

jdbc时如何实现Java程序和jdbc驱动的松耦合?
jdbcapi使用Java的反射机制来实现Java程序和jdbc驱动的松耦合。
驱动只有通过Class.forName()反射机制来加载的时候才会出现。

连接池:
dbcp 没有回收机制 c3p0由回收机制(hibernate和spring那边也是用这个,是jdbc实现jndi和数据源绑定的)

jdbc连接数据库的步骤:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/*
 * 连接数据库
 */
public class jdbc {

    Connection conn=null;
    PreparedStatement psmt=null;
    ResultSet rs=null;
    public Connection getConnections(){
        String username="wang";
        String password="wang";
        String dirver="oracle.jdbc.driver.OracleDriver";
        String url="jdbc:oracle:thin:@localhost:1521:orcl";


        try {
            Class.forName(dirver);
            conn=DriverManager.getConnection(url, username, password);
            String sql="";
            psmt=conn.prepareStatement(sql);
            rs=psmt.executeQuery();
            while(rs.next()){
                System.out.println();
            }
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        r



et
ur
n conn;
    }

}

oracle数据库的隔离级别属于提交读取,保证不会脏读取,但会出现幻读和非重复提交。
数据库中的锁:
   乐观锁——只有当更新数据的时候才会锁定记录。 悲观锁——从查询到更新和提交整个过程都会对数据记录进行加锁

数据库的函数存储过程有什么不同?
存储过程是用户定义的一系列sql语句的集合,涉及特定表挥着其他对象的任务,用户可以调用存储过程,而函数同城是书库已定义的方法,他接受的参数并返回某种类型的值并且不涉及特定用户表。还有就是村属过程没有返回值,函数由返回值,处理sql语句的时候比较使用。
数据库的隔离级别:五种
“`
第一种化不支持事务
第二种:未提交读,说明在提交事务前一个 事务可以看到另一个事务的变化。这样读取“脏数据”,不可重复读取护着虚读都是允许的。
第三种:已提交读,说明读取未提交的数据是不允同的数据不失败,但徐读回出现,

,事务的最高境界,防止读脏

五种:序列化,是事务的最高境界
`这里写代防止读 数据,不可重复读取,和幻读。

DDL和DML是什么?DML是数据库操作语句如select delete等由据的 DDL是数据库定义模式,如drop create等没有返回值的。
“`

你可能感兴趣的:(面试题)