JDBC 学习---Java DataBase Connectivity

一、JDBC理解

Java DataBase Connectivity----java 语言连接数据库

JDBC 是sun公司定制的一套接口(interface)----java.sql.*;(包)

每一个数据库产品都有自己独特的实现原理,利用接口可以进行不同的实现。

接口都有调用者和实现者

面向接口调用、面向接口写实现类,这都属于面向接口编程

为什么要面向接口编程

解耦合:降低程序的耦合度,提高程序的扩展力

多态机制是非常典型的:面向抽象编程。

例如创建实体对象时

当有一个方法同时用Dog类和Cat类时,可以直接使用Animal类

 JDBC开发前的准备

在官网下载对应mysql版本的jar包

Central Repository: mysql/mysql-connector-java

二、JDBC六步走

注册驱动  获取连接  获取数据库操作对象  执行sql语句  查询结果集   释放资源
package JDBC;


import java.sql.*;

//JDBC 六步走  注册驱动  获取连接  获取数据库操作对象  执行sql语句  查询结果集   释放资源
public class textJDBC {
    public static void main(String[] args) {
        Connection conn=null;
        Statement stmt=null;

        try {
            //注册驱动
            // 常用写法:Class.forName("com.mysql.jdbc.Driver");(类加载)
            DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            //获取数据库连接
            /*
            url 统一资源定位符
            格式为:通信协议//IP地址:端口/资源名
            * */
            //获取连接的缩写conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/ys","root","123456");
            String url = "jdbc:mysql://localhost:3306/shujuku";//jdbc:mysql://数据库地址:端口号/数据库名
            String user = "yonghuming"; //数据库用户名
            String password = "mima";//数据库密码
            conn= DriverManager.getConnection(url, user, password);//获取连接
            System.out.println("数据库连接对象=" + conn);//com.mysql.jdbc.JDBC4Connection@1a86f2f1
            //获取数据库操作对象
            stmt= conn.createStatement();//获取一个sql语句返回给数据库
            //执行sql语句
            String sql = "insert into dept(deptno,dname,loc) values (50,'人事部','北京')";//语句中不能用中文包括空格
            //专门执行DML语句的(insert delete update)
            //返回值是“影响数据库中的记录条数” 例如插入两条数据,这返回值为2
            int count = stmt.executeUpdate(sql);//从数据库接收sql语句执行后的返回值
            System.out.println(count == 1 ? "数据库修改成功" : "数据库修改失败");
            //处理查询结果集
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            //释放支援,为了保证资源一定释放所以放在finally中关闭
            //并且遵循从小到大关闭  分别对其try...catch
                try {
                    if(stmt !=null){
                    stmt.close();
                }
                } catch (SQLException e) {
                    e.printStackTrace();
                }

            try {
                  if(conn!=null){
                      conn.close();
                  }
                } catch (SQLException e) {
                    e.printStackTrace();
                }

        }

    }

}

使用资源管理器的方法绑定

root为资源配置文件

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;


public class JDBCdemo2 {
    public static void main(String[] args) { //使用资源绑定气绑定属性配置文件
        ResourceBundle bundie = ResourceBundle.getBundle("root");
        String driver = bundie.getString("driver");
        String url = bundie.getString("url");
        String user = bundie.getString("user");
        String password = bundie.getString("password");
        Connection conn = null;
        Statement stmt = null;
        try {
            //注册驱动
            try {
                Class.forName(driver);//常用写法(类加载)
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
            // DriverManager.registerDriver(new com.mysql.jdbc.Driver());
            //获取数据库连接
            /*
            url 统一资源定位符
            格式为:通信协议//IP地址:端口/资源名
            * */
            //获取连接的缩写conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/ys","root","123456");
            conn = DriverManager.getConnection(url, user, password);//获取连接
            System.out.println("数据库连接对象=" + conn);//com.mysql.jdbc.JDBC4Connection@1a86f2f1
            //获取数据库操作对象
            stmt = conn.createStatement();//获取一个sql语句返回给数据库
            //执行sql语句
            String sql = "insert into dept(deptno,dname,loc) values (501,'人事部1','北京1')";//语句中不能用中文包括空格
            //专门执行DML语句的(insert delete update)
            //返回值是“影响数据库中的记录条数” 例如插入两条数据,这返回值为2
            int count = stmt.executeUpdate(sql);//从数据库接收sql语句执行后的返回值
            System.out.println(count == 1 ? "数据库修改成功" : "数据库修改失败");
            //处理查询结果集
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //释放支援,为了保证资源一定释放所以放在finally中关闭
            //并且遵循从小到大关闭  分别对其try...catch
            try {
                if (stmt != null) {
                    stmt.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }

            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }

        }

    }
}

root文件内容

driver=com.mysql.jdbc.Driver
url= jdbc:mysql://localhost:3306/数据库名
user= 用户名
password=密码

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值