【构建拓扑源码】【怎么快速升级源码】【充值工具源码在哪】curd源码

时间:2024-12-22 18:59:22 分类:教研 php源码下载 来源:apk项目源码

1.Mysql走天下教你简单实现CRUD操作mysql中curd
2.Android N 四大组件的工作原理

curd源码

Mysql走天下教你简单实现CRUD操作mysql中curd

       Mysql走天下——教你简单实现CRUD操作

       Mysql是源码一种流行的关系型数据库,它提供了一组可靠的源码工具,使得开发者可以轻松地进行数据管理和查询。源码Mysql支持各种操作,源码包括增、源码删、源码构建拓扑源码改、源码查等基本操作,源码我们经常称为CRUD操作。源码在这篇文章中,源码我将教你如何简单实现Mysql的源码CRUD操作。

       1. 安装Mysql

       我们需要安装Mysql数据库。源码Mysql数据库有多种安装方式,源码如二进制安装、源码源代码安装等。源码怎么快速升级源码这里我介绍最为常用的二进制安装方式。(安装过程如下,不用翻译)

       1) 下载Mysql安装包

       在官网上下载Mysql的安装包,这里以Mysql 5.7为例。下载完成以后,解压缩即可。

       2) 安装Mysql

       根据自己的充值工具源码在哪操作系统版本和位数选择对应的安装程序,一路Next即可完成安装。安装过程中,需要设置Mysql的root用户密码。

       2. 连接Mysql

       安装完成以后,我们需要利用Mysql提供的官方客户端连接到数据库。

       1) 启动Mysql服务器

       在安装完成后,为了连接到Mysql数据库,梭哈棋牌源码搭建我们需要启动Mysql服务器。在Windows操作系统上,可以通过“开始”菜单中的“Mysql Server 5.7”进行启动。

       2) 连接Mysql

       Mysql提供了多种连接方式,如本机连接、远程连接等。这里我们以本机连接为例。权限资源码规则在命令行中输入下列命令来连接:

       mysql -u root -p

       注意:-u后面表示用户名,-p后面表示密码。

       输入完命令以后,会提示输入密码,输入正确的root密码进行连接。

       3. 创建表

       在连接到Mysql数据库以后,我们需要创建一个表来储存数据。

       创建表的语句:

       CREATE TABLE students (

        id INT() NOT NULL AUTO_INCREMENT,

        name VARCHAR() COLLATE utf8_bin NOT NULL,

        age INT() NOT NULL,

        PRIMARY KEY (id)

       ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

       4. 插入数据

       表创建完成后,我们需要往表中插入一些数据。插入数据可以使用INSERT INTO语句。

       INSERT INTO students (name, age) VALUES (‘张三’, );

       5. 更新数据

       当我们需要更新表中的数据的时候,可以使用UPDATE语句。

       UPDATE students SET name=’李四’ WHERE id=1;

       6. 删除数据

       删除数据可以使用DELETE语句。

       DELETE FROM students WHERE id=1;

       7. 查询数据

       我们需要从表中查询数据。可以使用SELECT语句。

       SELECT * FROM students WHERE age>;

       总结

       在这篇文章中,我们简单介绍了Mysql的安装、连接、创建表、增删改查的操作。Mysql是一个强大的关系型数据库,可以完成各种大小任务。希望这篇文章能够帮助你学习Mysql。除此之外,欢迎读者在评论区分享自己的Mysql学习经验和技巧。

       参考代码:

       #数据库连接

       import pymysql

       connection=pymysql.connect(host=’localhost’,user=’root’,password=”,db=’testdb’)#用户名为root,密码为空,数据库名为testdb

       cursor=connection.cursor()

       #插入数据

       sql=”INSERT INTO students (name, age) VALUES (‘张三’, );”

       cursor.execute(sql)

       #更新数据

       sql=”UPDATE students SET name=’李四’ WHERE id=1;”

       cursor.execute(sql)

       #删除数据

       sql=”DELETE FROM students WHERE id=1;”

       cursor.execute(sql)

       #查询数据

       sql=”SELECT * FROM students WHERE age>;”

       cursor.execute(sql)

       result=cursor.fetchall()

       for r in result:

        print(r)

       #断开连接

       connection.close()

Android N 四大组件的工作原理

       æœ¬æ–‡ä¾§é‡è®²è§£android N 系统中四大组件的工作原理,不同系统原理略有差别。通过分析四大组件的工作流程加深对Android Framework的理解,也为插件化开发打下基础。

        Activity

        展示一个界面并和用户交互,它扮演的是一个前台界面的角色。

        Service

        计算型组件,用于后台执行一系列计算任务,工作在主线程,耗时操作需要另起线程, 分为启动状态和绑定状态。

        BroadcastReceiver

        消息型组件,主要用于不同组件或者不同应用之间的消息传递,它工作在系统内部,不适合执行耗时操作,操作超过5s,会出现ANR。

        ContentProvider

        数据共享型组件,用于向其他组件或者应用共享数据,主要执行CURD操作。

        我们启动一个activity有两种方法,

        第一种(Activity直接启动方式):

        Intent intent = new Intent(this, MainActivity.class);

        startActivity(intent);

        第二种(Context启动方式)

        Intent intent = new Intent(this, MainActivity.class);

        getApplicationContext().startActivity(intent);

        不同的启动方式Activity的工作流程有点差别。

        两种启动都会调用到Instrumentation类中的execStartActivity的方法,系统最终是通过ActivityThread中的performLaunchActivity完成Activity的创建和启动。

        performLaunchActivity方法主要完成以下工作:

        1、通过ActivityClientRecord对象获取启动activity的组件信息

        2、通过mInstrumentation对象的newActivity方法调用classloader完成activity的创建

        3、通过r.packageInfo(LoadedApk 对象)的makeApplication方法尝试创建Application对象

        4、创建ContextImpl对象并调用Activity的attach方法完成一些数据的初始化

        5、调用Activity的onCreate方法

        在Activity启动的过程中,App进程会频繁地与AMS进程进行通信:

        App进程会委托AMS进程完成Activity生命周期的管理以及任务栈的管理;这个通信过程AMS是Server端,App进程通过持有AMS的client代理IActivityManager完成通信过程;

        AMS进程完成生命周期管理以及任务栈管理后,会把控制权交给App进程,让App进程完成Activity类对象的创建,以及生命周期回调;这个通信过程也是通过Binder完成的,App所在server端的Binder对象存在于ActivityThread的内部类ApplicationThread;AMS所在client通过持有IApplicationThread的代理对象完成对于App进程的通信。

        Service有两种启动方式,startService()和bindService(),两种状态可以并存:

        startService流程

        bindService流程

        BroadcastReceiver的工作过程主要包括广播的注册、发送和接收:

        动态注册过程:

        发送过程

        静态注册是由PackageManagerService(PMS)在应用安装的时候完成整个注册过程的,除广播以外,其他三大组件也都是在应用安装时由PMS解析并注册的。

        每个进程的入口都是ActivityThead.main(),App的启动流程如下:

        从源码中可以看出:

        应用启动的入口为ActivityThread的main方法,main方法会创建ActivityThread实例并创建主线程消息队列。

        attach方法中远程调用AMS的attachApplication方法,并提供ApplicationThread用于和AMS的通信。

        attachApplication方法会通过bindApplication方法和H来调回ActivityThread的handleBindApplication,这个方法会先创建Application,再加载ContentProvider,然后才会回调Application的onCreate方法。

        由上图可以看出,在ContentProvider的启动过程中伴随着app进程的启动。

        ContentProvider的其他CURD操作如insert,delete,update跟query的流程类似。