为什么要用Mybatis

MyBatis把sql语句从Java源程序中独立出来, 放在单独的XML文件中编写,给程序的维护带来了很大便利。

java 获取mybatis 的 mapper上的注解_Mapper接口

 Mybatis读取数据库需要做什么?

1首先先在数据库创建一张表

java 获取mybatis 的 mapper上的注解_MyBatis_02

2新建一个mybatis项目

java 获取mybatis 的 mapper上的注解_CURD操作_03

 

java 获取mybatis 的 mapper上的注解_CURD操作_04

 3待创建完毕,再右键自己的项目进行创建一个子项目

java 获取mybatis 的 mapper上的注解_数据库配置_05

java 获取mybatis 的 mapper上的注解_Mapper接口_06

 (2)选择以下三个依赖项即可

java 获取mybatis 的 mapper上的注解_CURD操作_07

 4在父项目中的pom.xml文件中添加以下代码


<dependencies> <!-- mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.30</version> </dependency> <!-- mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.10</version> </dependency> <!-- junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> </dependency> </dependencies>


5在子项目中resource目录下添加mybatis-config.xml文件

java 获取mybatis 的 mapper上的注解_Mapper接口_08

 以下为部分代码


<environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <!-- 驱动--> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <!-- 数据库地址--> <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> <!-- 数据库的用户名--> <property name="username" value="root"/> <!-- 数据库密码--> <property name="password" value="123456"/> </dataSource> </environment> </environments>


 6再在resource目录下创建个包,并添加UserMapper.xml文件

 

java 获取mybatis 的 mapper上的注解_SpringBoot_09

以下为UserMapper.xml文件代码

java 获取mybatis 的 mapper上的注解_MyBatis_10

 7 在子项目的java目录下创建如图所示三个对应包(controller,domain,mapper)

前两个目录下创建java类对象,最后一个创建一个接口对象

java 获取mybatis 的 mapper上的注解_数据库配置_11

 8(1)User类 (这个是与你数据库的所创建的表对应,即数据表具有的字段属性 在这个类中都应有所对应)

java 获取mybatis 的 mapper上的注解_MyBatis_12

 构造函数以及get函数与set函数都可通过alt+insert进行自动编写;最后以同样的方式编写一个tostring()函数,这样一个User类就创建完毕了。

8(2)创建 UserMapper接口

java 获取mybatis 的 mapper上的注解_MyBatis_13

8(3)配置数据源

①可创建一个yml文件

java 获取mybatis 的 mapper上的注解_SpringBoot_14

②或者直接在自带的application.properties中直接配置(前提是yml文件中没有此类代码 如果有,yml中的代码将会覆盖properties文件中的代码)

java 获取mybatis 的 mapper上的注解_CURD操作_15

 8(4)创建controller对象

并在controller对象中添加以下代码


private static HashMap<String,Integer> mmap= new HashMap<>(); InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is); SqlSession sqlSession = sqlSessionFactory.openSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); List<User> result= mapper.getUserList(); public HelloController() throws IOException { } @GetMapping("/hello") public String hello(){ return result.toString(); }


9完成以上步骤,就算完成了springboot与mybatis的结合,点击运行 

java 获取mybatis 的 mapper上的注解_数据库配置_16

出现以下两行 就代表以及成功了

 

java 获取mybatis 的 mapper上的注解_CURD操作_17

 最后将地址复制到浏览器进行查看,如果不知道地址的可以点击此处查看

java 获取mybatis 的 mapper上的注解_MyBatis_18

 最终结果

java 获取mybatis 的 mapper上的注解_数据库配置_19

 纯新人 我也还在学,如果有什么错误,望指正

以下是简单的CURD操作

CURD:分别对应create(增加,创造),update(更新),read(读取),delete(删除)。这是总称,实际上在数据库以及spring中所对应的分别是add(),update(),select(),delete().

1.select

选择,查询语句

id:就是对应的namespace中的方法名

resulType:sql语句执行的返回值!

parameterType:参数类型!

  1. 编写接口 (在mapper中)
     
  2. java 获取mybatis 的 mapper上的注解_MyBatis_20

  3. 编写对应的mapper中的sql语句(UserMapper.yml中)
  4. java 获取mybatis 的 mapper上的注解_数据库配置_21

  5. 在controller中编写对应的接口
  6. java 获取mybatis 的 mapper上的注解_Mapper接口_22


  7. 在postman上进行操作
  8. java 获取mybatis 的 mapper上的注解_Mapper接口_23


3.Insert(插入操作)

  1.  编写接口 (在mapper中)
     
  2. java 获取mybatis 的 mapper上的注解_Mapper接口_24


  3. 编写对应的mapper中的sql语句(UserMapper.yml中)
  4. java 获取mybatis 的 mapper上的注解_MyBatis_25


  5. 在controller中编写对应的接口(这里是为了能在前端网页上进行增加操作)
  6. java 获取mybatis 的 mapper上的注解_数据库配置_26

  7. 在postman上进行操作
  8. java 获取mybatis 的 mapper上的注解_SpringBoot_27

  9. 可以看到数据库中有相应的增加,说明我们的添加操作没有问题
  10. java 获取mybatis 的 mapper上的注解_数据库配置_28

4.update(更新操作)

  1.   编写接口 (在mapper中)
     
  2. java 获取mybatis 的 mapper上的注解_SpringBoot_29


  3. 编写对应的mapper中的sql语句(UserMapper.yml中)
  4. java 获取mybatis 的 mapper上的注解_Mapper接口_30


  5. 在controller中编写对应的接口
  6. java 获取mybatis 的 mapper上的注解_Mapper接口_31


  7.  在postman上进行操作
  8. java 获取mybatis 的 mapper上的注解_SpringBoot_32


  9. 可以看到数据库中有相应的修改,说明我们的修改操作没有问题
  10. java 获取mybatis 的 mapper上的注解_MyBatis_33


5.Detele

 

  1.   编写接口 (在mapper中)
     
  2. java 获取mybatis 的 mapper上的注解_数据库配置_34



  3. 编写对应的mapper中的sql语句(UserMapper.yml中)
  4. java 获取mybatis 的 mapper上的注解_CURD操作_35




  5. 在controller中编写对应的接口
  6. java 获取mybatis 的 mapper上的注解_MyBatis_36

  7.   在postman上进行操作
  8. java 获取mybatis 的 mapper上的注解_数据库配置_37


  9. 可以看到数据库中有相应的修改,说明我们的删除操作没有问题
  10. java 获取mybatis 的 mapper上的注解_数据库配置_38


注意点:

增删改需要提交事物!

6.分析错误

标签不要匹配错

resourse绑定mapper,需要使用路径

程序配置文件必须符合规范

NullPointerExcepyion,没有注册资源

输出的xml文件中存在中文乱码问题

maven资源没有导出问题