【第17个代码模型】使用 PreparedStatement 操作数据库(PrepareStatement 查询案例)|学习笔记

简介: 快速学习 【第17个代码模型】使用 PreparedStatement 操作数据库(PrepareStatement 查询案例)

开发者学堂课程【【名师课堂】Java 高级开发【第17个代码模型】使用 PreparedStatement 操作数据库(PrepareStatement 查询案例)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/372/detail/4653


【第17个代码模型】使用 PreparedStatement 操作数据库(PrepareStatement 查询案例)


PreparedStatement接口查询(核心)

由于在实际的开发中心 PreparedStatement 接口的使用频率非常高,所以对于此接口的查询操作特别重要,下列为最基础的查询处理模型:

1、查询全部

Class.forName(DBDRIVER);//进行数据库驱动的加载

Connection conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSIString sql = " SELECT mid,name ,age,birthday, note FROM member" ;

Preparedstatement pstmt = conn.preparestatement(sql);

Resultset rs = pstmt.executeQuery() ;

while (rs.next())i

int mid = rs.getInt(1);

string name = rs.getstring(2);int age = rs.getInt(3) ;

Date birthday = rs.getDate(4) ;string note = rs.getstring(5);

system.out.println(mid +"、" + name + "、 "+age +"、"+ birthd

}

 

2、id 查询

public static final string DBUSER = "scott";

public static fina1 string DBPASSwORD = "tiger";

public static void main(String[] args)throws Exception {

Class.forName(DBDRIVER);//进行数据库驱动的加载

Connection conn = DriverManager.getConnection(DBURL,DBUSER, DBPASSNORD);string sql = " SELECT mid,name,age,birthday,note FRoM member WHERE mid=?" ;Preparedstatement pstmt = conn.preparestatement(sql);

pstmt.setInt(1,50);l

ResultSet rs = pstmt.executeQuery( ;while (rs.next()) i

int mid = rs.getInt(1) ;

string name = rs.getstring(2);int age = rs.getInt(3) ;

Date birthday = rs.getDate(4);string note = rs.getstring(5);

System.out.printIn(mid +" " +name + "、" +age +"." + birthday + ". " +note)

conn.close();

 

3、模糊查询处理

public static final string DBPASSWORD = "tiger";

public static void main(String[] args) throws Exception {

string column = "name" ; // 在那个列上执行模糊查询

String keyWord = "李" ; // 关键字

Class.forName ( DBDRIVER); // 进行数据库驱动的加载

Connection conn = DriverManager .getConnection( DBURL, DBUSER, DBPASS

//使用“?填充的占位符只有数据才可以使用,而对于列是无法使用的

String sq1 = " SELECT mid, name,age , birthday,note F ROM member WHERE

Preparedstatement pstmt = conn . prepareStatement(sq1) ;

pstmt. setInt(1, 50);

ResultSet rs = pstmt. executeQuery() ;

while (rs .next()) {

int mid = rs.getInt(1) ;


4、分页查询

Class.forName(DBDRIVER);//进行数据库驱动的加致

Connectionconn= DriverManager.getConnection(DBURL,DBUSER,DBPASSNORD);1/使用“?”填充的占位符只有数据才可以使用,而对于列是无法使用的

String sql = "SELECT * FROM("

+"SELECT mid,name, age,birthday, note,ROWNUM rn "

+"FROM member WHERE " + column + " LIKE ? AND ROWNUM<=? ) temp"

+" WHERE temp.rn>?";

Preparedstatementpstmt= conn.preparestatement(sql);pstmt.setstring(1,"%"+keyword+"%");

pstmt.setInt(2,currentPage* linesize);

pstmt.setInt(3,(currentPage - 1)* linesize); IResultset rs =pstmt.executeQuery(;

while (rs.next()) {

int mid =rs.getInt(1) ;

string name = rs.getstring(2);int age = rs.getInt(3);

Date birthday = rs.getDate(4) ;String note = rs.getstring(5);

System.out.println(mid + " " + name + "、" +age + "." +birthday + " " + note);

 

5、统计查询

public static final String DBUSER = "scott";

public static final string DBPASSWORD = "tiger";

public static void main(String[] args) throws Exception {

string column = "name” ; 1/在那个列上执行模糊查询

string keyword =“张”;1/关键字

Class.forName(DBDRIVER);//进行数据库驱动的加载

connection conn = DriverManager.getconnection(DBURL,DBuSER,DBPASSIORD);// 使用“?”填充的占位符只有数据才可以使用,而对于列是无法使用的

string sql = " SELECT COUNT(*) FROM member WHERE" + column +" LIKE ? " ;Preparedstatement pstmt = conn.prepareStatement(sql) ;

pstmt.setstring(1,"%"+keyword+"%");

Resultset rs = pstmt.executeQuery(O;if (rs.next())i

longl count = rs.getLong(1) ;system.out. println(count);

}

conn.close();

以上所给的几个开发代码是后续开发项目的核心基础部分,请牢固掌握

相关文章
|
22天前
|
存储 缓存 固态存储
怎么让数据库查询更快
【10月更文挑战第28天】
27 2
|
24天前
|
存储 缓存 关系型数据库
怎么让数据库查询更快
【10月更文挑战第25天】通过以上综合的方法,可以有效地提高数据库查询的速度,提升应用程序的性能和响应速度。但在优化过程中,需要根据具体的数据库系统、应用场景和数据特点进行合理的调整和测试,以找到最适合的优化方案。
|
24天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
120 1
|
24天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
45 2
|
25天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
211 2
|
24天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
54 0
|
15天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
29 1
|
17天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
30 4
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
64 3
Mysql(4)—数据库索引
|
26天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
77 2
下一篇
无影云桌面