资讯专栏INFORMATION COLUMN

移动易开源APP组合套件更新——支持多种外部数据库,支持全文搜索

anyway / 1307人阅读

摘要:移动易后台实现外部数据库连接要实现外置数据库,即上层开发人员不关心下层数据库的实现,在项目中需要针对不同数据库修改文件以及在项目中添加依赖包。本文主要介绍移动易后台如何实现同不同数据源的连接,数据源包括,。

1、移动易后台实现外部数据库连接

要实现外置数据库,即上层开发人员不关心下层数据库的实现,在Spring boot项目 中需要针对不同数据库修改application.properties文件以及在项目中添加依赖包 。本文主要介绍移动易后台如何实现同不同数据源的连接,数据源包括MySQL,Oracle,MSSQL,PostgreSQL。

移动易官方网站

2、前期准备

Java 8

熟悉Maven项目

熟悉Spring boot

数据及驱动包如下表(数据库安装及配置见官网教程)

数据库 版本 JDBC驱动包 下载地址
MySQL 64位 MySQL14.14 mysql-connector-java(5.1.41) download
Oracle 64位 Oracle 11g 11.2.0.1.0 ojdbc14(10.2.03) download
MSSQL 64位 Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 sqljdbc4(4.0) download
PostgreSQL 64位 PostgreSQL 9.6 postgresql(9.4.1208-jdbc42-atlassian-hosted) download
3、具体实现步骤 3.1、首先将项目git至本地,命令如下:
    git clone https://git.oschina.net/sectong/yidongyi.git
3.2、将下载的项目import至eclipse中
- file->import->git->existing local repository  

- 项目结构如下  

3.3、右击项目team->switch to ->new branch针对不同的数据库创建不同的分支,如下所示:

4.2.3、接着在application.properties 文件夹中添加Oracle数据库的配置信息
    spring.datasource.url = jdbc:oracle:thin:@localhost:1521:ORCL
    spring.datasource.username=system
    spring.datasource.password=oracle
4.2.4、最后在Oracle数据库中创建相应表并添加约束,如下所示:
    
    --创建用户表--
    CREATE TABLE users
    (
    id NUMBER(11) NOT NULL,
    username VARCHAR(45) NOT NULL,
    password VARCHAR(100) NOT NULL,
    image VARCHAR(200) DEFAULT"",
    enabled VARCHAR(45) DEFAULT "1"
    );  
    
    --为用户表添加约束--
    ALTER TABLE users
    ADD CONSTRAINT PK_ID PRIMARY KEY(id)
    ADD CONSTRAINT UNI_NAME UNIQUE(username);
    
    --为用户表id字段创建序递增序列--
    CREATE SEQUENCE userid_seq START WITH 12 INCREMENT BY 1;
    
    --为用户表添加触发器实现id字段自增--
    CREATE TRIGGER userid_trigger
    BEFORE INSERT ON users
    FOR EACH ROW 
    BEGIN
    SELECT userid_seq.nextval into :new.id FROM dual;
    END;
    
    --创建管理员表--
    CREATE TABLE authorities
    (
        id NUMBER(11) NOT NULL,
        username VARCHAR(45) NOT NULL,
        authority VARCHAR(45) NOT NULL
    );
    
    --为管理员表添加约束--
    ALTER TABLE authorities ADD CONSTRAINT PK_AUID PRIMARY KEY(id);
    
    --为管理员表id字段创建递增序列--
    CREATE SEQUENCE authorityid_seq START WITH 14 INCREMENT BY 1;
    
    --为管理员表设置触发器--
    CREATE TRIGGER authorityid_trigger
    BEFORE INSERT ON authorities
    FOR EACH ROW 
    BEGIN
    SELECT authorityid_seq.nextval into :new.id FROM dual;
    END;
    
    --创建news表--
    CREATE TABLE news
    (
        id NUMBER(11) NOT NULL PRIMARY KEY,
        title VARCHAR(45) NOT NULL,
        img VARCHAR(45) NOT NULL,
        content VARCHAR(200),
        datetime DATE
    );
4.3、MSSQL 数据源的配置 4.3.1、首先添加依赖包(这里用的是sqljdbc4 版本4.0),双击pom.xml文件,添加如下依赖:
    
        com.microsoft.sqlserver
        sqljdbc4
        4.0
    
4.3.2、接着在application.properties 文件中添加对数据源的配置,如下:
    spring.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=yidongyi;
    spring.datasource.username=use_c
    spring.datasource.password=123456
