JDBC入门

JDBC入门

时间:20180310


1.1 简介
使用java程序访问(操作)数据库(发送sql语句),这叫用到了jdbc技术。

1.2 使用jdbc访问数据库的前提
1)先登录数据库:

  • 数据库的主机地址(IP地址):
  • 端口
  • 数据库用户名和密码
  • 连接的数据库
    2)发送sql语句
JDBC出现前的结构
JDBC出现后的结构

使用JDBC链接数据库

·

package gz.itast.a_jdbc;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

/**
 * 使用jdbc技术链接数据库
 * @author mengjie
 *
 */
public class Demo1 {
    //连接数据库的字符串,jdbc协议,类似于浏览器和服务器沟通的协议 (http协议)
    //jdbc协议+数据库协议+ip+port+连接的数据库名称
    private static String url = "jdbc:mysql://localhost:3306/day16"; 
    //用户名
    private static String user = "root";
    //密码
    private static String password = "root";
    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        //t1();
        //t2();
        //t3();
        
        //主要流程
        //1.注册驱动程序(只注册一次)
        Class.forName("com.mysql.jdbc.Driver");
        //上述代码主要是为了调用Driver.class中代码(mysql具体实现类)
        //
        // Register ourselves with the DriverManager
        //
        //static {
            //try {
                //java.sql.DriverManager.registerDriver(new Driver());
            //} catch (SQLException E) {
                //throw new RuntimeException("Can't register driver!");
            //}
        //}
        
        //2.使用驱动管理类获取连接
        Connection conn = DriverManager.getConnection(url,user,password);
        System.out.println(conn);
    }

    private static void t3() throws ClassNotFoundException {
        /**
         * 反射:获取类的对象
         * 解决了t2中重复注册驱动程序的问题
         * 而且降低依赖程度(t2过度依赖com.mysql.jdbc.Driver() 类)
         */
        Class.forName("com.mysql.jdbc.Driver");//执行Driver类中的静态代码块
    }
    
    /**
     * 使用驱动管理类DriverManager,连接数据库
     * @throws SQLException
     */
    private static void t2() throws SQLException {
        Driver driver = new com.mysql.jdbc.Driver();//mysql //注册了一次驱动
//      Driver driver2 = new com.oracle.jdbc.Driver();
        //1.注册驱动程序
        DriverManager.registerDriver(driver);//有注册了一次驱动,即重复注册了两次驱动
        //DriverManager.registerDriver(driver2);
        
        //2.获取连接数据库
        Connection conn = DriverManager.getConnection(url, user, password);//通过url识别需要连接数据库
        System.out.println(conn);
    }

    /**
     * 1) 直接使用驱动程序连接
     * @throws SQLException
     */
    private static void t1() throws SQLException {
        //1.创建驱动程序的实现类对象
        Driver driver = new com.mysql.jdbc.Driver();//新版本
//      Driver driver = new org.gjt.mm.mysql.Driver();//旧版本
        
        Properties prop = new Properties();
        prop.setProperty("user", user);//用户名
        prop.setProperty("password", password);
        //2.连接数据库
        Connection conn = driver.connect(url, prop);
        System.out.println(conn);
    }
}

1.3 jdbc的api
|- Driver接口: 驱动程序接口。
  |-Connection conn = connect() 用于连接数据库的方法。
|-Connection 接口: 代表和数据库的连接。
  |-Statement createStatement() 创建Statement接口的对象。
  |-PreparedStatement prepareStatement(String sql) 创建PreparedStatement接口的对象。
  |-CallableStatement prepareCall(String sql) 创建CallableStatement接口的对象。

|-Statement接口:用于执行静态SQL语句。
  |- int executeUpdate(String sql)执行DDL和DML语句(更新sql语句)比如INSERT\UPDATE\DELETE(DML),或者不返回任何内容的SQL语句(DDL)。
  |-ResultSet executeQuery(String sql) 执行DQL语句(查询sql语句)

  |-PreparedStatement接口:用于执行预编译的SQL语句
    |-int executeUpdate();执行DDL和DML语句(更新sql语句)
    |-resultSet executeQuery()执行DQL语句(查询sql语句)

        |-CallableStatement接口:用于执行存储过程的SQL语句
          |- ResultSet executeQuery()存储过程只能执行查询sql

|-ResultSet接口:表示数据库结果集
  |-boolean next() 将光标移至下一行
  |-getXXX():获取结果集中的每列的值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本节介绍Statement接口及其子类PreparedStatement和CallableStatement。 它...
    zlb阅读 4,890评论 0 0
  • JDBC连接数据库 三种连接数据库方式 JDBC接口核心的API Driver接口: 表示java驱动程序接口。所...
    _琳哥阅读 3,477评论 0 0
  • JDBC简介 SUN公司为了简化、统一对数据库的操作,定义了一套Java操作数据库的规范,称之为JDBC。JDBC...
    奋斗的老王阅读 5,412评论 0 51
  • java数据库编程 思考:JDBC可以操作数据库吗? 学习案例:数据库及表的建立:Create database ...
    cqzhangjian阅读 5,007评论 0 50
  • 李爸爸和李妈妈五十开外的样子,今日以东道主的身份宴请远道而来的朋友。他们多年来,一直勤勤恳恳、兢兢业业地为自己的加...
    凡子的天空阅读 910评论 0 3