GreenDao && MySql使用

GreenDao:

一、Greendao简介

     Greendao是一款用于数据库创建与管理的框架,由于原生SQLite语言比较复杂繁琐,使得不少程序员不得不去学习SQLite原生语言,但是学习成本高,效率低下,所以不少公司致力于开发一款简单的数据库管理框架,较为著名的就有Greendao和ORMLite,但是就数据分析来看,Greendao的效率是高于ORMLite及其他框架的,是目前该行业的领先者。也因为Greendao的使用方法简便,且效率高使得其成为目前使用最为广泛的数据库管理框架,这也是广大程序员的福音。

二、GreenDao的具体使用步骤

1、在bulid.gradle下进行配置:

apply plugin: 'org.greenrobot.greendao'
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
    }
}

2、对greendao的generator生成文件进行配置

greendao {
    schemaVersion 1
    daoPackage 'com.example.highleveltv.greendao'
    targetGenDir 'src/main/java'
}

3、添加依赖:

implementation 'org.greenrobot:greendao:3.2.2' // add library
    implementation 'org.greenrobot:greendao-generator:3.2.2'

4、写实体类:

类上写注解写注解@Entity

一个用于区分的iD上写注解@Id

注:编写完实体类以后在实体类界面下按下Ctrl+F9(Make project)或者点击Build下的Build project,程序会自动编译生成dao文件,生成的文件一共有三个。

5、创建数据库

private void createSq() {
        DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(getApplicationContext(), "testDataBase", null);
        DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
        DaoSession daoSession = daoMaster.newSession();
        mUserInfoDao = daoSession.getUserInfoDao();
    }

6、各种增、删、改、查方法

 private void setUpData() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < 5; i++) {
                    UserInfo userInfo = new UserInfo((long) i, "班长" + i, 12 + i,"北京" + i );

//插入
                    mUserInfoDao.insertOrReplace(userInfo);
                }
            }
        }).start();
    }

//查询

 public void query(View view) {
        List<UserInfo> userList = mUserInfoDao.queryBuilder()
                .where(UserInfoDao.Properties.Id.notEq(100))
                .limit(20).build().list();
        Log.e("查询:", userList.size() + ","+userList.toString());
    }

//删除

    public void delete(View view) {
        UserInfo findUser = mUserInfoDao.queryBuilder()
                .where(UserInfoDao.Properties.Name.eq("班长0")).build().unique();
        if (findUser != null) {
            mUserInfoDao.deleteByKey(findUser.getId());
        }
    }

//修改

    public void update(View view) {
        UserInfo findUser = mUserInfoDao.queryBuilder()
                .where(UserInfoDao.Properties.Name.eq("班长1")).build().unique();
        if (findUser != null) {
            findUser.setName("290");
            findUser.setAge(19);
            mUserInfoDao.update(findUser);
        }

    }

 

MySql:

MySQL 简介:

MySQL 是一种数据库。数据库定义了存储信息的结构。以表的方式存储信息,设置有索引可以快速定位到需要的内容,避免查找数据时要遍历整个库,耗费资源速度也太慢。

MySQL的使用:


  • 命令行交互式客户端程序

查看指定用户所获得的授权:

SHOW GRANTS FOR 'user'@'host'

SHOW GRANTS FOR CURRENT_USER;

回收权限:

REVOKE priv_type, ... ON db_name.tbl_name FROM 'user'@'host';

注意:MariaDB服务进程启动时,会读取mysql库的所有授权表至内存中;

(1) GRANT或REVOKE命令等执行的权限操作会保存于表中,MariaDB此时一般会自动重读授权表,权限修改会立即生效;

(2) 其它方式实现的权限修改,要想生效,必须手动运行FLUSH PRIVILEGES命令方可;

常用选项

-u:后面跟用户名 -u和用户名中间一定不要有空格;

-h:后面跟远程主机地址,默认为localhost,-h和HOST中间一定不要有空格;

-p[PASSWORD]:USERNAME所表示的用户的密码,-p直接回车静默交互式输入密码;

注意:mysql的用户账号由两部分组成:'USERNAME'@'HOST'; 其中HOST用于限制此用户可通过哪些远程主机连接当前的mysql服务,HOST支持通配符,这里%代表任意长度的任意字符;

 
root用户创建用户名和密码

mysqladmin -u root -p password 111111   ##-u 指明用户 -p password 指明密码

创建用户

CREATE USER 'name'@'localhost' IDENTIFIED BY '111111';  ##创建用户指定用户名字,登录方式以及密码。

查看所有的用户账号及密码

SELECT user,host,password FROM user;

[root@www ~]# mysql -uroot -hlocalhost -p    ##登录root账户

Enter password:         ##静默输入密码

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 117

