回顾JDBC之Oracle的CRUD以及分页细节

简介: 回顾JDBC之Oracle的CRUD以及分页细节

一、【注意:开发中很少再使用用Statement接口了】


  • 1.Statemen只需要传入完整的sql就可以操作了。
  • 2.使用它的子接口 PreparedStatement


1.1 笔者在写软件曾引发sql注入,以此回顾

package com.wang.aliyun.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Date;
/**  
 * @author captain  
 * @date 2019年1月2日  
 * 【注意:开发中很少用Statement接口】
 * 1.只需要传入完整的sql就可以操作了。
 * 2.使用它的子接口 PreparedStatement
 */
public class JDBCDemo2 {
  public static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
  public static final String URL = "jdbc:oracle:thin:@localhost:1521:mldn";
  public static final String USER = "scoot";
  public static final String PASSWORD = "tiger";
  public static void main(String[] args) throws Exception{
    // 1.引入Oracle的驱动类
    Class.forName(DRIVER);
    // 2.创建连接
    Connection conn = DriverManager.getConnection(URL,USER,PASSWORD);
    // 3.更新
    // 如果使用拼接 的丽'热巴 会报错,单引号在数据库中是字符串
    //String name = "迪丽'热巴";
    //int age = 18;
    //Date birth = new Date();
    //String note = "美女我的";
    //String sql = " INSERT INTO member(id,name,age,birth,note) VALUES(myseq.nextval,?,?,?,?)";
    // 创建操作对象【注意:开发中很少用Statement接口】
    //PreparedStatement pstmt = conn.prepareStatement(sql);
    //pstmt.setString(1,name);
    //pstmt.setInt(2,age);
    //pstmt.setDate(3,new java.sql.Date(birth.getTime()));
    //pstmt.setString(4, note);
    //pstmt.executeUpdate();
    // 4.模糊查询
    //String column = "name"; // 定义模糊查询的列
    //String keyword = "热巴"; // 模糊词
    //String sql = " select id,name,age,birth,note from member where"+ column +" like ?";
    //PreparedStatement pstmt = conn.prepareStatement(sql);
    // 模糊查询
    //pstmt.setString(1, "%"+ keyword +"%");
    // 5. 根据id查询
    //String sql = " select id,name,age,birth,note from member where id =?";
    //PreparedStatement pstmt = conn.prepareStatement(sql);
    //pstmt.setInt(1,50);
    // 6.分页查询
    String column = "name"; // 定义模糊查询的列
    String keyword = "热巴"; // 模糊词
    int currentPage = 1; // 当前页
    int lineSize = 5; // 分页大小
    String sql = "SELECT * FROM("
        + " SELECT id,name,birth,note,ROWNUM rn "
        + " FROM member WHERE "+ column + " LIKE ? AND ROWNUM <=?) temp"
        +" WHERE temp.rn>?";
    PreparedStatement pstmt = conn.prepareStatement(sql);
    // 模糊查询
    pstmt.setString(1, "%"+ keyword +"%");
    // 分页查询
    pstmt.setInt(2,currentPage * lineSize);
    pstmt.setInt(3,(currentPage-1) * lineSize);
    // 7.封装数据 ResultSet 可以封装查询的所有数据
    ResultSet rs = pstmt.executeQuery(sql);
    while (rs.next()) {
      int id = rs.getInt(1);
      String name1 = rs.getString(2); 
      Date birth1 = rs.getDate(3);
      System.out.println(id+name1+birth1);
    }
    conn.close();
  }
}


目录
相关文章
|
6月前
|
SQL Oracle 关系型数据库
WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database
WARNING: Too Many Parse Errors With error=911 When Running a JDBC Application Connected to an Oracle 19c database (
91 2
|
6月前
|
Oracle Java 关系型数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
【服务器】python通过JDBC连接到位于Linux远程服务器上的Oracle数据库
78 6
|
6月前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用合集之使用JDBC方式读取Oracle的number类型时,通过什么方式进行映射
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
158 0
实时计算 Flink版产品使用合集之使用JDBC方式读取Oracle的number类型时,通过什么方式进行映射
|
6月前
|
SQL Oracle 关系型数据库
常用数据库的分页语句(mySQL、oracle、PostgreSQL、SQL Server)
常用数据库的分页语句(mySQL、oracle、PostgreSQL、SQL Server)
|
6月前
|
安全 Java
javaweb实训第四天下午——员工管理系统-JSP&Servlet&JDBC综合练习-CRUD
1.课程介绍 Servlet细节; (掌握) 员工信息相关的CRUD; (掌握) 部门信息相关的CRUD; (掌握) 2.Servlet细节 2.1.多种匹配方式
94 0
|
Oracle 关系型数据库 Java
分享一个 Oracle RAC 模式下客户端建立JDBC初始连接时因ONS造成应用启动时卡顿30秒问题的排查分析案例
分享一个 Oracle RAC 模式下客户端建立JDBC初始连接时因ONS造成应用启动时卡顿30秒问题的排查分析案例
|
SQL 存储 缓存
JDBC使用PreparedStatement实现CRUD操作
JDBC使用PreparedStatement实现CRUD操作
157 0
|
Oracle Java 关系型数据库
maven中安装oracle jdbc包到仓库以及引入
maven中安装oracle jdbc包到仓库以及引入
|
SQL Oracle Java
Java java jdbc thin远程连接并操作Oracle数据库
Java java jdbc thin远程连接并操作Oracle数据库
146 0
|
28天前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
152 64

推荐镜像

更多