使用占位符对数据库进行操作

吐血总结《Mysql从入门到入魔》,图文并茂 文章目录1. 查询1.1 查询多列1.2 检索唯一值1.3 限制输出1.4 注释2. ORDER BY 排序2.1 单列排序3.2 多列排序3.3 指定排序方向4. WHERE 过滤数据4.1 WHERE 子句操作符4.2 范围值检查4.3 空值检查5. 高级数据过滤5.1 WHERE 组合过滤5.2 IN 操作符5.3 NOT 操作符6. 通配符过滤6.1 % 通配符6.2 _ 通配符7. 创建计算字段7.1 计算字段7.2 拼接字段7.3 执行算数计算8. 函数8.1 常用文本处理函数8.2 日期和时间 阅读详情



 

 



 

在main.xml中:

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical"

    android:gravity="center_horizontal">

 

    <Button

        android:id="@+id/insertBut"

        android:layout_marginTop="8dp"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="增加数据" />

    <Button

        android:id="@+id/updateBut"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="修改数据" />

    <Button

        android:id="@+id/deleteBut"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="删除数据" />

 

</LinearLayout>

 

 

 

 

 

创建数据库的建表操作类Mytab.java

 

package com.li.sqlite;

 

import android.database.sqlite.SQLiteDatabase;

 

public class Mytab {

  private static final String TABLENAME = "mytab"; // 表示要操作的数据表名称

  private SQLiteDatabase db = null; // 数据库操作

 

  public Mytab(SQLiteDatabase db) { 

     this.db = db;

  }

  public void insert(String name,String birthday) {  //向表中增加数据

     String sql = "INSERT INTO " + TABLENAME + "(name,birthday) VALUES (?,?)";

     Object args[] = new Object[]{name,birthday};

     this.db.execSQL(sql,args) ;

     this.db.close() ;

  }

 

  public void update(int id, String name, String birthday) {  //修改表的数据

     String sql = "UPDATE " + TABLENAME + " SET name=?,birthday=? WHERE id=?";

     Object args[] = new Object[]{name,birthday,id};

     this.db.execSQL(sql,args);

     this.db.close() ;

  }

 

  public void delete(int id) {     //删除表的数据

     String sql = "DELETE FROM " + TABLENAME + " WHERE id=?";

     Object args[] = new Object[]{id};

     this.db.execSQL(sql,args) ;

     this.db.close() ;

  }

}

 

 

 

 

在MySQLiteDemo.java中:

 

package com.li.sqlite;

 

import android.app.Activity;

import android.database.sqlite.SQLiteOpenHelper;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

 

public class MySQLiteDemo extends Activity {

  private Button inserBut = null;

  private Button updateBut = null;

  private Button deleteBut = null;

  private SQLiteOpenHelper helper = null;

  private Mytab mtab = null;

  private static int count = 0;

  @Override

  public void onCreate(Bundle savedInstanceState) {

     super.onCreate(savedInstanceState);

     super.setContentView(R.layout.main);

     this.inserBut = (Button)super.findViewById(R.id.insertBut);

     this.updateBut = (Button)super.findViewById(R.id.updateBut);

     this.deleteBut = (Button)super.findViewById(R.id.deleteBut);

     this.helper = new MyDatabaseHelper(this);

     this.inserBut.setOnClickListener(new InertOnClickListenerImpl());

     this.updateBut.setOnClickListener(new UpdateOnClickListenerImpl());

     this.deleteBut.setOnClickListener(new DeleteOnClickListenerImpl());

  }

  private class InertOnClickListenerImpl implements OnClickListener{

     public void onClick(View v) {

       MySQLiteDemo.this.mtab = new Mytab(

            MySQLiteDemo.this.helper.getWritableDatabase());

       MySQLiteDemo.this.mtab.insert("liyewen" + count++, "1988-08-16");

     }

    

  }

  private class UpdateOnClickListenerImpl implements OnClickListener{

     public void onClick(View v) {

       MySQLiteDemo.this.mtab = new Mytab(

            MySQLiteDemo.this.helper.getWritableDatabase());

       MySQLiteDemo.this.mtab.update(30, "update", "1988/8/15");

     }

    

  }

