Maven的问题
- 首先配置环境,MAVEN_HOME,然后在path里加%MAVEN_HOME%\bin
- 修改conf\settings.xml 添加一些基本配置.
<!--设置本地仓库路径 -->
<localRepository>E:\Develop\Maven\maven_repository</localRepository>
<!--设置镜像jar包下载站点. -->
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
<id>nexus-public-snapshots</id>
<mirrorOf>public-snapshots</mirrorOf>
<url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
</mirror>
- 在Settings 里面设置Maven. Maven home ,User settings ,local repository.
- Runner 里面 设置VM Options: -DarchetypeCatalog=internal 和 JRE
- 使用archetype 出现 编译版本 不支持发行版本5问题
在conf\settings.xml中添加.
<profile>
<id>jdk-12</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>12</jdk>
</activation>
<properties>
<maven.compiler.source>12</maven.compiler.source>
<maven.compiler.target>12</maven.compiler.target>
<maven.compiler.compilerVersion>12</maven.compiler.compilerVersion>
</properties>
</profile>
Mybatis学习
-
三层结构以及SSM对应关系
所以应该HTML ->servlet->service->Dao->DB -
持久层的技术解决方法
JDBC技术
Spring的JdbcTemplate
Apache的DBUtils:
以上都不是框架.
JDBC是规范.Spring的JdbcTemplate和Apache的DBUtils都只是工具类. -
Mybatis框架概述.
1.基于java持久层框架,内部封装了jdbc.
2.通过xml或注解的方式将要执行的各种statement配置起来.
3.利用ORM思想解决了实体和数据库映射的问题,对jdbc进行了封装,屏蔽了jdbc api底层访问细节.
ORM(Object Relation Mapping)对象关系映射. 简单的说就是把数据库表和实体类以及实体类的属性对应起来.让我们可以操作实体类就可以操作数据库表. 如user—>User. -
mybatis环境搭建.
通过Mybatis官网的入门例子,按自己的情况修改即可.注意第3,5点.
-
同时也可以用注解配置映射. 在Dao方法上 @Select(“SQL”) 就不需要Dao.xml文件. 用注解的话用的就是< mapper class=“com.hk.dao.InUserDao”/>.
Mybatis过程总结
- 首先创建domain,以及dao接口.domain是User等类. 是最后执行SQL语句后resultType要封装成的类.
- 配置文件.直接可以复制Mybatis官网的入门里面的配置.修改成自己的路径,文件,数据即可.有两个配置文件,在java包下的resources里面创建xml文件.
- 一个是SQLConfig.xml .直接复制,修改几处即可.
- 另一个是同Dao同名且路径名要一模一样的xml.
namespace该命名就可以直接映射到在命名空间中同名的 Mapper 类,并将已映射的 select 语句中的名字、参数和返回类型匹配成方法。 ID 为Dao接口的方法名, resultType即为查询后要返回的结果类型. - 然后再test下创建java文件进行测试即可.
1,2步直接可以复制,然后openSession()得到Session对象.最后通过Session来获取Dao接口映射的Mapper类,获得接口的代理对象.然后执行接口方法.
2创建工厂使用了构建者模式.把对象创建的细节隐藏.
3创建SQLSession对象使用了工厂模式,优势:解耦.
4创建Dao接口使用了代理模式.优势:不修改源码的基础上,增强已有方法. - selectList分析
- 执行查询分析
- 连接信息
根据properties执行JDBC的那几步.
1.注册驱动,获取连接.
2.获取预处理对象PreparedStatement - 映射信息 Mapping
执行查询用到的SQL,以及对结果集的封装需要映射信息.
包含了两个部分:1.执行的SQL语句, 2.封装结果的实体类全限定类名
因为可能有多个方法,Mapper怎么对应? 用Key-Value存起来.
- 连接信息
- 执行查询分析
- 一个是SQLConfig.xml .直接复制,修改几处即可.
Maven的父子工程&直接依赖与传递依赖关系.
父子工程: 继承关系,子工程见没有关系,需要通过引用建立依赖关系.
直接依赖与传递依赖的作用域. 如:dao和parent是直接依赖,作用域是compile,而dao和 Junit是传递依赖,作用域是test.相交点是右上角的-.表示这个传递丢失了.也就是说传递到dao中不能用了.