黑马程序员技术交流社区
标题:
学习笔记Mapper
[打印本页]
作者:
qq1455473334
时间:
2019-7-11 17:53
标题:
学习笔记Mapper
1.除了基础的ssm三大框架所需的坐标还要两个。
dao依赖 的 <dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.1.4</version>
</dependency>
pojo或domain依赖的 <dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
2.持久层接口要继承Mapper(import tk.mybatis.mapper.common.Mapper;)
public interface AccountDao extends Mapper<实体类>
没有方法体;
3.因为dao没有方法体,在Service实现类中注入dao的动态代理对象后就不能再调用自定义的方法;需要调用mapper的方法;
例如; List<Account> list = accountDao.selectAll();
4.实体类上面要加注解@Table(name = "实体类小写")
5,在applicationContext.xml中加载mapper扫描器,产生代理对象;
<bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.dao"></property>
</bean>
maven高级
1.maven是一个项目管理工具;主要作用在项目开发阶段对java项目进行依赖管理和项目构建;
maven 的常用命令;clean:清理;complie:编译;test:测试;package:打包;install安装;
maven的传递依赖;
分别是项目A,项目B以及项目C。假设C依赖B,B依赖A,
那么我们可以根据maven项目依赖的特征不难推出项目C也依赖A(间接依赖);
依赖冲突:
两个jar包依赖名字相同的jar,但是他们版本不同,就造成了依赖冲突;
如何解决依赖冲突;
1.第一声明优先原则;
在pom文件中定义依赖,以先声明的为准,其实就是根据坐标顺序来确定终使用哪个传递过来的依
赖。
2.路径近者优先原则;
直接导入的坐标优先于依赖的坐标;
3.排除依赖
可以使用exclusions标签将传递过来的依赖排除出去;
要排除那个坐标中依赖的坐标,就把exclusions写在该坐标所在dependency中;
例如;
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.4</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
</exclusions>
</dependency>
4.版本锁定
采用直接锁定版本的方法确定依赖jar包的版本,版本锁定后则不考虑依赖的声明顺序或依赖的路径,以锁定的版本
为准添加到工程中,此方法在企业开发中经常使用。
步骤;
第一步:在dependencyManagement标签中锁定依赖的版本;
第二步:在dePendencies标签中声明需要导入的maven坐标;
注意:pom文件中使用dependencyManagement标签进行依赖jar的版本锁定
并不会真正将jar包导入到项目中,只是对这些jar的版本进行锁定,
项目需要使用哪个jar包,还需要在dependencies标签中进行声明;
maven工程的继承
maven工程之间也可以继承,子工程继承父工程后,就可以使用在父工程中引入的依赖。继承的目的是为了消除重
复代码
1.被继承的maven工程通常称为父工程,父工程的打包方式必须为pom,这是错别该maven工程是否是父工程;
继承他maven父工程工程称为子工程,在pom.xml文件中通过parent标签进行父工程的继承;
maven工程的聚合;
在maven工程中使用标签将其他maven工程聚合在一起,聚合的目标是进行统一操作;
方式;<modules>
<module>maven_dao<module>
<module>maven_service<module>
<module>maven_web<module>
<module>maven_pojo<module>
</modules>
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2