0%

一直以来对于maven只是基本会用,配置文件只认得几个常用到的标签,今晚月黑风高,甚是寂寥,不凡总结一下maven。

什么是maven,为什么需要maven。

在没有maven的时代,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个Jar包往往会报一些让人摸不着头脑的异常,于是maven应运而生。
而Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。

maven的安装

《eclipse Maven插件安装》
myeclipse有自带maven插件。

maven的基本命令

常用命令可以参考这篇博客http://www.cnblogs.com/xdp-gacl/p/4051690.html
使用IDE和maven的话基本用不到命令,有兴趣自行百度。

maven的一些基本概念

仓库

maven的仓库分为本地仓库和远程仓库,都可以通过setting.xml配置。当项目编译时,Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的中央仓库下载所需Jar包。
Maven默认的远程仓库,URL地址:http://search.maven.org/
我个人习惯使用http://mvnrepository.com/

Read more »

赋予权限

1
2
3
4
5
-- 查看feng用户是否具备创建database link 权限
select * from user_sys_privs where privilege like upper('%DATABASE LINK%') AND USERNAME='FENG';
-- 如果查出结果行说明没有权限,给FENG用户授予创建dblink的权限
grant create public database link to feng;

1
2
- sql创建DBlink,ORCL21是配置在tnsnames.ora的远程数据库的别名
create public database link TESTLINK2 connect to FENG identified by "123456" USING 'ORCL21'

ORCL21=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = reportdb)
)
)

1
2
3
4
5
--通过DBLink查询远程数据库的表
select * from testTable@TESTLINK2 order by id;
insert into testTable@TESTLINK2 values(...);
udpate testTable@TESTLINK2 set infoColumn='test' where ...;
delete from testTable@TESTLINK2 where ...;

创建同义词

1
2
3
4
-- 创建同义词
create synonym TESTSYNONYM FOR testTable@TESTLINK2;
-- 查询ORCL2中FENG用户的表TESTable
SELECT * FROM TESTSYNONYM order by id
Read more »

第一范式

当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。

1
2
3
4
反例:
表(联系人信息)
正例:
表(联系人姓名,手机号码,地址)

1,每一列属性都是不可再分的属性值,确保每一列的原子性。
2,两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。

第二范式

如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。

1
2
3
4
反例:
订单表(订单号,价格,用户,用户名,身份证)
正例:
订单表和用户表分表。

第三范式

设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF.
数据不能存在传递关系,即没个属性都跟主键有直接关系而不是间接关系。像:a–>b–>c 属性之间含有这样的关系,是不符合第三范式的。

比如Student表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)

Read more »