好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

详解springboot集成mybatis xml方式

springboot 集成 mybatis

关键代码如下:

1,添加pom引用

?

1

2

3

4

5

6

7

8

9

<dependency>

  <groupid>org.mybatis.spring.boot</groupid>

  <artifactid>mybatis-spring-boot-starter</artifactid>

  <version> 1.1 . 1 </version>

</dependency>

   <dependency>

     <groupid>mysql</groupid>

     <artifactid>mysql-connector-java</artifactid>

   </dependency>

2 application.properties

?

1

2

3

4

5

6

7

8

mybatis.config-locations=classpath:mybatis/mybatis-config. xml

mybatis.mapper-locations=classpath:mybatis/mapper/*.xml

mybatis.type-aliases- package =com.kerry.model

 

spring.datasource.driverclassname = com.mysql.jdbc.driver

spring.datasource.url = jdbc:mysql: //localhost:3306/test?useunicode=true&characterencoding=utf-8

spring.datasource.username = root

spring.datasource.password = 123456

3 在resource目录下创建mybatis目录并创建mybatis-config.xml文件

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

<?xml version= "1.0" encoding= "utf-8" ?>

<!doctype configuration public "-//mybatis.org//dtd config 3.0//en" "http://mybatis.org/dtd/mybatis-3-config.dtd" >

<configuration>

  <settings>

  <setting name= "callsettersonnulls" value= "true" />

 

  <setting name= "cacheenabled" value= "true" />

 

  <setting name= "lazyloadingenabled" value= "true" />

 

  <setting name= "aggressivelazyloading" value= "true" />

 

  <setting name= "multipleresultsetsenabled" value= "true" />

 

  <setting name= "usecolumnlabel" value= "true" />

 

  <setting name= "usegeneratedkeys" value= "false" />

 

  <setting name= "automappingbehavior" value= "partial" />

 

  <setting name= "defaultexecutortype" value= "simple" />

 

  <setting name= "mapunderscoretocamelcase" value= "true" />

 

     <setting name= "localcachescope" value= "session" />

 

     <setting name= "jdbctypefornull" value= "null" />

 

  </settings>

 

  <typealiases>

  <typealias alias= "integer" type= "java.lang.integer" />

  <typealias alias= "long" type= "java.lang.long" />

  <typealias alias= "hashmap" type= "java.util.hashmap" />

  <typealias alias= "linkedhashmap" type= "java.util.linkedhashmap" />

  <typealias alias= "arraylist" type= "java.util.arraylist" />

  <typealias alias= "linkedlist" type= "java.util.linkedlist" />

  </typealiases>

</configuration>

mybatis目录下创建mapper目录存放mapper类接口文件

?

1

2

3

4

5

6

7

8

9

10

package com.kerry.mapper;

import java.util.list;

import com.kerry.model.user;

public interface usermapper {

  list<user> getall();

  user getone(integer id);

  void insert(user user);

  void update(user user);

  void delete(integer id);

  }

model类文件

?

1

2

3

4

5

6

7

8

9

10

package com.kerry.mapper;

import java.util.list;

import com.kerry.model.user;

public interface usermapper {

  list<user> getall();

  user getone(integer id);

  void insert(user user);

  void update(user user);

  void delete(integer id);

}

usermapper.xml

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

<?xml version= "1.0" encoding= "utf-8" ?>

<!doctype mapper public "-//mybatis.org//dtd mapper 3.0//en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace= "com.kerry.mapper.usermapper" >

   <resultmap id= "baseresultmap" type= "com.kerry.model.user" >

     <id column= "id" property= "id" jdbctype= "integer" />

     <result column= "name" property= "name" jdbctype= "varchar" />

     <result column= "age" property= "age" jdbctype= "varchar" />

     <result column= "address" property= "address" jdbctype= "varchar" />

   </resultmap>

  

   <sql id= "base_column_list" >

     id, name, age, address

   </sql>

 

   <select id= "getall" resultmap= "baseresultmap" >

     select

     <include refid= "base_column_list" />

   from user

   </select>

 

   <select id= "getone" parametertype= "java.lang.integer" resultmap= "baseresultmap" >

     select

     <include refid= "base_column_list" />

   from user

   where id = #{id}

   </select>

 

   <insert id= "insert" parametertype= "com.kerry.model.user" >

     insert into

      user

      (id,name,age,address)

     values

      (#{id},#{name}, #{age}, #{address})

   </insert>

  

   <update id= "update" parametertype= "com.kerry.model.user" >

     update

      user

     set

     < if test= "name != null" >name = #{name},</ if >

     < if test= "age != null" >age = #{age},</ if >

     address = #{address}

     where

      id = #{id}

   </update>

  

   <delete id= "delete" parametertype= "java.lang.integer" >

     delete from

      user

     where

      id =#{id}

   </delete>

</mapper>

controller:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

package com.kerry.web;

import java.util.list;

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.web.bind.annotation.pathvariable;

import org.springframework.web.bind.annotation.requestmapping;

import org.springframework.web.bind.annotation.restcontroller;

import com.kerry.model.user;

import com.kerry.mapper.usermapper;

@restcontroller

public class usercontroller {

  @autowired

  private usermapper usermapper;

 

  @requestmapping ( "/getusers" )

  public list<user> getusers() {

  list<user> users=usermapper.getall();

  return users;

  }

 

   @requestmapping ( "/getuser" )

   public user getuser(integer id) {

    user user=usermapper.getone(id);

     return user;

   }

  

   @requestmapping ( "/add" )

   public void save(user user) {

    usermapper.insert(user);

   }

  

   @requestmapping (value= "update" )

   public void update(user user) {

    usermapper.update(user);

   }

  

   @requestmapping (value= "/delete/{id}" )

   public void delete( @pathvariable ( "id" ) integer id) {

    usermapper.delete(id);

   } 

}

最后在启动类上加上 扫描maper interface注解

?

1

2

3

4

5

6

7

8

@springbootapplication

@mapperscan ( "com.kerry.mapper" )

public class application {

 

  public static void main(string[] args) {

  springapplication.run(application. class , args);

  }

}

或者在每个xxmapper类上加上@mapper注解也行  二选一即可

比如

?

1

2

3

4

5

6

7

8

9

10

11

12

package com.kerry.mapper;

import java.util.list;

import org.apache.ibatis.annotations.mapper;

import com.kerry.model.user;

  @mapper

public interface usermapper {

  list<user> getall();

  user getone(integer id);

  void insert(user user);

  void update(user user);

  void delete(integer id);

}

个人建议使用直接在启动类上application上@mapperscan方便,一次搞定,不必每写一个mapper类都加上@mapper注解

附上项目结构目录 选中的类以及文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:https://blog.csdn.net/lr131425/article/details/76269236

查看更多关于详解springboot集成mybatis xml方式的详细内容...

  阅读:37次