当前位置:Gxlcms > 数据库问题 > JDBC(数据库的连接和使用)

JDBC(数据库的连接和使用)

时间:2021-07-01 10:21:17 帮助过:2人阅读

  • java.sql.Connection接口:负责连接数据库
  • java.sql.Statement接口:负责操作数据库
  • java.sql.ResultSet接口:负责封装查询的结果数据
  • java.sql.PreparedStatement:负责操作数据库 对sql语句进行预编译
  • 快速入门
         准备工作:
    1. 数据库中有可操作的数据
    2. 准备数据库的驱动jar包
    二、编码阶段:
    1. 操作数据库的一般流程
      1. 注册驱动
      2. 链接数据库
      3. 执行SQL语句操作数据库
      4. 遍历结果集
      5. 关闭资源
        1. //(1) 注册驱动
        2. DriverManager.registerDriver(newDriver());
        3. //(2) 连接数据库
        4. Connection conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/android","root","didi848484");
        5. //(3) 执行sql语句操作数据库
        6. //1.创建一个 Statement 对象来将 SQL 语句发送到数据库。
        7. Statement stem=conn.createStatement();
        8. //2.执行SQL语句
        9. ResultSet rs=stem.executeQuery("select * from user");
        10. //(4) 遍历结果集
        11. while(rs.next())
        12. {
        13. System.out.print("id:"+rs.getInt("id"));
        14. System.out.print(",username:"+rs.getString("username"));
        15. System.out.print(",password:"+rs.getString("password"));
        16. //.....
        17. System.out.println();
        18. }
        19. //(5) 关闭资源
        20. rs.close();
        21. stem.close();
        22. conn.close();
    2. 数据库连接流程详解
      1. 注册驱动
        一般有2种方式:
        1.第一种方式,使用DriverManager提供的方法来注册
        格式:DriverManager.registerDriver(new Driver())//这里的new Driver()一定要导入对应数据库JAR包中的类
        例子:DriverManager.registerDriver(new Driver()); //这种方式一半不使用,原因是跟踪源码发现,源码内驱动重复注册,影响效率。
        技术分享
        2.第二种方式:使用反射来注册
        格式:Class.forName("驱动的全包名");
        例子:Class.forName("com.mysql.jdbc.Driver");
        1. Class.forName("com.mysql.jdbc.Driver");
        开发中一般使用反射的方式来注册驱动。好处有两点,一:驱动只注册一次,提高了效率。二:可以将驱动的全包名提取成配置文件 解耦合 方便后期维护
      2. 连接数据库
        格式:Connection conn = DriverManager.getConnection(url,name,password);
        url:数据库的地址
              格式:主协议:子协议://主机:端口/数据库名称
              示例:jdbc:mysql://localhost:3306/jdbc
              注意:如果主机是本机(localhost)端口也是默认的3306则可以简写为:jdbc:mysql:///jdbc
        name:用户名
        password:密码
      3. 创建Statement来执行sql语句
        1. 创建Statement对象
          格式:Statement stmt = conn.createStatement();
        2. 执行sql语句
          使用Statement 对象下的2个方法来执行SQL语句
          a.int executeUpdate(String sql) : 返回值int 是影响的行数//主要用来执行:增、删、改语句或者不返回任何内容的SQL语句(如 SQL DDL 语句)
          b.ResultSet    executeQuery(String sql) :执行查询语句 返回结果ResultSet//主要用于接收select 语句查询的结果
      4. ResultSet结果集
        ResultSet内部封装的是查询返回的数据:ResultSet就是对查询的结果的封装就可以看成一张表 其内部维护着一个游标(指针)起初游标指向在第一条数据的上面,当我们执行next()方法时,游标会向下窥探一下是否存在下一条数据,如果有next方法会返回true,并且游标向下移动一行,如果没有下一条数据返回false,当游标指向某一行时,可以通过getXXX()方法取得这一行中的某一个字段下的数据。
        如何取ResultSet中的数据
        1.首先通过next()方法窥探结果集中是否有下一行数据,如果有返回true且结果集指针移动到下一行,否则返回false
        2.当next()方法返回为true时,可以通过ResultSet对象的方法取出数据,如:getInt()     getString()     getDate()    getObject()  括号内参数:字段名称 (查询出的字段名称)
        1. //创建ResultSet对象来接收查询结果
        2. ResultSet rs=stem.executeQuery("select * from user");
        3. //通过next()和各类get方法取出数据
        4. while(rs.next())
        5. {
        6. System.out.print("id:"+rs.getInt("id"));
        7. System.out.print(",username:"+rs.getString("username"));
        8. System.out.print(",password:"+rs.getString("password"));
        9. //.....
        10. System.out.println();
        11. }
      5. 关闭资源
        原则:与数据库有关系的资源全部关闭 从小到大关闭
        RresultSet---->Statement------->Connection



    来自为知笔记(Wiz)



    JDBC(数据库的连接和使用)

    标签:

    人气教程排行