  private class DeleteOnClickListenerImpl implements OnClickListener{

     public void onClick(View v) {

       MySQLiteDemo.this.mtab = new Mytab(

            MySQLiteDemo.this.helper.getWritableDatabase());

       MySQLiteDemo.this.mtab.delete(31);

     }

    

  }

}

 

Aip1640、TM1640驱动程序 本文介绍了AIP1640/TM1640驱动芯片的编程实现,主要包括硬件接口定义和通信协议函数。通过宏定义配置时钟(CLK)和数据线(DIO)的GPIO控制,实现了I2C协议的启动、停止、字节发送等基本操作。核心函数AIP1640_Disp_Drive()完成显示驱动流程:先发送0x40命令设置地址自增模式,再发送0xC0起始地址和16字节显示数据,最后设置亮度参数。文中还包含5微秒延时函数、显示数据缓冲区定义,以及LED和数码管(SMG)的位映射注释说明。该代码适用于控制LED数码管显示,支持亮度调节功能。 阅读详情

相关推荐

从Mule ESB到Apache Camel:手把手教你设计一个轻量级企业集成框架的‘心脏’

本文深入探讨了从Mule ESB到Apache Camel的轻量级企业集成框架设计实践,对比了两者在协议支持、消息处理能力和部署灵活性等方面的差异。通过实际代码示例和性能优化技巧,帮助开发者构建高效的核心模块,适用于现代微服务架构下的系统集成需求。

weixin_28738165的博客 375

java mysql 占位符_MyBatis中#{}占位符与${}拼接符的用法说明

1、关于#{}占位符先来看以下的示例,该示例是MyBatis中的SQL映射配置文件(Mapper配置文件),在该配置中使用了#{}占位符。/p>PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">SELECT * FROM tb_user WHERE id = ...

weixin_26801149的博客 1509

RS232/RS485/CAN_BUS 通信原理总结与通信波形分析

分析一:232串口信号要点:RS232,全双工,采用三线制传输分别为TXD\RXD\GND,其中TXD为发送信号,RXD为接收信号。在RS232中任何一条信号线的电压均为负逻辑关系。即:-15v ~ -3v 代表1 +3v ~ +15v 代表0测试结果与分析:如图所示,以传输一个8位二进制数值“01101010”为例,异步传输数据的一般格式为:起始位+校验位+数据位+停止位。其中,校验位为可选项。...

乔木鱼 1万+

Oracle数据库中占位符的使用

在 Oracle 中,数字占位符(如:1:2)可以用于执行动态查询、PL/SQL 块以及存储过程,它们提升了 SQL 的安全性与可维护性。确保在使用时保持参数的顺序正确,并且类型要匹配。通过这种方式,可以安全地处理用户输入,避免 SQL 注入攻击。

m0_51548758的博客 1400

华大HC32F460 TCP Server实验

华大HC32F460 TCP Server实验

ZhuoWuKeJi的博客 1270

PySpark机器学习生产化陷阱:跨节点依赖问题的7种解决方案

隐式依赖陷阱使用ldd解决方案:在基础镜像中预装和路径冲突终极解法依赖树瘦身技巧用conda-tree可减少40%环境体积PySpark机器学习生产化的核心矛盾在于分布式环境的确定性与灵活性不可兼得。轻量级方案(1-3)牺牲一致性换取灵活性重量级方案(4-6)牺牲灵活性换取确定性混合方案(7)针对特殊场景补充正如某AI平台架构师所言:“环境一致性不是技术问题,而是工程纪律问题选择适合团队当前阶段的方案,建立严格的依赖管理流程,才能让PySpark真正扛起生产环境的大旗。

datacanvas2426的博客 911

数据库——占位符的使用

