首页 > 其他分享 >2022-8-18第一组孙乃宇JDBC

2022-8-18第一组孙乃宇JDBC

时间:2022-08-18 19:22:06浏览次数:48  
标签:jdbc String 18 数据库 sql 2022 mysql 执行 孙乃宇

JDBC

  1. 概念:Java DataBase connectivity Java数据库连接,Java语言操作数据库

JDBc本质∶其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程 ,真正执行的代码是驱动jar包中的实现类。

快速入门

1.导入驱动jar包

1. 复制 mysql-connector-java-5.1.37-bin.jar 到项目的libs目录中

2.右键-->Add as Library

2.注册驱动

3.获取数据库连接对象connection

4.定义sql

5.获取执行sql语句的对象statement

6.执行sql,接受返回结果

7.处理结果

  1. 释放资源

详解各个对象

DriverManager:驱动管理对象

功能:1.注册驱动:告诉程序该使用哪一个数据库驱动jar

static void registrDriver(Driver driver):注册与给定的驱动程序DriverManager。

写代码使用:Class.forName("com.mysql.jdbc.Deiver");

通过查看源码发现:在com.mysql.jdbc.Driver 类中存在静态代码块

 static {
       try {
           DriverManager.registerDriver(new Driver());
      } catch (SQLException var1) {
           throw new RuntimeException("Can't register driver!");
      }
  }

注意:mysql之后的驱动jar包可以省略注册驱动时的步骤

  1. 获取数据库连接

    方法:static Connection getConnection

    参数:url:指定连接的路径

    语法:jdbc:mysql://ip地址(域名):端口号/数据库名称

    例子:jdbc:mysql://localhost:3306/db3

    细节:如果连接的时本机mysql服务器,并且mysql服务器默认端口号是3306,则 url可以简写为:jdbc:mysql:///数据库名称

    user:用户名

    password:密码

Connection:数据库连接对象

  1. 功能:获取执行sql的对象

Sstatement createStatement ()

PreparedStatement prepareStatement(String sql)

  1. 管理事务

    开启事务: void setAutoCommit(boolean autoCommit) 此连接的自动提交模式设置为给定状态。

    提交事务:commit()

    归滚事务:rollback()

Statement执行sql的对象

执行sql的对象:用于执行静态 SQL 语句并返回它所生成结果的对象。

  1. 执行sql

    1. boolean execute(String sql):可以执行任意的sql (了解)

    2. int executeUpdate(String sql): 执DML(insert,update,delete) 语句、DDL(create,alter,drop)语句

      返回值:int 影响的行数,可以通过这个影响的行数判断DML语句是否执行成功 返回值>0的则执行成成功,反之,则失败。

    3. ResultSet executeQuery(String sql):执行DQL(select)语句

 @Test
   public void test01() throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException, SQLException {
       String url = "jdbc:mysql://127.0.0.1:3306/db4?userUnicode=true&characterEncoding=utf8";
       String username = "root";
       String password = "root";
       String driverName = "com.mysql.jdbc.Driver";
       //1.加载驱动类
       Class clazz = Class.forName(driverName);
       //2.实例化Driver对象
       Driver driver = (Driver) clazz.getDeclaredConstructor().newInstance();
       //3.注册驱动
       DriverManager.registerDriver(driver);
       //4.获取连接
       Connection connection = DriverManager.getConnection(url, username, password);
       //执行sql的步骤
       //1.获取连接
       statement = connection.createStatement();
       //2.定义sql
       //3.执行sql语句
       String sql="insert into teacher (id,name) values (6,'Jay')";
       String delete="DELETE FROM teacher WHERE id=5";
       String update="update teacher set name='sun' where id=3";
       //返回值是执行sql语句的行数
       //4.处理执行sql的返回值
       //int i = statement.executeUpdate(sql);
       int i = statement.executeUpdate(update);
       System.out.println("影响的行数"+i);
  }
 

标签:jdbc,String,18,数据库,sql,2022,mysql,执行,孙乃宇
From: https://www.cnblogs.com/sunnaiyu/p/16599837.html

相关文章

  • 2022/8/18 总结
    A.P2587[ZJOI2008]泡泡堂好家伙,久违的贪心所以说挂了;Solution古人的智慧;但实际上这道题和田忌赛马有所区别,已知有一种比较优的方法是用己方最鶸的换掉敌方最强......
  • 2022-08-18 第四组 王佳齐 学习笔记
    思维导图MySQL常用函数聚合函数count:计数。count(*)≈count(1)>count(主键)count(*):MySQL对count(*)底层优化,count(0)。count(1)count(主键)count(字段)min:最......
  • 2022-08-18 第二组刘禹彤 学习笔记
    打卡35天  ###学习内容MySQL常用函数聚合函数count:计数------------count(*)≈count(1)>count(主键)>count(字段)count(*):MySQL对count(*)底层优化----count(min:最小值......
  • 8.18总结
    泡泡堂\(solution\)苹果树\(solution\)字符合并\(solution\)脑洞治疗仪\(solution\)万万没想到,我50pts的原因是数组没开够线段树维护修改操作,注意先挖后补ACCo......
  • IntelliJ IDEA 2022解决控制台中文乱码
    1.打开设置单击Settings  2.在Editor下面FileEncodings中的projectencoding设置为GBK其他设置为UTF-8  3.在General下面的Console里DefaultEncoding更改为......
  • 2022巅峰极客初赛 Misc wp
    一开始做misc1没啥思路,转去misc2,结果一下子给电脑搞废了,太哈人了,以后对注册表都有心理阴影了,还好队友给力,躺进决赛,这里的wp都是今早修完电脑后再复现的。。。easy_Forensi......
  • asp.net获取当前网址url (2018-11-02 14:49:45)
    设当前页完整地址是:http://www.jb51.net/aaa/bbb.aspx?id=5&name=kelli "http://"是协议名 "www.jb51.net"是域名 "aaa"是站点名 "bbb.aspx"是页面名(文件名) "id=......
  • 手机网页限制用户缩放代码 (2014-03-25 18:16:52)
    网页手机wap2.0网页的head里加入下面这条元标签,在iPhone的浏览器中页面将以原始大小显示,并不允许缩放。    width-viewport的宽度height-viewport的高度  initi......
  • 8.18集训
    回到了Luogu,继续刷COCI……上午事实证明后三题是可做题,前三题不大可做。T1P6405开始码了一个相邻的树木连边,边权设为相等的时间,然后点边互换跑连通块算大小,默认恒等......
  • Snagit 2022 for mac(截图录像工具)中文直装版
    TechSmithSnagit2022formac中文版是一款屏幕截图屏幕录制软件,可让您在Mac上捕获屏幕截图、录制屏幕视频。支持滚动截图(长截图)、网页截图、录制系统声音、录制麦克......