新闻资讯

    文章目录

    前篇:使用操作数据库

    详细介绍参考:数据库高手秘籍(四)——使用建立表关联

    一、四张表简介

    News表:标题title、内容、发布时间、评论数、id;

    表:内容、发布时间、id;

    表:导语guide、摘要、id;

    表:名称name、id;

    一条新闻只有一个简介,一个简介也只能属于一条新闻,所以News表与表是一对一关系。需要在News类中持有一个类的引用即可。

    一条新闻可以有多个评论,但是一条评论只能属于一条新闻,所以News表与表是多对一关系,

    每个种类下面会有许多条新闻,一条新闻也可以属于多个种类,因此News表与表是多对多关系,两张表之间建立多对多的关联关系只能是借助中间表来完成了。

    二、代码实现 1. 创建独立的四个类

    //Introduction类
    public class Introduction {
        private int id;
        private String guide;
        private String digest;
        //get、set方法
    }
    

    //Category类
    public class Category {
        private int id;
        private String name;
            //get、set方法
    

    oracle删除指定数据_sql删除指定条件数据_litepal数据库删除指定表

    }

    //Comment类
    public class Comment {
        private int id;
        private String content;
        private Date publishDate;
        //get、set方法
    }
    

    //News类
    public class News {
        private int id;
        private String title;
        private String content;
        private Date publishDate;
        private int commentCount;
            //get、set方法
                private Introduction introduction;
    }
    

    三. 建立关联 1. 一对一关系

    在News类中可以得到一个对应的的实例,那么它们之间就是一对一关系了。

    oracle删除指定数据_sql删除指定条件数据_litepal数据库删除指定表

    //News类
    public class News {
        private Introduction introduction;
        private List<Comment> commentList=new ArrayList<Comment>();
        //get、set方法
    }
    

    2. 多对一关系

    先使用一个泛型为的List集合来表示News中包含多个,再在类中声明了一个News的实例,这样就清楚地表示出了News中可以包含多个,而中只能有一个News,也就是多对一的关系了。

    //News类
    public class News {
        private List<Comment> commentList=new ArrayList<Comment>();
            private List<Comment> commentList=new ArrayList<Comment>();
        private List<Category> categoryList=new ArrayList<Category>();
        //get、set方法
    }
    //Comment类
    public class Comment {
        private News news;
        //get、set方法
    }
    

    3. 多对多关系

    sql删除指定条件数据_litepal数据库删除指定表_oracle删除指定数据

    先使用一个泛型为的List集合来表示News中包含多个,再在类中使用泛型为News的List集合来表示中包含多个News,这样就清楚地表示出了News中可以包含多个,中包含多个News,也就是多对多的关系了。

    //News类
    public class News {
        private List<Category> categoryList=new ArrayList<Category>();
        //get、set方法
    }
    //Category类
    public class Category {
        private int id;
        private String name;
        private List<News> newsList=new ArrayList<News>();
        //get、set方法
    }
    

    4. 添加映射

    关联关系都声明好了之后,将所有的实体类都添加到映射列表当中,并修改数据库版本号。

    
    <litepal>
        <dbname value="demo">dbname>
        <version value="4">version>
        <list>
            <mapping class="com.aye.test_databases.News">mapping>
            <mapping class="com.aye.test_databases.Comment">mapping>
    

    litepal数据库删除指定表_sql删除指定条件数据_oracle删除指定数据

    <mapping class="com.aye.test_databases.Category">mapping> <mapping class="com.aye.test_databases.Introduction">mapping> list> litepal>

    5. 验证

    打开cmd,输入adb shell,su获取管理员权限后使用cd命令进入到data/data/+包名/文件中litepal数据库删除指定表,输入 +数据库名进入中

    查看数据库中的所有表

    查看表的结构,使用命令 (表名);,可以看到多了一个列,说明表和news表之间存在一对一关系

    查看表的结构,可以看到多了一个列,说明表和news表之间存在多对一关系。

    查看中间表的结构,可以看到多了一个列和列说明表和news表之间存在多对一关系。

    四、使用聚合函数

    中一共提供了count()、sum()、()、max()和min()这五种聚合函数。

    根据以上总结类中的连缀查询都都可以适用litepal数据库删除指定表,比如where条件约束连缀count聚合函数,或者连缀order等

    1. count()

    用于统计行数

    //统计News表行数
    int result=DataSupport.count(News.class);
    

    sql删除指定条件数据_litepal数据库删除指定表_oracle删除指定数据

    //统计多少条新闻是0评论的 result=DataSupport.where("commentcount=?","0").count(News.class);

    2. sum()

    用于对结果进行求和,sum()方法只能对具有运算能力的列进行求合,比如说整型列或者浮点型列

    //统计news表中评论总数
    // 第二个参数为列名,表示希望对哪一列数据进行求和,第三个参数用于指定结果的类型
    result=DataSupport.sum(News.class,"commentcount",int.class);
    

    3. ()

    统计平均数,注意返回值类型为型,()方法也只能对具有运算能力的列进行求平均值

    //统计news表中平均每条新闻有多少评论
    //第二个参数为想要统计哪一列的平均数
    result=DataSupport.average(News.class,"commentcount");
    

    4. max()

    求出某一列最大值,max()方法也只能对具有运算能力的列进行求最大值的

    //news表中所有新闻里面最高的评论数是多少
    //第一个参数用于指定去统计哪张表当中的数据。第二个参数是列名,表示希望统计哪个列中的最大值。第三个参数用于指定结果的类型
    result=DataSupport.max(News.class,"commentcount",double.class);
    

    5. min()

    求出某一列最小值,用法与max相同

    //news表中所有新闻里面最低的评论数是多少
    result=DataSupport.min(News.class,"commentcount",double.class);
    

网站首页   |    关于我们   |    公司新闻   |    产品方案   |    用户案例   |    售后服务   |    合作伙伴   |    人才招聘   |   

地址:北京市海淀区    电话:010-     邮箱:@126.com

备案号:冀ICP备09043385号-1 北京科技有限公司版权所有