当前位置: 首页 > news >正文

济南制作网站制作公司策划腾讯云快速搭建网站

济南制作网站制作公司策划,腾讯云快速搭建网站,购物网站php模板,WordPress论坛用哪些JDBC基本操作 create table user( id int primary key auto_increment, name varchar(50) ) ENGINE InnoDB DEFAULT CHARSET utf8; JDBC概念 JDBC是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口#xff0c;定义了用来访问数据库的标准的Jav… JDBC基本操作 create table user(    id int primary key auto_increment,    name varchar(50)    ) ENGINE  InnoDB DEFAULT CHARSET  utf8; JDBC概念 JDBC是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口定义了用来访问数据库的标准的Java类库 连接步骤 加载驱动 进行数据库连接 // 驱动private static final String DRIVER  com.mysql.jdbc.Driver;// 地址private static final String URL  jdbc:mysql://localhost:3306/test;//用户名private static final String USER_NAME  root;// 密码private static final String PSW  123456;/** *  获取连接 */public static Connection getConnection(){  Connection conn  null;  try {    // 加载驱动    Class.forName(DRIVER);    // 数据库连接    conn  DriverManager.getConnection(URL,USER_NAME,PSW);  } catch (ClassNotFoundException e) {    System.out.println(加载驱动失败请检查是否引入Jar包或者驱动名称是否正确);    throw new RuntimeException(加载驱动失败请检查是否引入Jar包或者驱动名称是否正确,e);  } catch (SQLException throwables) {    System.out.println(连接数据库失败请检查数据库地址用户名密码是否正确);    throw new RuntimeException(连接数据库失败请检查数据库地址用户名密码是否正确,throwables);  }  return conn;}/*** 关闭连接* param conn*/public static void close(Connection conn){  if(conn ! null){    try {      conn.close();    } catch (SQLException throwables) {      throwables.printStackTrace();    }  }} 注意为什么需要使用Class.forName()来加载数据库驱动 是因为在每个Driver中都包含有一个静态代码块实际调用的是DriverManager.registerDriver(new Driver());方法 public class Driver extends NonRegisteringDriver implements java.sql.Driver {    public Driver() throws SQLException {    }    static {        try {            DriverManager.registerDriver(new Driver());        } catch (SQLException var1) {            throw new RuntimeException(Cant register driver!);        }    }} DriverManager 该类进行数据库驱动的管理可以注册多个数据库驱动根据url来动态的选择不同的数据库连接。 操作数据库 Statement接口 使用Statement接口来操作静态的SQL语句 executeUpdate方法 添加 /*** 插入操作* param sql*/public static void doInsert(String sql){  Connection conn  getConnection();  Statement statement  null;  try {    statement  conn.createStatement();    int result  statement.executeUpdate(sql);    System.out.println(sql执行成功插入result条数据);  } catch (SQLException e) {    throw new RuntimeException(执行失败,e);  } finally {    if(statement ! null){      try {        statement.close();      } catch (SQLException throwables) {        throwables.printStackTrace();      }    }    close(conn);  }} 修改 /**     * 修改操作     * param sql     */    public static void doUpdate(String sql){        Connection conn  getConnection();        Statement statement  null;        try {            statement  conn.createStatement();            int result  statement.executeUpdate(sql);            System.out.println(sql执行成功修改result条数据);        } catch (SQLException e) {            throw new RuntimeException(执行失败,e);        } finally {            if(statement ! null){                try {                    statement.close();                } catch (SQLException throwables) {                    throwables.printStackTrace();                }            }          close(conn);        }    } 删除 /**     * 删除操作     * param sql     */    public static void doDelete(String sql){        Connection conn  getConnection();        Statement statement  null;        try {            statement  conn.createStatement();            int result  statement.executeUpdate(sql);            System.out.println(sql执行成功删除result条数据);        } catch (SQLException e) {            throw new RuntimeException(执行失败,e);        } finally {            if(statement ! null){                try {                    statement.close();                } catch (SQLException throwables) {                    throwables.printStackTrace();                }            }          close(conn);        }            } PreparedStatement接口 该接口为Statement的子接口属于预处理操作可以传入带有占位符的SQL然后再进行补充占位符索引值从1开始。 可以有效地禁止SQL注入 executeUpdate方法 插入 public static void doPreparedInsert(String name){  Connection conn  getConnection();  PreparedStatement statement  null;  try {    String sql  insert into user (name) values (?);    statement  conn.prepareStatement(sql);    statement.setString(1,name);    int result  statement.executeUpdate();    System.out.println(sql执行成功插入result条数据);  } catch (SQLException e) {    throw new RuntimeException(执行失败,e);  } finally {    if(statement ! null){      try {        statement.close();      } catch (SQLException throwables) {        throwables.printStackTrace();      }    }    close(conn);  }} 在创建preparedStatement对象时有一个重载方法 // 第二个参数表示一个是否返回自增主键的一个biaoshi// Statement.RETURN_GENERATED_KEYS// Statement.NO_GENERATED_KEYSPreparedStatement prepareStatement(String sql, int autoGeneratedKeys) 在使用该PreparedStatement执行插入操作时可以使用statement.getGeneratedKeys()来返回一个新生成主键的ResultSet对象结果集中只有一列GENERATED_KEY存放的新生成的主键值 更新 与插入类似 删除 与插入类似 结果集 在查询数据时返回的是一个二维的结果集使用ResultSet来遍历结果集 public static void doQuery(){  String sql  select * from user;  Connection conn  getConnection();  PreparedStatement statement  null;  ResultSet resultSet  null;  try {    statement  conn.prepareStatement(sql);    resultSet  statement.executeQuery();    // resultSet.next 方法  将光标向前移动一行最初为第一行之前第一次调用使得第一行为当前行    while (resultSet.next()){      int id  resultSet.getInt(id);      String name  resultSet.getString(name);      System.out.println(查询到id为id,name为name的记录);    }  } catch (SQLException throwables) {    throwables.printStackTrace();  } finally {    if(resultSet ! null){      try {        resultSet.close();      } catch (SQLException throwables) {        throwables.printStackTrace();      }    }    close(conn,statement);  }} 批量操作 public static void doBatchInsert(String sql){  Connection conn  getConnection();  PreparedStatement statement  null;  try {    statement  conn.prepareStatement(sql);    for(int i  0;i1000;i){      statement.setString(1,张三i);      // 积攒sql      statement.addBatch();    }    // 执行sql    statement.executeBatch();    // 清除积攒的sql    statement.clearBatch();  } catch (SQLException throwables) {    throwables.printStackTrace();  } finally {    close(conn,statement);  }} https://zhhll.icu/2020/java基础/JDBC/1.JDBC基本操作/ 本文由 mdnice 多平台发布
http://www.yutouwan.com/news/266275/