使用占位符的好处 1 避开了SQL语句注入的风险 SQL注入风险:使用Statement接口操作的sql语句需要使用字符串拼接的方式实现,这样的方式可能存在sql注入的安全风险并且拼接字符串比较麻烦的 2 传入字符串参数时无需用再用单引号包裹 观察如下两段代码: 代码一:不使用占位符 public class JdbcTest { public static void ma...

java小知识分享 4929

2024-江苏科技大学-模拟-动态接触角,模拟液滴撞击,comsol软件模拟。

相反,其对液滴粘度和平衡接触角的变化基本不敏感。重力势能的影响显著受过程参数调节,随着液滴直径和密度的增加而增加,而随着初始液滴速度和表面张力系数的增加而减小。通过考虑形状因子和粘度修正因子,可以准确定义表面能和粘性耗散能,使得所提出的半经验修正勺状模型表现出良好的性能,在所有65个研究案例中,液滴最大铺展长度因子(βmax)和中心厚度(h)的相对误差基本分别落在5%和10%的区间内。重力势能的影响受过程参数显著调节,随液滴直径和密度的增大而增大,随液滴初始速度和表面张力系数的增大而减小。

qq_15963745的博客 512

SQL中占位符?的用法介绍~

Sql语句中的占位符?有什么作用 String sql = "SELECT userid,name FROM tuser WHERE userid=? AND password=?" ; pstmt = conn.prepareStatement(sql) ; pstmt.setString(1,userid) ; // 这里设置了第一个?的值 pstmt.setString(2,pas...

程序人生~ 4万+

定位教程7---旋转中心标定之方法二

手算相机相对机器人关系

Quintin 6230

【微服务】Spring Aop原理深入解析

spring原理深度解析

congge 1万+

Android笔记003_Android的sql里面的占位符的理解

ndroid提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQuery()方法。 execSQL()方法可以执行insert、delete

hbg优快云的专栏 2400

【AI应用实战-OpenCode】OpenCode安装部署(一)

OpenCode是一款2026年流行的开源AI编程工具,兼具轻量代码编辑器和智能编码代理功能。其核心优势包括:完全免费开源(MIT协议)、全平台兼容、支持75+大模型(含本地部署)、内置完整编程功能链(代码补全/Git集成/AI调试等),且所有数据本地存储确保隐私安全。相比Copilot等商业工具,OpenCode提供更自由的模型选择和零门槛使用体验。安装要求Windows10+/macOS12+/Linux主流发行版,仅需200MB空间和4G内存。该工具完美兼容VSCode生态,支持终端/桌面/IDE三种

2432

mysql 占位符使用_使用占位符对数据库进行操作 | 学步园

在main.xml中:android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical"android:gravity="center_horizontal">android:id="@+id/insertBut"android:layout_marginTop...

weixin_39819661的博客 794

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Jfinal数据库操作语句中占位符的使用

占位符的优点: 1.增加SQL代码可读性 2.占位符可以预先编译,提高执行效率 3.防止SQL注入 4.用占位符的目的是绑定变量,这样可以减少数据SQL的硬解析,所以执行效率会提高不少 假设要将id从1到10000的员工的工资都更新为150.00元,不使用绑定变量:sql.executeQuery("UPDATE employees SET salay = 150.00 WHE...

diaoqu0519的博客 375

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Python连接DB2数据库

python版本为3.5首先需要导入的IBM的数据包:ibm_db 注意事项: 就是一定记得要关闭连接。 读取数据只能一行一行读取,需要result = ibm_db.fetch_both(stmt) 代码在调下一行 #-*-coding-*- import ibm_db import time conn = ibm_db.connect("DATABASE=EDW;HOSTNAME=输入IP;PORT=端口;PROTOCOL=通信协议;UID=用户名;PWD=密码;", "", "") #prin

我的博客 3167

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Go语言中database/sql包操作MySQL(检索结果集)

有几种习惯操作可以从数据存储中检索结果。执行一个返回行的查询。准备重复使用的声明,多次执行并销毁它。以一次性方式执行陈述,而不准备重复使用。执行一个返回单行的查询。这个特例有一个捷径。Go的database/sql函数名称很重要。如果一个函数名包含Query,它被设计为询问数据库的问题,并且将返回一组行,即使它是空的。不返回行的语句不应该使用Query函数; 应该使用Exec()。从数据库获取数据...

万彬学习的博客 4737

连接mysql数据库_Golang如何优雅连接MYSQL数据库?

点击上方“JavaEdge”,关注公众号设为“星标”,好文章不错过!Go原生就支持连接数据库,所以在使用 Golang 开发时,当需要数据库交互时,即可使用database/sql包。在Go中访问DB需用sql.DB接口:可创建语句(statement)和事务(transaction),执行查询,获取结果。使用DB时,除database/sql包,还需引入想使用的特定DB驱动。官方不...

weixin_36071315的博客 128

Drupal 7 数据库 操作

****在操作drupal 的数据库前建议先了解一下 drupal的数据表***一般情况下,我们使用drupal 只需了解drupal 的函数,当然要精通还是需要深入的了解drupal的框架。Drupal 7 使用 PDO 连接数据库,鉴于 PHP 6将把 PDO 做为默认数据库连接方式,这是必须的选择。实际上,Drupal 7之前的数据库抽象层,和 PDO 的某些理念一致,...

weixin_33928467的博客 137

tp操作mysql_tp数据库操作

1、常见的数据库操作//插入记录// $insert=Db::execute("insert into tp_user (username,password) values ('dome','pass2')");////用?号代表参数占位符 []里的就是参数// $insert=Db::execute("insert into tp_user (username,password) values...

weixin_29145623的博客 584

原生sql_习惯了ORM,原生的包还会使用吗?需要不断重新看看 database/sql

MySQL是常用的关系型数据库,本文介绍了Go语言如何操作MySQL数据库。Go操作MySQL连接Go语言中的database/sql包提供了保证SQL或类SQL数据库的泛用接口,并不提供具体的数据库驱动。使用database/sql包时必须注入(至少)一个数据库驱动。我们常用的数据库基本上都有完整的第三方实现。例如:MySQL驱动下载依赖使用MySQL驱动Open打开一个dirverName指定...

weixin_33810040的博客 214

ruby mysql 占位符_ruby操作常用数据库 - 使用DBI[翻译 转帖]

使用Ruby DBI模块目录Ruby DBI模块为ruby程序访问数据库提供了一个与数据库无关的接口,就像perl的DBI模块一样。这篇文章将讲述如何编写基于DBI的ruby程序。这篇文章是对DBI规范文档(specification documents)的补充,而不是要替代规范文档,更多的信息请参见“资源”一节。Ruby的DBI 模块架构分为两层:数据库接口层(database interfac...

weixin_35055546的博客 243

thinkphp连mysql增删改查_ThinkPHP 数据库操作(二) : 增删改查

基本使用可以直接使用数据库运行原生SQL操作了,支持 query (查询操作)和 execute (写入操作)方法,并且支持参数绑定。Db::query('select * from think_user where id=?',[8]);Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);也支...

weixin_36140403的博客 375

JDBC—配置文件、创建并使用工具类、SQL注入问题及其解决方案、连接池问题、DBCP数据源的使用

目录1. db.properties配置2. 创建JdbcUtils类使用 JdbcUtils类3. 使用占位符实现sql语句动态更改4. SQL注入5. PreparedStatement 1. db.properties配置 driver=com.mysql.jdbc.Driver url="jdbc:mysql://localhost:3306/[数据库名]useUnicode=true&characterEncoding=utf8&useSSL=true" username=[用户名

OlarianBlog 394

报错问题Parameter index out of range(0 < 1) (1 > number of parameters,which is 0

报错Parameter index out of range(0 < 1)(1 > number of parameters,which is 0)

weixin_57711380的博客 2800

如何配置JDBC使连接上数据库

什么是jdbc JDBC(JavaDataBase Connectivity)就是Java数据库连接,是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。 由SUN公司提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现。SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的,可以访问自己数据库的API被称之为驱

共享,共进步 816
上一篇: JSON解析数组(包含其他)
下一篇: 使用ContentValues对数据库进行操作
Android人生
博客等级 码龄14年 14粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值