IDEA简单的详细的 mybatis步骤案例(详细)

1.搭建环境

一.IDEA

二.http://www.mvnrepository.com。下载jar包的网站。

2.详细步骤

1.首先启动IDEA

2.

3.

4.

5.创建好的界面

6.删除后创建module子模板。

7.同理可得。

8.

9.

10.按照7——8步依次创建dao—module层和service—层

11.添加依赖

dao层添加依赖如下:

service层添加依赖如下:

根层依赖如下:

12.创建数据库。

12-2

12-3:之前创建好了,dos创建数据库和图形化界面创建数据库命令一样。

12-4

12-5

11.创建实体类,删除test和resources

12.创建实体类的包(edu.jb.entity)

13.在实体类包中创建一个员工的类

14.Alt+Insert快捷键自动创建get,set方法。

15.同理可得再创建一个实体类DepartmentInfo

16.在dao层创建一个包(com.nf.mappers)在包下面创建一个接口

17.StaffMapper接口

 1 package com.nf.mappers;
 2 
 3 import com.nf.entity.DepartmentInfo;
 4 import com.nf.entity.Staff;
 5 
 6 import java.util.List;
 7 
 8 public interface StaffMapper {
 9     public List<Staff>findStaffById();
10     public List<DepartmentInfo>getAllDepartmentInfo();
11 }

18.在dao层创建三个配置文件

 1.StaffMapper.xml配置文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 3         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 4 <mapper namespace="com.nf.mappers.StaffMapper">
 5     <resultMap id="xxx" type="Staff">
 6         <id property="sid" column="sid"></id>
 7         <result property="sname" column="sname"></result>
 8         <result property="email" column="email"></result>
 9     </resultMap>
10     <select id="findStaffById" resultMap="xxx">
11         select * from staff where sid in (
12         select sid from staff_house where did=#{did}
13         );
14     </select>
15     <resultMap id="myDepartment" type="DepartmentInfo">
16         <id property="did" column="did"></id>
17         <result property="name" column="name"></result>
18         <result property="edrs" column="edrs"></result>
19         <result property="kcount" column="kcount"></result>
20         <result property="kzl" column="kzl"></result>
21         <collection property="staffList" select="findStaffById" column="did"></collection>
22     </resultMap>
23     <select id="getAllDepartmentInfo" resultMap="myDepartment">
24         select did,name,edrs,kcount,(edrs-kcount)/edrs kzl from
25         (select did,count(1) kcount from staff_house group by did) hh,department
26         where hh.did=department.id
27         order by kzl desc
28     </select>
29 </mapper>

2.application.properties配置文件

#这个文件用来记录配置信息,一般而言,就是你的数据库相关信息
jdbc.driverClassName=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/company?serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true
jdbc.username=root
jdbc.password=123456

3.mybatis-config.xml配置文件

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 3         "http://mybatis.org/dtd/mybatis-3-config.dtd">
 4 <configuration>
 5     <properties resource="application.properties"></properties>
 6     <typeAliases>
 7         <package name="com.nf.entity"></package>
 8     </typeAliases>
 9     <environments default="development">
10         <environment id="development">
11             <transactionManager type="jdbc"></transactionManager>
12             <dataSource type="POOLED">
13                 <property name="driver" value="${jdbc.driverClassName}" />
14                 <property name="url" value="${jdbc.url}" />
15                 <property name="username" value="${jdbc.username}" />
16                 <property name="password" value="${jdbc.password}" />
17             </dataSource>
18         </environment>
19     </environments>
20     <mappers>
21         <mapper resource="mapper/StaffMapper.xml"/>
22     </mappers>
23 </configuration>

19.在service层创建一个包(com.nf.service)再包里面创建一个接口和一个具体的实现类

1.StaffService接口

1 package com.nf.service;
2 
3 import com.nf.entity.Staff;
4 
5 public interface StaffService {
6     public Staff test();
7 }

2.StaffServicelmpl实现类

 1 package com.nf.service;
 2 
 3 import com.nf.entity.DepartmentInfo;
 4 import com.nf.entity.Staff;
 5 import com.nf.mappers.StaffMapper;
 6 import org.apache.ibatis.io.Resources;
 7 import org.apache.ibatis.session.SqlSession;
 8 import org.apache.ibatis.session.SqlSessionFactory;
 9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
10 
11 import java.io.IOException;
12 import java.io.InputStream;
13 import java.util.List;
14 
15 public class StaffServicelmpl implements StaffService {
16     public StaffMapper staffMapper=null;
17     public Staff test() {
18         SqlSession session = null;
19         try {
20             //高度的耦合(后面要想办法彻底的解构)
21             InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
22             SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
23             session = sessionFactory.openSession();
24             //直接创建一个dao层的实现类
25             staffMapper = session.getMapper(StaffMapper.class);
26             System.out.println("我真的很想知道这个实现类是谁:"+staffMapper);
27 
28         } catch (IOException e) {
29             e.printStackTrace();
30             return null;
31         }
32         List<DepartmentInfo> infos=staffMapper.getAllDepartmentInfo();
33         for(DepartmentInfo d:infos){
34             System.out.println(d.getDid()+" "+d.getName()+" "+d.getKcount()+"人"+" "+d.getKzl());
35             System.out.print("(");
36 
37 
38             List<Staff>  staff=d.getStaffList();
39             for(Staff s:staff){
40                 System.out.print(s.getSname()+"|");
41             }
42             System.out.print(")");
43             System.out.println();
44         }
45         return null;
46     }
47 }

20.最后用实现类测试,步骤如下:在实现类里单机右键--go to---Test---new test,就会在test层创建一个测试类。

21.service test测试类:

StaffServicelmplTest文件

 1 package com.nf.service;
 2 
 3 import com.nf.entity.Staff;
 4 import org.junit.jupiter.api.Test;
 5 
 6 import static org.junit.jupiter.api.Assertions.*;
 7 
 8 class StaffServicelmplTest {
 9 
10     @Test
11     void test1() {
12         Staff staff=new StaffServicelmpl().test();
13     }
14 }

22.运行结果如下:

23.简单的配置就完成了谢谢。个人笔记,不喜勿喷。

    

  

猜你喜欢

转载自www.cnblogs.com/zlf888/p/9600013.html