MyBatis特性
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集
MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old JavaObjects,普通的Java对象)映射成数据库中的记录
MyBatis 是一个 半自动的ORM(Object Relation Mapping)框架
下载地址
搭建使用 MyBatis导入依赖在 maven 项目里导入 MyBatis 和 mysql
<!-- Mybatis核心 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
<!-- MySQL驱动 -->
<dependency>
<groupId>mysql< ...
开发技巧
未读概念Maven 是一个依赖管理工具,为 Java 项目提供构建和依赖管理支持的工具
简单来说就是 jar包的仓库,依赖对应的 jar 包能够自动下载,不用自己到处找依赖 jar 包
配置 maven下载 maven 下载连接
下载后解压到一个目录
核心配置文件 conf/settings.xml
配置本地仓库位置默认本地仓库位置 用户家目录/.m2/repository
自定义本地仓库位置
在 conf/settings.xml 配置文件 找到 localRepository标签
<localRepository>写入本地仓库的目录</localRepository>
注意:本地仓库本身也需要使用一个非中文、没有空格的目录
配置镜像源maven 默认访问国外的中心仓库,下载速度较慢,要配置阿里云的镜像仓库
在 conf/settings.xml 配置文件 找到 mirror标签
原来 id 为 maven-default-http-blocke 的镜像注释或删除掉
加入阿里云的镜像
<mirror>
<id>nexus-aliyun& ...
概念
Servlet含义是服务器端的小程序 在整个Web应用中,Servlet主要负责处理请求、协调调度功能。我们可以把Servlet称为Web应用中的控制器
具体功能:
接收请求
处理请求(调用业务逻辑 service 方法)
分发页面(转发重定向)
返回响应
生命周期servlet 的生命周期:
创建对象:第一次请求和修改Web应用启动时,只会经历一次
初始化:创建对象后,调用方法 init(ServletConfig servletConfig),只会经历一次
处理请求 :接收到请求后,调用方法service(ServletRequest servletRequest, ServletResponse servletResponse),会经历多次
清理操作:Web应用卸载之前,调用方法destroy(),只会经历一次
总结: Servlet 第一次接收请求时,会进行实例化(调用构造方法)、初始化(调用init())、然后服务(调用service()),从接收第二次请求开始,每一次都是服务
默认情况下:Servlet在第一次接收到请求的时候才创建对象,不过可修改 serv ...
JDBC 概念
Java Database Connectivity Java 连接数据库技术 简称 JDBC
JDBC规范接口:java 提供规范(接口),规定数据库操作方法标准的类库存在于 java.sql, javax.sql包下
数据库厂商会根据 java 的规范完成具体驱动的 jar 包
jdbc技术是一种典型的面向接口编程
JDBC 使用步骤
实现 Driver接口下载 mysql 的驱动 下载链接
复制到 idea 项目下 ,新建 lib 文件夹 将 jar 添加到库
或者创建 maven项目直接到 mysql 的驱动文件
<!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
< ...
Java 8 (又称为 JDK 8 或 JDK1.8) 是 Java 语言开发的一个主要版本。 Java 8是 oracle 公司于 2014 年 3 月发布,可以看成是自 Java 5 以来最具革命性的版本。Java 8 为 Java 语言、编译器、类库、开发工具与 JVM 带来了大量新特性
Lambda 表达式
Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使 Java 的语言表达能力得到了提升
个人感觉类似 js 里的箭头函数
操作符 ->
格式 参数列表 -> 方法体
代码举例
无参,无返回值
@Test
public void test4() {
// 普通格式
Runnable r1 = new Runnable() {
@Override
public void run() {
System.out.println("哈哈哈哈");
} ...
先设置回去仓库原地址
npm config set registry https://registry.npmjs.org/
进入npm官网 创建账号,并且需要通过邮箱验证才可以发布包
https://www.npmjs.com/
初始化
npm init
创建出来 package.json文件 例如
{
"name": "xxx",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
入口文件 main 里
发布
# 添加账号
npm adduser
# 根据提示输入账户名、密码和邮箱即可,还需要邮箱验证Code
# 发布 需要更新时修改版本号 version 即可
npm publish
反射的概念
Reflection(反射)是被视为动态语言的关键,反射机制允许程序在运行期间借助于 Reflection API 取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。加载完类之后,在堆内存的方法区中就产生了一个 Class 类型的对象(一个类只有一个 Class 对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以,我们形象的称之为:反射
反射机制提供的功能
在运行时判断任意一个对象所属的类
在运行时判断任意一个类对象
在运行时判断任意一个类所具有的成员变量和方法
在运行时获取泛型信息
在运行时调用任意一个对象的成员变量和方法
在运行时处理注解
生成动态代理
反射相关 APIjava.lang.Class: 代表一个类
java.lang.reflect.Method: 代表类的方法
java.lang.reflect.FieId: 代表类的成员变量
java.lang.reflect.Constructor: 代表类的构造器
反射的优缺点优点:
1. 提高 java 程序的灵活性 ...