• Swoft2.x 小白学习笔记 (二) --- mysql、redis


    介绍swoft中

      1、mysql、

      2、Redis

    一、mysql使用:

      1、配置,在 appean.php文件中

       'db' => [
            'class'    => Database::class,
            'dsn'      => 'mysql:dbname=webdemo;host=localhost',
            'username' => 'root',
            'password' => 'foto_cj1',
        ],
    //链接池配置
    'db2.pool' => [ 'class' => Pool::class, 'database' => bean('db'), 'minActive' => 10, 'maxActive' => 20, 'maxWait' => 0, 'maxWaitTime' => 0, 'maxIdleTime' => 60, ],

      2、生成Model,一个Model对应一张表。在 /App/Model/Entity/ 文件夹下新建文件

    <?php declare(strict_types=1);
    
    namespace AppModelEntity;
    
    use SwoftDbAnnotationMappingColumn;
    use SwoftDbAnnotationMappingEntity;
    use SwoftDbAnnotationMappingId;
    use SwoftDbEloquentModel;
    
    /**
     *
     * Class Demo
     *
     * @since 2.0
     *
     * @Entity(table="demo",pool="db2.pool")  //定义Model,参数是对应的表和连接池(选填)
     */
    class Demo extends Model
    {
        /**
         *默认自动添加 created_at 和 updated_at,不需要时设置为false
         * @var bool
         */
        public $modelTimestamps = false;
    
        /**
         *
         * @Id(incrementing=false)
         * @Column(name="id")    //定义列
         *
         * @var int
         */
        private $id;
    
        /**
         * @Column(name="name")
         *
         * @var string|null
         */
        private $name;
    
        /**
         * @param int $id
         *
         * @return void
         */
        public function setId(int $id): void
        {
            $this->id = $id;
        }
    
        /**
         * @param string|null $name
         *
         * @return void
         */
        public function setName(?string $name): void
        {
            $this->name = $name;
        }
    
        /**
         * @return int
         */
        public function getId(): ?int
        {
            return $this->id;
        }
    
        /**
         * @return string|null
         */
        public function getName(): ?string
        {
            return $this->name;
        }
    }
    View Code

      3、使用(Model)    

    //查询
        $user = Demo::find($)->toArray();
    
    //修改
        $sdbuser = Demo::find($id);
        $sdbuser->setName("cjcjcjccj");
    //或者
        $sdbuser->update(['name' => "dddddd"]);
    
    
      //删除
            $result = Demo::where('id', 1)->delete();
    
            $user = Demo::find($data["uid"]);
            $result = $user->delete();
    
    //插入
            $count = new Demo();
            $count->setId(mt_rand(1, 100));
            $count->setName('attr');
            $result = $count->save();
            $nId = $count->getId();
    
    //批量插入
         $insArr = [
                [
                    'id'      => random_int(1, 100),
                    'name'  => md5(uniqid())
                ],
                [
                    'id'      => random_int(1, 100),
                    'name'  => md5(uniqid())
                ]
            ];
    
        $result = Demo::insert($insArr);
    View Code

       4、DB原生使用:https://www.swoft.org/docs/2.x/zh-CN/db/builder.html

    二:Redis简单使用:

    1、配置:在 appean.php文件中

    'redis'             => [
            'class'    => RedisDb::class,
            'host'     => '127.0.0.1',
            'port'     => 6379,
            'database' => 0,
            'option'   => [
                'prefix' => 'swoft:'
            ]
        ],
        'redis.pool'     => [
            'class'   => SwoftRedisPool::class,
            'redisDb' => ean('redis'),
            'minActive'   => 10,
            'maxActive'   => 20,
            'maxWait'     => 0,
            'maxWaitTime' => 0,
            'maxIdleTime' => 40,
        ]
    View Code

    2、使用

      (1)、直接使用

    Redis::set($key, $setData,$time);
    Redis::get($key);

          (2)、通过 @Inject注入连接池方式使用

        在/App/Http/Controller/中新建文件 

    /**
     * Class RedisController
     *
     * @since 2.0
     * @Controller("redis")
     */
    class RedisController
    {
        /**
         * @Inject("redis.pool")   
         *
         * @var Pool
         */
        private $redis;
    
        /**
         * @return array
         * @RequestMapping("find")  //访问路由:  /redis/find
         * @throws Throwable
         */
        public function find()
        {
            $us = $this->redis->get('user');
            if($us)
                $this->redis->set('user', ["name" => "gimi", "age" => "18"],120);
    
            return $us;
        }
    }

    查看文档: 

        https://www.swoft.org/docs/2.x/zh-CN/db/index.html

        https://www.swoft.org/docs/2.x/zh-CN/redis/index.html  

        

  • 相关阅读:
    [转]ASP.NET Core 中间件详解及项目实战
    [转]如何在ASP.NET Core中实现一个基础的身份认证
    [转]ASP.NET Core 之 Identity 入门(三)
    [转]ASP.NET Core 之 Identity 入门(二)
    [转]ASP.NET Core 之 Identity 入门(一)
    [转]用Middleware给ASP.NET Core Web API添加自己的授权验证
    [转]NET Core中实现一个Token base的身份认证
    [转]MVC过滤器
    [转]【无私分享:ASP.NET CORE 项目实战(第九章)】创建区域Areas,添加TagHelper
    [转]国家发展改革委关于印发促进中部地区崛起“十三五”规划的通知
  • 原文地址:https://www.cnblogs.com/cj8988/p/11607555.html
Copyright © 2020-2023  润新知