javaweb学习25:JDBC复习

javaweb学习25:JDBC复习

  • JDBC:

    • 什么是JDBC:Java连接数据库;

       

    • 需要jar包的支持:

      • Java.sql

      • javax.sql

      • mysql-connector-java:连接驱动,必须要导

 

  • 实验环境搭建:

    • 导入数据库依赖:

      <!--mysql的驱动-->
      <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <version>8.0.28</version>
      </dependency>
    • IDEA中连接数据库:

       

    • JDBC固定步骤:

      1. 加载驱动

      2. 连接数据库

      3. 向数据库发送SQL的对象Statement

      4. 编写SQL:根据业务编写不同的SQL

      5. 执行SQL

      6. 关闭连接/流

       

 

  • 代码案例:JDBC基本代码Statement

    /**
     普通SQL执行对象:Statement
    */
    public class TestJdbc {
       public static void main(String[] args) throws ClassNotFoundException, SQLException {

           //配置信息
           //useUnicode=true&characterEncoding=UTF-8 : 解决中文乱码
           String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=UTF-8";

           String username="demo";
           String password="demo";

           //1,加载驱动
           Class.forName("com.mysql.jdbc.Driver");
           //2,连接数据库 : 代表数据库
           Connection conn = DriverManager.getConnection(url, username, password);
           //3,向数据库发送SQL的对象Statement : CRUD
           //PreparedStatement安全的,
           Statement state = conn.createStatement();
           
           //4,编写SQL
           String sql="SELECT * FROM users";
           
           
           //5,执行查询SQL:返回一个ResultSet:结果集
           //增删改都是用state.exeucteUpdate()
           ResultSet resultSet = state.executeQuery(sql);

           while (resultSet.next()){
               System.out.println("id="+resultSet.getInt("id"));
               System.out.println("name="+resultSet.getString("name"));
               System.out.println("password="+resultSet.getString("password"));
               System.out.println("email="+resultSet.getString("email"));
               System.out.println("birthday="+resultSet.getObject("birthday"));
          }

           //6,关闭连接:释放资源(一定要做)先开后关
           resultSet.close();
           state.close();
           conn.close();


      }
    }

     

  • 代码案例:预编译对象:PreparedStatement


    /**
    * 预编译对象:PreparedStatement
    */
    public class TestJjdbc2 {

       public static void main(String[] args) throws ClassNotFoundException, SQLException {

           //配置信息
           String url="jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=utf-8";
           String username="root";
           String password="root";

           //1,加载驱动
           Class.forName("com.mysql.jdbc.Driver");
           //2,建立连接:
           Connection conn = DriverManager.getConnection(url, username, password);
           //3,编写SQL
           String sql="insert into users (id, name, password, email, birthday)value (?,?,?,?,?)";
           //4,预编译SQL
           PreparedStatement pre=conn.prepareStatement(sql);
           //5,赋值:
           pre.setInt(1,4);//给第一个占位符?的值赋值为1
           pre.setString(2,"demo04");//给第二个占位符?的值赋值为demo04
           pre.setString(3,"111111");//给第三个占位符?的值赋值为111111
           pre.setString(4,"demo04@qq.com");//给第四个占位符?的值赋值为demo04@qq.com
           pre.setDate(5,new java.sql.Date(new Date().getTime()));//给第五个占位符?的值赋值

           //6,执行SQL
           int i= pre.executeUpdate();
           if(i>0){
               System.out.println("插入成功");
          }

           //6,关闭连接
           pre.close();
           conn.close();


      }
    }

     

 

 

 

 

 

posted @   gzs1024  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示