ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JDBC01

2022-02-16 04:00:08  阅读:114  来源: 互联网

标签:jdbc void jdbcInterface mysql JDBC01 close public


JDBC基本介绍

基本介绍

 

 

 

 

 

 好处

直接访问数据库:

 

使用jdbc访问数据库——面向接口编程 

 

 

 

  

 JDBC模拟

/**
 * @author 紫英
 * @version 1.0
 * @discription 模拟JDBC
 */
public interface JDBCInterface {

    //连接方法
    public Object getConnection();

    //    crud方法
    public void crud();

    //    关闭连接
    public void close();
}


==================================
/**
 * @author 紫英
 * @version 1.0
 * @discription mysql实现jdbc接口
 */
public class MysqlJdbcImpl implements JDBCInterface {
    @Override
    public Object getConnection() {
        System.out.println("mysql 链接");
        return null;
    }

    @Override
    public void crud() {

        System.out.println("mysql增删改查");

    }

    @Override
    public void close() {
        System.out.println("mysql增删改查");

    }
}

=================================
/**
 * @author 紫英
 * @version 1.0
 * @discription oracle实现jdbc接口
 */
public class OracleJdbcImpl implements JDBCInterface{
    @Override
    public Object getConnection() {
        System.out.println("oracle 链接");
        return null;
    }

    @Override
    public void crud() {
        System.out.println("oracle crud");
    }

    @Override
    public void close() {
        System.out.println("oracle close");
    }
}

===============================
/**
 * @author 紫英
 * @version 1.0
 * @discription 测试类
 */
public class JdbcTest {

    public static void main(String[] args) {
        JDBCInterface jdbcInterface = new MysqlJdbcImpl();
//        接口的多态
        jdbcInterface.getConnection();
        jdbcInterface.crud();
        jdbcInterface.close();
        jdbcInterface = new OracleJdbcImpl();
        jdbcInterface.getConnection();
        jdbcInterface.crud();
        jdbcInterface.close();
        
    }

}

 

JDBC API

  • java.sql接口

 

 

  •  javax.sql接口

 

 

 程序编写步骤

 

 

 JDBC快速入门案例

1.先将mysql的jar包添加到项目中

在项目下创建一个文件夹比如 lib,将 mysql.jar 拷贝到该目录下,点击 add to project ..加入到项目中 

 

 2.代码实现

package com.recorder.jdbc;

import com.mysql.jdbc.Driver;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * @author 紫英
 * @version 1.0
 * @discription Jdbc快速入门案例
 */
public class Jdbc01 {
    public static void main(String[] args) throws SQLException {
        //1. 注册驱动,创建 driver 对象
        Driver driver = new Driver();//new com.mysql.jdbc.Driver.v

        //2. 得到连接
        // (1) jdbc:mysql:表示协议,通过 jdbc 的方式连接 mysql(写死的)// (2) localhost 主机,也可以是 ip 地址
        // (3) 3306 表示 mysql 监听的端口
        // (4) db01 连接到 mysql dbms 的哪个数据库
        // (5) mysql 的连接本质就是前面学过的 socket 连接
        String url = "jdbc:mysql://localhost:3306/db01";//要链接的数据库地址
        //将 用户名和密码放入到 Properties 对象
        Properties properties = new Properties();
        //user 和 password 是规定好,后面的值根据实际情况写
        properties.setProperty("user","root");
        properties.setProperty("password","123456");
        Connection connect = driver.connect(url, properties); //连接数据库
//3. 执行 sql
        //statement 用于执行静态 SQL 语句并返回其生成的结果的对象
        Statement statement = connect.createStatement();
        String sql = "insert into Dog values(null,'大黄')";
        // 如果是 dml 语句,返回的就是影响行数
        int i = statement.executeUpdate(sql);
        System.out.println(i > 0 ? "添加成功" : "添加失败");
        //4. 关闭连接资源
        statement.close();
        connect.close();


    }
}

获取数据库连接 5 种方式 

第一种

缺点:静态加载,灵活性差,依赖性强

 

 

第二种方法

优点:使用反射加载Driver类,动态加载,更加灵活减少依赖性,还可以读取配置文件中的数据

 

第三种方法

使用DriverManager替代driver进行统一管理,扩展性更好,无需创建properties对象,更加灵活

 

第四种方法(使用最多)

 

 

 

第五种方式(第四种的改进,推荐使用)

 

 

 

ResultSet

 

 

Statement

 

SQL注入

 

 

 

PreparedStatement

 

 

 JDBCAPI梳理

 

 

 

 

 

标签:jdbc,void,jdbcInterface,mysql,JDBC01,close,public
来源: https://www.cnblogs.com/recorderM/p/15898824.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有