Server version: 5.5.44-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql     ##切换到MySQL库

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

MariaDB [mysql]> SELECT user,host,password FROM user;   ##显示所有的用户,登录主机,以及密码,密码加密存放
+--------+-----------------+-------------------------------------------+
| user   | host            | password                                  |
+--------+-----------------+-------------------------------------------+
| root   | localhost       | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root   | 127.0.0.1       | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| root   | ::1             | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| MySQL  | 192.168.217.140 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| ming   | %               | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| MySQLL | 192.168.217.138 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| tom    | 192.168.217.139 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
+--------+-----------------+-------------------------------------------+
7 rows in set (0.00 sec)

SQL语句对数据库管理常用的两种方式:

  • DDL:数据定义语言-主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用,创建表的时候有问题看这里
    • CREATE: 创建
    • ALTER:改变
    • DROP: 删除
    • SHOW: 显示
  • DML:数据操纵语言-这4条命令是用来对数据库里的数据进行操作的语言,修改表的时候有问题看这里
    • INSERT: 添加
    • DELETE: 删除
    • SELECT: 选择
    • UPDATE: 修改

切换数据库;

连接到MySQL服务器后,则需要选择特定的数据库的来工作。这是因为在MySQL数据库上可能有多个库存在。注意每个库的权限不一样。

use命令格式:use <数据库名>;

MariaDB [(none)]> use hidb   ##切换名字为hidb的库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [hidb]>   ##[hidb]>这里名字已经改成hidb说明切换成功

获取命令帮助;

mysql> help KEYWORD(命令本身);

创建: 表创建一定要指定属于哪个库!!;

HELP查看帮助

MariaDB [data]> HELP CREATE DATABASE    ##HELP 命令 查看帮助

Name: 'CREATE DATABASE'   ##查询的是哪个命令

Description:        ##命令描述,这里为空

Syntax:         ##描述

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name   [create_specification] ...   ##语法

create_specification:       ##创建规范

[DEFAULT] CHARACTER SET [=] charset_name ##设置字符集

| [DEFAULT] COLLATE [=] collation_name  ##设置排序规则

ENGINE [=] engine_naem      ##设置支持哪些存储引擎

SHOW ENGINES;      ##显示总共有哪些存储引擎

MariaDB [data]> CREATE DATABASE XiaoHua; ##创建一个为XiaoHua的库

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> select version();  ##查看当前MySQL版本号
+----------------+
| version() |
+----------------+
| 5.5.52-MariaDB |
+----------------+
1 row in set (0.00 sec)

MariaDB [(none)]> select 1+1;  ##做算术运算
+-----+
| 1+1 |
+-----+
| 2 |
+-----+
1 row in set (0.00 sec)

 

客户端命令:本地执行

  • \u db_name:设定哪个库为默认数据库
  • \q:退出;
  • \d CHAR:设定新的语句结束符,默认为“;”;
  • \g:语句结束标记,如果加\g “;”可以省略;
  • \G:语句结束标记,结果竖排方式显式;
  • \s:显示服务器状态
  • \!:执行shell命令
  • \.:装载并运行sql脚本

数据类型:

字符型:

  • 定长字符型:CHAR, BINARY
  • 变长字符型:VARCHAR, VARBINARY
  • TEXT, BLOB
  • SET, ENUM

数值型:

  • 精确数值型:INT
  • 近似数值型:FLOAT, DOUBLE

日期时间型:

  • DATE,TIME,DATETIME,TIMESTAMP

WHERE语句;

用来指明筛选条件

SELECT col1, ... FROM tbl_name WHERE clause;

查看 col1 来自 tbl_name 这个表 只看 clause 内容

 

WHERE clause:用于指明挑选条件,例如:age > 30;

col_name 操作符 value:

这里通配符有两个需要注意:

  • %:任意长度的任意字符;
  • _:任意单个字符;

RLIKE 'PATTERN'正则表达式对字符串做模式匹配;

操作符(1) :

  • >, <, >=, <=, ==, !=
  • 组合条件:and | or | not

操作符(2) :

  • BETWEEN ... AND ...
  • LIKE 'PATTERN' 例如WHERE name LIKE 'Z%' 找到name这一行中Z开头的行
MariaDB [hidb]> SELECT * FROM studentss WHERE sid BETWEEN 3 AND 5; ##只显示3~5行
+-----+-----------+--------+
| sid | name      | gender |
+-----+-----------+--------+
|   3 | Sun Li    | F      |
|   4 | Deng Chao | M      |
|   5 | Jiang Xin | F      |
+-----+-----------+--------+
3 rows in set (0.00 sec)

MySql使用转载至:https://www.cnblogs.com/MYue/p/6940939.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值