相关文章:

  • 安卓开发框架seo引擎优化是什么
  • 企业网站需要在电信做哪些备案flash网站规划
  • 网站建设交流论坛百度升级最新版本下载安装
  • 做网站好还是app好深圳网站建设哪家比较好
  • 网站制作专业网站建设的途径
  • 宁波网站搭建专门做设计的网站
  • 网站建设 题目优化网站哪家好
  • 网站建设中端口号的作用是什么意思合肥seo网站建设
  • 中国工程建设监理网站做网站的哪里好
  • 郑州网站制作案例百度多久收录一次网站
  • js获取网站html广东色绿色建筑信息平台
  • 台州企业做网站福田企业网站推广公司
  • 岳阳整站优化网吧设计装饰公司
  • 建立网站的英文短语网站开发英文合同
  • 广州网站程序开发艺术字体设计网
  • 新能源网站建设重庆工程造价信息2021
  • 农用地转建设用地结果查询网站wordpress多媒体导入
  • 嘉兴做网站建设的公司哪家好网站建站平台系统
  • 邢台建网站哪里有担路网口碑做网站好吗
  • 做it的在哪个网站找工作男女做羞羞完整版网站
  • 网站产品图怎么做的访问网站慢
  • 网站开发背景论文网站如何做触屏滑动
  • 好的平面网站模板知春路网站建设
  • 网站开发作为固定资产怎么摊销3 阐述网站建设的步骤过程 9分
  • 网站建设准备工作总结网店代运营服务
  • 松原建设小学网站WordPress黑镜主题下载
  • 网站正在建设中提示页面深圳网站建设需要多少费用
  • 河南省建设厅注册中心网站如何将自己 做的网站发布网上
  • 建设厅电工证查询网站四川网站建设套餐
  • 产品网站策划书方案做视频网站推广挣钱吗