4.3.3、最后在MSSQL中创建表以及约束:
    --创建authorities表--  
    USE [yidongyi]
    GO
    
    /****** Object:  Table [dbo].[authorities]    Script Date: 07/03/2017 13:58:04 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    SET ANSI_PADDING ON
    GO
    
    CREATE TABLE [dbo].[authorities](
        [id] [int] IDENTITY(14,1) NOT NULL,
        [username] [varchar](50) NOT NULL,
        [authority] [varchar](50) NOT NULL,
     CONSTRAINT [PK_authorities] PRIMARY KEY CLUSTERED 
    (
        [id] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    GO
    
    SET ANSI_PADDING OFF
    GO
    
    --创建users表--
    USE [yidongyi]
    GO
    
    /****** Object:  Table [dbo].[users]    Script Date: 07/03/2017 13:59:47 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    SET ANSI_PADDING ON
    GO
    
    CREATE TABLE [dbo].[users](
        [id] [int] IDENTITY(12,1) NOT NULL,
        [username] [varchar](100) NOT NULL,
        [password] [varchar](300) NOT NULL,
        [image] [varchar](200) NOT NULL,
        [enabled] [varchar](100) NOT NULL,
     CONSTRAINT [PK_users] PRIMARY KEY CLUSTERED 
    (
        [id] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    GO
    
    SET ANSI_PADDING OFF
    GO
    
    ALTER TABLE [dbo].[users] ADD  CONSTRAINT [DF_users_image]  DEFAULT ("") FOR [image]
    GO
    
    ALTER TABLE [dbo].[users] ADD  CONSTRAINT [DF_users_enabled]  DEFAULT ("1") FOR [enabled]
    GO
    
    --创建news表--
    USE [yidongyi]
    GO
    
    /****** Object:  Table [dbo].[news]    Script Date: 07/03/2017 14:00:21 ******/
    SET ANSI_NULLS ON
    GO
    
    SET QUOTED_IDENTIFIER ON
    GO
    
    SET ANSI_PADDING ON
    GO
    
    CREATE TABLE [dbo].[news](
        [id] [int] NOT NULL,
        [title] [varchar](50) NOT NULL,
        [img] [varchar](50) NOT NULL,
        [content] [varchar](200) NOT NULL,
        [datetime] [date] NOT NULL,
     CONSTRAINT [PK_news] PRIMARY KEY CLUSTERED 
    (
        [id] ASC
    )WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
    ) ON [PRIMARY]
    
    GO
    
    SET ANSI_PADDING OFF
    GO
4.4、PostgreSQL数据源配置 4.4.1、首先在pom.xml文件中添加PostgreSQL的依赖包(这里用的是postgresql 版本9.4.1208-jdbc42-atlassian-hosted),如下
    
    
        postgresql
        postgresql
        9.4.1208-jdbc42-atlassian-hosted
    
4.4.2、 接着在application.properties 文件夹下添加对PostgreSQL数据源的配置,如下:
    spring.datasource.url = jdbc:postgresql://localhost:5432/yidongyi  
    spring.datasource.username=postgres
    spring.datasource.password=123456
    
4.4.3、最后在PostgreSQL数据库中创建表以及约束:
    
    --创建users表--
    
    CREATE TABLE public.users
    (
        id integer NOT NULL DEFAULT nextval("users_id_seq"::regclass),
        image text COLLATE pg_catalog."default" NOT NULL DEFAULT ""::text,
        password text COLLATE pg_catalog."default" NOT NULL,
        username text COLLATE pg_catalog."default" NOT NULL,
        enabled text COLLATE pg_catalog."default" NOT NULL DEFAULT 1,
        CONSTRAINT users_pkey PRIMARY KEY (id)
    )
    WITH (
        OIDS = FALSE
    )
    TABLESPACE pg_default;
    
    ALTER TABLE public.users
        OWNER to postgres;
        
    --创建authorities表--
    
    CREATE TABLE public.authorities
    (
        id integer NOT NULL DEFAULT nextval("authorities_id_seq"::regclass),
        username text COLLATE pg_catalog."default" NOT NULL,
        authority text COLLATE pg_catalog."default" NOT NULL,
        CONSTRAINT authorities_pkey PRIMARY KEY (id)
    )
    WITH (
        OIDS = FALSE
    )
    TABLESPACE pg_default;
    
    ALTER TABLE public.authorities
        OWNER to postgres;
        
    --创建news表--
    
    CREATE TABLE public.news
    (
        id integer NOT NULL DEFAULT nextval("news_id_seq"::regclass),
        title text COLLATE pg_catalog."default" NOT NULL,
        img text COLLATE pg_catalog."default" NOT NULL,
        content text COLLATE pg_catalog."default" NOT NULL,
        datetime date NOT NULL,
        CONSTRAINT news_pkey PRIMARY KEY (id)
    )
    WITH (
        OIDS = FALSE
    )
    TABLESPACE pg_default;
    
    ALTER TABLE public.news
        OWNER to postgres;
4.5、最终效果 4.5.1、 MysSQL

4.5.2、 Oracle

4.5.3、 MSSQL

4.5.4、 PostgreSQL

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/67452.html

相关文章

  • 移动开源APP组合套件V0.1.0发布

    摘要:简单概述本项目为移动易开源组合套件,包含后台服务端,提供了一个基础的后台框架前端,提供了一个与后端连接的演示。移动易是由移动互联网爱好人士自发建立的一个开源社区,主要产品是移动易开源组合套件,包含移动后端服务器,移动前端混合。 简单概述 本项目为移动易开源APP组合套件,包含后台服务端,提供了一个基础的APP后台框架;前端APP,提供了一个与后端连接的演示APP。 移动易是由移动互联网...

    BigTomato 评论0 收藏0
  • 腾讯课堂——移动开源APP组合套件公开课视频和资料

    摘要:什么是移动易开源组合套件本项目为移动易开源组合套件,包含后台服务端,提供了一个基础的后台框架前端,提供了一个与后端连接的演示。公开课视频和资料下载腾讯课堂在线学习资料视频截图讨论社区群 什么是移动易开源APP组合套件? 本项目为移动易开源APP组合套件,包含后台服务端,提供了一个基础的APP后台框架;前端APP,提供了一个与后端连接的演示APP。 为什么要有公开课? 初学者,刚刚开始...

    wslongchen 评论0 收藏0

发表评论

0条评论

anyway

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<