zoukankan      html  css  js  c++  java
  • jdbc学习笔记

    连接步骤:

    1. 注册驱动
      Class.forName("com.mysql.jdbc.Driver");
    2. 获取连接对象
      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/newdb3", "root", "123456");
      System.out.println(conn);
    3. 创建执行SQL语句的对象
      Statement stat = conn.createStatement();
    4. 执行SQL
      String sql = "create table jdbct1(id int primary key auto_increment,name varchar(10))";
      stat.execute(sql);
    5. 关闭资源
      conn.close();

    Statement

    • execute(sql) 执行sql,返回值为布尔值,返回值true代表有结果集 false代表没有结果集,此方法可以执行任意SQL,但是只推荐执行DDL(数据定义语言)
    • executeUpdate(sql) 此方法执行insert、update、delete,返回值int,返回值代表生效行数
    • executeQuery(sql) 此方法执行select 返回值为ResultSet(结果集)

    ResultSet

    • 两种获取数据的方式
    1. rs.getString("查询结果中字段的名称");
    2. rs.getString(查询结果中字段的位置); 位置从1开始

    连接池DBCP

    • Database Connection Pool 数据库连接池
    • 为什么使用连接池: 将连接重用,避免资源浪费,提高执行效率
      dataSource.setInitialSize(3);//初始连接数量
      dataSource.setMaxActive(5);//最大连接数量

    PreparedStatement

    • 预编译sql执行对象
    • 好处:
    1. 代码结构整齐,可读性高
    2. 带有预编译功能,在创建对象时就把sql逻辑固定,可以避免sql注入( ' or '1'='1)
    3. 因为带有预编译功能,如果批量插入多条数据时,可以只编译一次sql,从而提高执行效率
    • 当sql语句中没有变量时使用Statement,如果有变量时使用PreparedStatement

    分页查询

    		String sql = "select name from jdbcperson "
    				+ "limit ?,?";
    		PreparedStatement ps = 
    				conn.prepareStatement(sql);
    		ps.setInt(1, (page-1)*count);
    		ps.setInt(2, count);
    		ResultSet rs = ps.executeQuery();
    		while(rs.next()) {
    			String name = rs.getString(1);
    			System.out.println(name);
    		}
    

    事务

    1. 关闭事务自动提交
      conn.setAutoCommit(false)
    2. 提交事务
      conn.commit();
    3. 回滚事务
      conn.rollback();
  • 相关阅读:
    ffmpeg结构体以及函数介绍(三)
    FFMPEG解码流程(转)
    ffmpeg结构体以及函数介绍(一)
    摄像头视频采集压缩及传输
    bedework文档(开始简单部分)
    【实时数据库PISDK】关于PITime的悲剧
    【项目研究】自动安装并配置ODBC的思路与实现
    【读书笔记】动态链接库
    如何最快测试CPU是大端机还是小端机?
    学习编程的五条捷径
  • 原文地址:https://www.cnblogs.com/Libbo/p/10481318.html
Copyright © 2011-2022 走看看