一、ES6语法
变量声明 let :let声明的变量只在该代码块中有效
常量声明 const :const声明的常量只在该代码块中有效,并且声明后值不可修改
模版字符串 ${变量} :直接将该占位符嵌入字符串中进行字符串拼接
ES6反引号 :多行字符串拼接
//es5var name = '张飞'console.log('hello' + name)//es6const name2 = '赵云'console.log(`hello ${name2}`) //hello 赵云
箭头函数:省略 function 关键字,省略 return 关键字,继承当前上下文的 this 关键字
// es6简写fun = (a,b) => a+b;console.log(fun(1,2));
动态应用名:
在头部使用html5定义的 <base href="" /> 标签,可以设置当前页面所有标签的href属性都是基于该标签指定的位置作为相对路径(应用上下文)
二、Spring集成通用mapper
1、使用步骤
a、引入依赖
b、SqlSessionFactoryBean修改使用tkmapper提供的Configuration
c、修改包MapperScanner为tkmapper提供的注解
d、SelSessionFactory设置mybatis的配置信息替换为tkmapper提供的配置类(tk.mybatis.mapper.session.Configuration())
e、在mapper层接口继承Mapper接口(泛型指定对应的实体类),tkmapper会自动创建代理子类,生产常用的CRUD(基本的数据库操作)方法
f、在实体类中添加相关的映射配置,配置属性到数据库字段的映射关系(可不配),设置主键映射(必须配)
实体类中必须有一个字段添加注解 @id 设置为主键映射(没有配置则会默认为所有字段都是主键)
2、mapper注解
当实体类字段名和数据库字段名不一致时,在实体类的字段中,添加数据库表名和字段名注解
@Table 注解:可以配置name、catalog、schema三个属性,name属性为对应的表名@Column 注解:可以配置name、insertable、updateable三个属性,name属性为对应的数据库字段名,insertable对提供的insert方法有效,如果设置false就不会出现在sql中,updateable对提供的update方法有效,设置为false后不会出现在sql中@Transient 注解:当实体类中的字段不是数据库中的字段时,使用此注解(Map、List不需要配置这个注解)
3、mapper专用代码生成
maven逆向工程,自动生成实体类和对应的mapper类
pom.xml文件中添加插件(在maven中运行插件即可)
<build><plugins><plugin><artifactId>maven-compiler-plugin</artifactId><configuration><source>${jdk.version}</source><target>${jdk.version}</target></configuration></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.6</version><configuration><configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile><overwrite>true</overwrite><verbose>true</verbose></configuration><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.35</version></dependency><dependency><groupId>tk.mybatis</groupId><artifactId>mapper</artifactId><version>4.1.5</version></dependency></dependencies></plugin></plugins></build>
xml配置文件配置(在数据库连接资源文件中,需要配置表名——druid.table.items=表名)
<generatorConfiguration>
<!--引入数据库配置文件以解耦-->
<properties resource="jdbc.properties"/>
<!-- mysql jar 文件位置 -->
<!-- <classPathEntry location="D:\.m2\repository\mysql\mysql-connector-java\5.1.35\mysql-connector-java-5.1.35.jar" />
-->
<context id="testTables" targetRuntime="MyBatis3">
<!--mapper插件-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="caseSensitive" value="true"/>
</plugin>
<commentGenerator>
<!-- 是否去除自动生成的注释,true:是;false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
<jdbcConnection driverClass="${druid.driverClassName}"
connectionURL="${druid.url}" userId="${druid.username}"
password="${druid.password}">
</jdbcConnection>
<!--Oracle数据库的连接信息-->
<!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg"
userId="yycg"
password="yycg">
</jdbcConnection> -->
<!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和
NUMERIC 类型解析为java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO类的位置 -->
<javaModelGenerator targetPackage="com.qt.entity"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
<!-- 从数据库返回的值被清理前后的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper映射文件生成的位置 -->
<sqlMapGenerator targetPackage="com.qt.mapper"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!--
targetPackage:mapper接口生成的位置,遵循MyBatis规范,让mapper.xml
和mapper.java在同一目录下
ANNOTATEDMAPPER:注解方式
XMLMAPPER:xml方式
-->
<javaClientGenerator type="ANNOTATEDMAPPER"
targetPackage="com.qt.mapper"
targetProject="src/main/java">
<!-- enableSubPackages:是否让schema作为包的后缀 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定数据库表 -->
<table tableName="${druid.table.items}" enableCountByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" enableUpdateByExample="false" domainObjectName="AppVersion" ></table>
<!-- <table schema="" tableName="sys_user"></table>
<table schema="" tableName="sys_role"></table>
<table schema="" tableName="sys_permission"></table>
<table schema="" tableName="sys_user_role"></table>
<table schema="" tableName="sys_role_permission"></table> -->
<!-- 有些表的字段需要指定java类型
<table schema="" tableName="">
<columnOverride column="" javaType="" />
</table> -->
</context>
</generatorConfiguration>
三、分页插件
依赖jar包:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.11</version>
</dependency>
修改Mybatis配置文件,SqlSessionFactoryBean引入分页插件
在需要使用分页的功能调用dao方法前编写分页api
开启分页功能,会自动扩展sql语句 PageHelper.startPage(要显示起始页,每页显示条数) 
四、事务
事务隔离级别
读取未提交(READ-UNCOMMITTED):最低的隔离级别,可以读取到还没有提交事务的数据(脏读)
读取已提交(READ-COMMITTED):
可重复读(REPEATABLE-READ):
可串行化(SERIALIZABLE-序列化):
