JDBC(1)简单介绍/数据库的连接

 

初始JDBC:

JDBC是java连接数据库的一个工具,没有这个工具,java将无法和数据库进行连接。

 

JDBC API:

JDBC是个“低级”接口,也就是说,他直接用于调用SQL命令。

 

JDBC驱动类型:

JDBC是应用程序编程接口,描述了在访问关系数据库的标准 java类库。并且还为数据库厂商提供了个标准的体系结构,让厂商

可以为自己的数据库产品提供IDBC驱动程序,这政驱动程序可以直接访向商的数据产品,从而提高了Java 程序访问数据库

的效率,在lana程序设计中,JDBC可以分为以下4种驱动。                                                                                                                                                                                     

1.JBDBC-ODBC

2.本地API驱动

3.网络协议驱动

4.本地协议驱动                                                                                                                                                                                                                                                             

 

JDBC常用接口和类

1.DriverManager

用于管理JDBC驱动的服务类。程序中使用该类主要功能是获取Connection对象。

2.Connection

他代表数据库连接对象,每个Connection代表一次物理会话。

要想访问数据库,必须先获得数据库的连接

3.Statement

用于执行SQL的语句的工具接口。

4.PreparedStatement

这是一个预编译的Statement对象。

5.ResultSet

这是一个得到返回结果的对象,包括查询结果的方法。                       

 

JDBC编程的步骤

1.注册数据库驱动

2.建立连接

3.获得Statement/PreparedStatement对象

4.执行sql语句

5.处理结果集(增删该查)

6.关闭

图形过程如下:

 

 

基本的理论一点的知识介绍的差不多了,剩下的看代码进行解释。

 

现在代码要跑起来了:

1.使用Driver连接数据库

Diver 是一个接口,数据库厂商必须提供的能实现的接口,能从其中获取数据库的连接 建立lib文件 添加jar包 右键--》build path--》add to build path加入到类目录下
@Test
    public void testjdbc() throws SQLException{
        
        //1.创建Driver实现类的对象
        Driver driver  = new com.mysql.jdbc.Driver();
        
        //2.准备数据库连接到基本信息
        String url = "jdbc:mysql://127.0.0.1:3307/shijian";
        Properties info = new Properties();
        info.put("user", "root");
        info.put("password", "1234");
        
        //3.调用Driver的jiekou  Connect(url,info)获取数据库的连接
        Connection connection = driver.connect(url, info);
        System.out.println(connection);
        connection.close();
    }

 

 此时可以成功连接到数据库。

2.编写一个通用的方法,在不修改源程序情况下,连接数据库

那么此时我们可以想到的是把连接数据库需要的代码写道配置文件中

创建db.properties,并且放在类路径下

public Connection getConnection() throws Exception{
        String driverClass = null;
        String jdbcUrl = null;
        String user = null;
        String password = null;
        
        //读取jdbc.Properties文件
        InputStream in = getClass().getClassLoader().getResourceAsStream("db.properties");
        
        Properties properties = new Properties();
        properties.load(in);
        driverClass = properties.getProperty("driver");
        jdbcUrl = properties.getProperty("jdbcUrl");
        user = properties.getProperty("user");
        password = properties.getProperty("password");
        
        
        Driver driver = (Driver) Class.forName(driverClass).newInstance();
        Properties info = new Properties();
        info.put("user", user);
        info.put("password", password);
        
        Connection connection = driver.connect(jdbcUrl, info);
        return connection;        
    }

 db.properties

这里不仅可以写mysql的还可以写其他的数据连接所需要的配置

driver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3307/shijian
user=root
password=1234

 

 3.使用DriverManager

DriverManager是驱动的管理类

重载的getConnection()方法获取数据库的连接,较为方便
可以同时管理多个驱动,若注册了多个数据库连接,则调用getConnection()方法是传入的值不同,则显示的不同
public void DriverManager() throws Exception{
       //驱动的全类名
        String driverClass = null;
        String jdbcUrl = null;
        String user = null;
        String password = null;
        
    
        // 读取jdbc.Properties文件
        
        InputStream in = getClass().getClassLoader().getResourceAsStream("jdbc.properties");
        Properties properties = new Properties();
        properties.load(in);
        driverClass = properties.getProperty("driver");
        jdbcUrl = properties.getProperty("jdbcUrl");
        user = properties.getProperty("user");
        password = properties.getProperty("password");
        
        //DriverManager.getConnection(jdbcUrl, user, password);
        //加载驱动程序
        Class.forName(driverClass);
        
        //通过DriverManager的getConnection接口获取数据库的连接
        Connection connection = DriverManager.getConnection(jdbcUrl, user, password);
        System.out.println(connection);
    }

 

 

 现在直接使用jdbc的方式连接数据的项目已经很少了,都是框架,但是这里的一些知识在学习中还是很重要的。