zoukankan      html  css  js  c++  java
  • Java 第27章 JDBC

       JDBC 模版

      JDBC 的工作原理

       JDBC API

         提供者:Sun公司

       内容:供程序员调用的接口与类,集成在java.sql 和javax.sql 包中,如:

         DriverManager 类

         Connection 接口

         PreparedStatement 接口

         ResultSet 接口

        DriverManager

          提供者:Sun公司

         作用:管理各种不同的JDBC 驱动

         JDBC 驱动

        提供者:数据库厂商

          作用:负责连接各种不同的数据库

      java 应用程序

        JDBC API

       JDBC Driver Manager

         JDBC 驱动 --->sql server   JDBC 驱动 ----> oracle

       JDBC API

     JDBC API  主要功能:与数据库建立连接、执行SQL 语句、处理结果

       1、DriverManager

       2、Connection

       3、Statement

       4、ResultSet  ---> 4个步骤 !

    DriverManager :依据数据库的不同,管理JDBC驱动

    Connection :负责连接数据库并担任传送数据的任务 

    PreparedStatement:由 Connection 产生、负责执行SQL语句

    ResultSet:负责保存Statement执行后所产生的查询结果

    try {

          class.forName( JDBC 驱动类);

             1、加载JDBC 驱动

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

       2、与数据库建立连接

     connection con=DriverManager.getConnection(URL,数据库用户名,密码);

      //URL 用来标识数据库

     PreparedStatement pstmt=con.PreparedStatement("查询sql语句");

     ResultSet rs=pstmt.executeQuery();

      //执行SQL语句,并得到返回结果

       while (rs.next()){

        int x=rs.getint("a");

        String s=rs.getString("b");

        float f=rs.getFloat("c");

          // 处理放回结果

    }

      rs.close();

      pstmt.close();

      con.close(); //关闭连接

       //释放资源

       

    package com.test;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Scanner;


    public class Test1 {
        

        /**
         * @param args
         */
        public static void main(String[] args) {
            Connection conn=null;
            PreparedStatement pstmt=null;
            ResultSet rst=null;
            
           try {
                //1、加载驱动
               Class.forName("com.mysql.jdbc.Driver");
                //2、建立连接
             conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/nyschool?CharacterEncoding=UTF-8","root","root");
             //System.out.println("建立连接成功!!");
             //3、创建 prepareStatement 接口并编译 sql语句
             //pstmt=conn.prepareStatement("select * from student");
             //执行删除
             Scanner input=new Scanner(System.in);
             //System.out.print("请输入要删除的学生学号:");
             //int stuNo=input.nextInt();
             //两种方法:
             //方法1:String sql="DELETE  FROM student WHERE stuNo="+stuNo;
             //方法2:String sql="DELETE  FROM student WHERE stuNo=7";
            
             //执行添加
             System.out.print("请输入添加的学员的编号:");
              int stuNo=input.nextInt();
              System.out.print("请输入添加学员的性别:");
              String name=input.next();
              System.out.print("请输入添加的地址:");
              String phone=input.next();
              //
             String sql="INSERT INTO student VALUES (?,'a2323','qq',?,1,?,'江西南昌',SYSDATE(),'qq.com')";
             pstmt=conn.prepareStatement(sql); //预编译方式
              //给占位符赋值
             pstmt.setInt(1, stuNo);
             pstmt.setString(2, name);
             pstmt.setString(3, phone);
             System.out.print("sql:"+sql);
             //4、执行SQL语句,并得到返回结果
             //rst=pstmt.executeQuery(); //执行查询
             int num=pstmt.executeUpdate(); //执行增删改
              //5、处理返回结果
              if(num>0){
                  System.out.println(" 添加成功!");
              }else{
                  System.out.println(" 添加失败!");
              }
            
                while (rs.next()){

        int x=rs.getint("a");

        String s=rs.getString("b");

        float f=rs.getFloat("c");

          // 处理放回结果


                
            } catch (ClassNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            
            }

  • 相关阅读:
    多线程(一)初步使用
    数据迁移:MSSQL脚本文件过大,客户端没有足够的内存继续执行程序
    统计数据,数据库就只有8,9,10的,而前端需要返回连续的记录
    Windows10禁用update
    C#模拟HTTP POST 请求
    C#中Equals和= =(等于号)的比较(转)
    .net framework4与其client profile版本的区别
    centos7 安装mysql
    JAVA中使用ASN.1
    使用gradle建立java application
  • 原文地址:https://www.cnblogs.com/hanxiaowen/p/5601808.html
Copyright © 2011-2022 走看看