【第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();

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

相关文章
|
5月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
6月前
|
人工智能 安全 机器人
无代码革命:10分钟打造企业专属数据库查询AI机器人
随着数字化转型加速,企业对高效智能交互解决方案的需求日益增长。阿里云AppFlow推出的AI助手产品,借助创新网页集成技术,助力企业打造专业数据库查询助手。本文详细介绍通过三步流程将AI助手转化为数据库交互工具的核心优势与操作指南,包括全场景适配、智能渲染引擎及零代码配置等三大技术突破。同时提供Web集成与企业微信集成方案,帮助企业实现便捷部署与安全管理,提升内外部用户体验。
686 12
无代码革命:10分钟打造企业专属数据库查询AI机器人
|
6月前
|
安全 druid Nacos
0 代码改造实现应用运行时数据库密码无损轮转
本文探讨了敏感数据的安全风险及降低账密泄漏风险的策略。国家颁布的《网络安全二级等保2.0标准》强调了企业数据安全的重要性。文章介绍了Nacos作为配置中心在提升数据库访问安全性方面的应用,并结合阿里云KMS、Druid连接池和Spring Cloud Alibaba社区推出的数据源动态轮转方案。该方案实现了加密配置统一托管、帐密全托管、双层权限管控等功能,将帐密切换时间从数小时优化到一秒,显著提升了安全性和效率。未来,MSE Nacos和KMS将扩展至更多组件如NoSQL、MQ等,提供一站式安全服务,助力AI时代的应用安全。
408 14
|
6月前
|
SQL 数据建模 关系型数据库
别光知道存数据库了,数据建模才是王道!(入门指南+实战代码)
别光知道存数据库了,数据建模才是王道!(入门指南+实战代码)
960 4
|
5月前
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
3月前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
165 3
|
3月前
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
3月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
802 152
|
3月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。

热门文章

最新文章