昨日回顾
概念:非关系型数据库
* 表和表之间不再直接进行关联
* 数据一般存在内存中
* 支持数据类型
* 数据类型:
* string/hash/list/set/sortedest
* key:value
命令:
* string :
* set username zs
* get username
* del username
* hash:
* hset person username zs
* hget person username
* hgetall person
* hdel person name
* list: (可以存相同的数据,有顺序)
* lpush names zs
* rpush names ls
* lpop names
* rpop names
* lrange names 0 -1
* 队列和栈的区别:队列是先进先出,栈是先进后出
* set: (不可以存相同数据,没有顺序)
* sadd book hlm
* smembers book
* srem book hlm (删除必须加上元素顺序,因为存储的时候是无序存储,不知道删除的是谁)
* sortedset: (不可以存相同的数据,有顺序)
* zadd book 10 shz (这里的10是sorce分数,权重代表词)
* zrange book 0 -1
* zrem book shz
* 通用:
key *
type book
del book
* 持久化: (都不是绝对安全,并且影响性能。)
rdb(默认) 按时间来触发保存
aof 日志记录
JEDIS:
* Jedis jedis =new Jedis("ip",端口号)
* jedis.setex("username",500,"zs")
* jedis.close
jedis池:
* JedisPoolConfig config;
* JedisPool pool =JedisPool(config,"ip",端口号);
* Jedis jedis=pool.getResource();
* //做操作
* jedis.close();
Maven :项目管理工具
-- 今日必须掌握的东西:
1.项目的生命周期(命令):
* 1.clean(清除缓存)
* 2.default(一整套生命周期)
* 3.site(这个几乎不用)
2.maven的安装配置。
* 配置环境变量:先系统变量添加maven,再在Path添加,并且确保环境变量中有JAVA_HOME;
3.maven仓库的类型:本地仓库/私服/中央仓库
* 1.启动maven工程时,首先会通过jar包的坐标在系统盘找本地仓库,如果本地仓库没有,在有网络的情况下,会自动从中央仓库下载jar包,如果找不到则会报错。
* 2.先从本地找,找不到找远程仓库(私服),如果有网络则通过网络在中央仓库下载,或者用户上传到远程仓库。 (基本上公司里都是在私服里找,不通过中央仓库)
* 在以上两种情况能第一次完成部署后,以后需要相同的jar包,会直接在仓库找,因为前面已经缓存下载到了本地仓库了。
4.测试,项目管理等。
开始:
Manve的特点:
1. 核心功能之一:依赖管理:maven工程对jar包的管理过程 -- pom.xml文件可以导入jar包,配置maven的插件 jar包都在deoendencies标签中管理
* 使用Maven构建工程,jar包不在项目中,可以极大的减少磁盘空间。
* 使用Maven构建工程,jar包放在仓库中,maven通过jar包的坐标找到。
2.核心功能之二: 一键构建:
* 默认生命周期:compile(编译),test(测试),package(打包),install(安装),deploy(发布)
* 清理生命周期:clean
* 当执行后面的功能,前面的都会执行。比如:执行发布的时候,会自动的执行编译,测试,打包,安装等功能。
1.Maven的作用:
1.导入jar包
2.单元测试
3.打包
2.Maven的一键构建:使用maven自身的tomcat插件完成一键构建;
1.构建过程:清理-> 编译-> 运行->测试 ->部署
* 英文: clean(清理)->validata(验证)->compolie->test(测试)->package(打包)->varify->install->site->deploy
2.maven中的插件:tomcat插件 --> 只要配置好了tomcat的插件就可以直接部署,直接在浏览器上查看。
3.maven项目目录结构:
1.核心代码部分:
* src/main/java 目录
2.配置文件部分:
* src/main/resources
3.测试代码部分:
* src/test/java
4.测试配置文件:
* src/test/resources
5.页面资源,js,css,图片等:
* src/main/webapp
-- 为什么用maven的项目架构?
* 每个工具如idea等的由不同的厂商提供的,每个软件的目录文件不一样,会导致每个人的项目结构不统一。所以使用maven的项目结构能够被每一个工具所支持,那么就可以使项目架构统一,提高工作效率。
4.maven生命周期中的命令(重要的五个):
1.清除生命周期:
* 清除:clean -- 使用较多
2.default生命周期(编译,测试,打包,发布):
* 编译: compile -- 使用较多
* 测试: test (没用)
* 打包: package 1.把代码进行编译 2.把web打成jar包,war包等 -- 使用较多
* 发布: install 1.把代码进行编译 2.把web打成jar包,war包等 3.把jar包发布到本地仓库中 发布项目需要借助tomcat插件发布。
* 当执行到后面的命令的时候,前面的命令会自动执行,clean是清除生命周期。
5.maven项目
1.依赖管理
1.项目对象模型(POM) -- pom.xml
* 项目自身信息:
* 项目运行所依赖的jar包信息
* 项目运行环境信息
2.依赖管理模型(Dependency): -- 仓库
* 公司组织的名称
* 项目名
* 版本号
* 本地仓库更多信息
2.生命周期
1.默认生命周期:
* compile,test,package,install,deploy
* 每一次构建项目的命令都对应了maven底层一个插件
* idea对Maven的支持只能算一般,在新建maven项目的时候尽可能的不要使用骨架,因为使用骨架如果出现与本地文件的兼容出错问题,将使项目无法创建。
* 在导入servlet依赖的时候,注意版本要在3.0以上,因为servlet3.0以下不支持注解。
* maven支持一键构建,所以在部署项目的时候有自己的tomcat插件,但是编译通过后,运行时硬盘上就有了两个tomcat,所以会出现tomcat冲突。导致异常。解决办法:<scope>provided</scope>给tomcat设置作用域,在测试,servlet.jsp等包坐标也要加作用域。
* 如果要正确部署,需要将packing的标签jar改为war。
* 用tomcat7,因为tomcat插件在中央仓库没有
6.案列:
* JDBC
1.注册驱动:
class.forName("com.mysql.jdbc.Driver");
2.获取连接:
Connection con= DriverManager.getConnetion("jdbc:mysql://localhost:3306/数据库名称","root","root");
3.获取执行sql的对象
statement=con.createStatement()
preparedStatement=con.preparedStatement()
4.执行sql
* 增删改
stateMent.executeUpdate();
* 查询
ResultSet rs= stateMent.excuteQuery();
5.遍历结果集
while(rs.next()){
rs.getObject("列名")
re.getObject(1)
}
6.释放资源:
依次关闭资源。
总结:
1. 使用maven创建web项目!!
2. 将pom.xml文件中修改打包方式 以下四步都是在pom.xml中完成
* <packaging>war</packaging>
* 引入javax.servlet 导包
* 引入.servlet.jsp 导包
* 引入jdk1.8 或者1.9,引入tomcat插件1.7
3.完善目录结构:
* 将目录结构修改成一个web目录,在main目录下创建webapp目录,通知指定目录类型
* webapp目录:Mouduls->web->添加,将webapps属性改为web
* 代码目录类型:右键目录->MARK Directory As --> Sources Root
* 资源目录类型:右键目录->MARK Directory As --> Resources Root
4.可以在src/main/java目录下开始写java代码,webapp目录可以放web页面资源,Resources可以放配置文件
注意:
* 在3 的过程中为了防止jar包冲突,添加scope,里面给域的值。
* <packaging>war/jar/pom[]</packaging>
* mysql驱动导包给坐标时,scope设置为runtime
* 要想从数据库中取出数据,必须有四个属性:
* 1.数据库驱动,连接数据库的地址,数据库的账号,数据库的密码。