zoukankan      html  css  js  c++  java
  • JDBC连接数据库

     Jdbc 连接数据库

    Jdbc连接数据库步骤
    1. 通过反射加载驱动
    2. 获取连接 得到connection
    3. 写sql语句
    4. 获取执行sql对象(statment preparestament)增删改通过连接conn对象获得sql对象preparestament
    5. 替换占位符
    6. (拿到结果集) 返回影响的行数int rs=ps.executeUpdate()或resultSet rs=ps.executeQuery()
    7. 关系数据库资源

    代码如下

    public static void main(String[] args) {

    Connection connection = null;

    PreparedStatement preparedStatement = null;

    ResultSet resultSet = null;

    try {

      //1、通过反射加载数据库驱动

      Class.forName("com.mysql.jdbc.Driver");

      //2、通过驱动管理类获取数据库链接

      connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8", "root", "root");

      //3、定义sql语句 ?表示占位符

      String sql = "select * from user where username = ?";

      //4、获取预处理statement

      preparedStatement = connection.prepareStatement(sql);

      //5、设置参数,第一个参数为sql语句中参数的序号(从1开始),第二个参数为设置的参数值

      preparedStatement.setString(1, "王五");

      //6、向数据库发出sql执行查询,查询出结果集

      resultSet = preparedStatement.executeQuery();

      //7、遍历查询结果集

      while(resultSet.next()){

        User user

        System.out.println(resultSet.getString("id")+" "+resultSet.getString("username"));

      }

      } catch (Exception e) {

        e.printStackTrace();

      }finally{

      //8、释放资源

      if(resultSet!=null){

        try {

          resultSet.close();

        } catch (SQLException e) {

          // TODO Auto-generated catch block

        e.printStackTrace();

        }

        }

        if(preparedStatement!=null){

      try {

        preparedStatement.close();

      } catch (SQLException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      }

      }

      if(connection!=null){

      try {

        connection.close();

      } catch (SQLException e) {

        // TODO Auto-generated catch block

        e.printStackTrace();

        }

      }

    }

    }

    statement PreparedStatement 区别
    连接得到 statement PreparedStatement 首先父子关系 有缺点 statement 不安全 效率低,拼接麻烦,

    PreparedStatement 优点 安全 效率高 预编译 缺点: 每一个都要一一对应

    // 查询

    /通过连接获取 PreparedStatement =conn.prepareStatement(传的是你的sql语句)

    //替换占位符 ps.setObject(“索引(从一开始)”,”拼接具体数据”);

  • 相关阅读:
    C#基础之事件
    C#中IQueryable和IEnumerable的区别(2)
    读取不到appsettings.json的值
    【PHP】 延时跳转
    【canvas】 绘制七巧板
    小程序项目编译失败问提解决
    windows下安装node.js
    deskgenius分区失败,分区消失,解决的过程
    IOS:重写UISlider大小解决UISlider滑动不灵敏的问题
    IOS:reason: 'invalid nib registered for identifier (PhotoCellID)
  • 原文地址:https://www.cnblogs.com/binghuaZhang/p/10719524.html
Copyright © 2011-2022 走看看