【301cloud源码】【倒数404源码】【snake模型 源码】curd源码

时间:2024-11-30 02:12:58 编辑:shop 5.0源码 来源:pix源码阅读

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

curd源码

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

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

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

       1. 安装Mysql

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

       1) 下载Mysql安装包

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

       2) 安装Mysql

       根据自己的snake模型 源码操作系统版本和位数选择对应的安装程序,一路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的流程类似。