JDBC的初级语法

1.Jdbc语法

1.加载注册驱动

    Class foeName("驱动实现类的全限定名");

    mysql:class.forName("com.mysql.jdbc.Driver");

    问题:为啥写这一句话,就会把驱动进行加载注册???
        步骤1:把com.mysql.jdbc.Driver这份字节码加载进JVM.--->创建class对象。
        步骤2:当一份字节码被加载进JVM,就会执行字节码中的静态代码块。
        步骤3:而静态代码块中,就是使用DriverManager.registerDriver(new Driver())注册驱动。

2.使用DriverManager获取连接。

      Connection conn = DriverManager.getConnection(String url,String user,String password);

      参数:
          url:jdbc:mysql://ip:端口/数据库的名字
          MYSQL:jdbc:mysql://localhost:3306
          简写:若连接是本机,并且端口3306:jdbc:mysql:///dbname
          Oracle:jdbc:oracle:thin:@127.0.0.1:1521:dbname
          user:账号,root
          password:密码,admin
          验证以获取连接:可以在mysql控制台,使用命令: show processlist; 查看mysql运行进程。
          从java6(JDBC4.0)开始,可以不再加载注册驱动。
          直接通过DriverManager获取连接对象。  

3.为啥不再需要加载驱动了?

        从java6开始,规范要求每一个JDBC驱动包,都必须带有META-INF/serveces/java.sql.Driver文件

        开发建议:依然还是建议手动的加载注册驱动,如此,可以兼容之前的JDK版本。

     PS:有时候,mysql的驱动类也会看到使用org.git.mm.mysql.Driver的情况,它是早期的名称,后来改名为

        com.mysql.jdbc.Driver推荐使用它

        在最新版本的mysql jdbc驱动中,为了保持对老版本的兼容,仍然保留了org.git.mm.mysql.Driver,但是实际上

        org.git.mm.mysql.Driver中调用了com.mysql.jdbc.Driver.因此现在这俩个驱动没有去区别。
public class ConnectionTest {

    public static void main(String[] args) throws Exception {
        test1();
    }
    public static void test1() throws Exception {
        //贾琏
        //1.加载注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取连接
        DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbcdemo","root","111111");
        Thread.sleep(6000);
    }
}

2.JDBC的操作步骤

JDBC的操作步骤:

    口诀:贾琏欲执事
        1.加载注册驱动
        2.获取连接对象
        3.获取/创建语句对象
        4.执行sql
        5释放资源

Connection 接口:获取connection对象:   
            Connection conn = DriverManager.getConnection(String url,String user,String password);  

          常用方法:
                Statement createStatement();创建语句对象,将SQL语句发送到数据库
                close();释放连接资源

Statement的继承体系:

            Statment接口:
            ------:CallableStatement接口:操作存储过程,不讲。
            ------:PreparedStatement接口:表示预编译语句对象,使用?占位符的方式来拼SQL.

Statement接口:用于执行静态SQL(写死的SQL语句)。

                常用方法:
                  int executeUpdate(String sql):执行DDL/DML的SQL语句,DML操作返回受影响的行数,DDL操作返回0
                  ResultSet executeQuery():执行DQL的SQL语句,做查询并返回ResultSet对象 (结果集)。
                  close();释放资源

PreparedStatement接口:

                常用方法:
                    int executeUpdate();执行DDL/DML的SQL语句,DML操作返回受影响的行数,DDL操作返回0
                    ResultSet executeQuery();执行DQL的SQL语句,做查询,并返回ResultSet对象(结果集)。
                    注意:方法中没有参数SQL;
                    void setXxx(int index,Xxx value):设置第几个?的参数值,从1开始的。
                                注意Xxx是数据类型,比如String ,Long,int,boolean等。

ResrutSet接口:表示查询的结果集(查询结果的封装对象),是通过执行查询语句得到的,
              在ResultSet中就拥有获得查询结果数据的方法。

              常用方法:
                    boolean next():判断是否有下一行数据,若有,则向下移动一行指针。
                    Xxx getXxx(int columnIndex):获取当前的第几列的数据,从1开始,(不建议)
                    Xxx getXxx(String clounmIndex):获取当前行的执行列名,对应列的数据可以使用别名。
                        注意:Xxx是数据类型,比如。String,long,int,boolean等。
                    Object getObject(int/String columnIndex):获取某一列的数据,通通使用Object来接收
                    close();释放结果集资源
使用Statement编译语句对象:

@Test
    public void testCreateTable() throws Exception {
        //创建一张表:t_student(id,name,age列)
        //1.加载注册驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.获取连接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbcdemo", "root", "111111");
        //3.获取/创建语句对象
        Statement st = conn.createStatement();
        //4.执行sql
        String sql = "create table t_student(id int primary key,name varchar(20),age int(11));";
        st.executeUpdate(sql);
        //5释放资源
        st.close();
        conn.close();
    }
使用PreparedStatement预编译语句对象:

@Test
    public void testName() throws Exception {
        //贾琏
        Connection conn = JdbcUtil.INSTANCE.getConn();
        //欲
        String sql = "insert into product (ProductName,salePrice,dir_id,brand) values (?,?,?,?)";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, "iphoneX");
        ps.setBigDecimal(2, new BigDecimal("8500"));
        ps.setLong(3,5L);
        ps.setString(4,"iphone");
        //执
        ps.executeUpdate();
        //释
        JdbcUtil.INSTANCE.close(conn, ps, null);
    }
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDBC(Java Database Connectivity)是一种用于Java编程语言连接不同类型数据库的API。它提供了一个标准的接口,使得Java程序能够与数据库进行交互,对数据库进行查询、更新、插入和删除等操作。JDBC是一个基于SQL的API,它允许Java程序通过SQL语句进行数据库操作。 Maven是一个Java项目管理工具,它能够自动化构建、版本控制和依赖管理。Maven通过一个配置文件(pom.xml)来管理项目的各种信息,包括项目的依赖、插件、构建过程等。Maven使用约定优于配置的原则,提供了一套标准的目录结构和命名规范,使得项目的构建和管理更加简单和规范化。 在使用JDBC进行数据库操作时,Maven可以帮助我们管理JDBC的依赖。我们只需在pom.xml中添加JDBC的依赖坐标,Maven就会自动从Maven中央仓库下载JDBC的库文件,并将其添加到项目的classpath中。这样,我们就能够在Java程序中使用JDBC进行数据库操作了。 使用Maven进行JDBC管理的好处是,它能够自动处理各种依赖关系和版本冲突,保证依赖的正确性和一致性。此外,Maven还能够自动下载和安装需要的插件,并提供一套标准的构建过程,使得项目的构建、测试和部署更加简便和可靠。 总之,JDBC提供了Java程序与数据库进行交互的能力,而Maven能够帮助我们管理JDBC的依赖和简化项目的构建过程。通过在pom.xml中配置JDBC的依赖,Maven能够自动下载和管理JDBC的库文件,使得我们能够更方便地使用JDBC进行数据库操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值