之前的项目是建立在使用已有的JPA接口操作数据库,我们这次不使用JPA的接口,自己设计数据库的连接和增删改查,并让操作能够界面化,废话不多说,先把项目结构发出来。
包名功能分析:
mapper包下面有PersonMapper和PersonMapper.xml两个文件,其中PersonMapper.xml 里面些sql语句,PersonMapper将PersonMapper.xml中的语句进行用。注意:PersonMapper是一个接口,只需声明方法,不用实现
nPerson包 这里用不到
other包 里面的PersonController是对方法进行映射和适配,在得到请求指令后,会在这个类中找对应的方法,进行操作。
Person包 这里的Person是实体类,数据库的名称要和类名一致。
service包 PersonController在使用方法时,会使用PersonService接口中的方法,而PersonServiceImpl类是实现PersonService接口中的方法。
整个结构的数据流程是:
- 从页面发来请求
- Controller得到请求,并调用PersonService中的方法
- PersonService的方法由PersonServiceImpl实现
- PersonServiceImpl 的方法会调用PersonMapper接口中的方法
- PersonMapper接口的方法会在xml文件中运行sql语句,进行数据库操作
我们把整个项目的逻辑整理清晰了之后,接下来编码就容易理解很多了
第一步、添加POM依赖
这里需要提的一点是<bulid>里的sources中的内容,在这个项目中我把xml文件放在了src/main/java/helloworld/mapper目录下,所以我在src/main/java中搜索**/*.xml文件。如果你的xml文件放在了src/main/resource下面的目录下的话,就把src/main/java里的东西放在src/main/resource下面
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- freemaker依赖 -->
<dependency>
<groupId>org.springframe