Rumah  >  Artikel  >  Java  >  Bagaimana untuk mengintegrasikan mybatis xml dalam springboot

Bagaimana untuk mengintegrasikan mybatis xml dalam springboot

PHPz
PHPzke hadapan
2023-05-10 21:43:041258semak imbas

springboot mengintegrasikan mybatis

1, tambah rujukan pom

 <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

rreee

3 dalam sumber Buat direktori mybatis di bawah direktori dan cipta fail mybatis-config.xml

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

Buat direktori mapper di bawah direktori mybatis untuk menyimpan fail antara muka kelas mapper

<?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>

fail kelas model

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

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);
}

pengawal:

<?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>

Akhir sekali, tambah anotasi antara muka pemeta imbasan

rreee

ke kelas permulaan atau tambahkannya pada setiap. Anda juga boleh menambahkan anotasi @mapper pada setiap kelas XXMapper Anda boleh memilih salah satu daripada dua

Sebagai contoh,

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);
  }  
}
Saya mengesyorkan menggunakan @MapperScan secara langsung pada kelas permulaan Ia mudah dan boleh dilakukan sekali gus. Anda tidak perlu menambah anotasi @mapper setiap kali anda menulis kelas pemeta

Lampirkan kelas yang dipilih dan. fail dalam direktori struktur projek

怎么在springboot中集成mybatis xml方式

Atas ialah kandungan terperinci Bagaimana untuk mengintegrasikan mybatis xml dalam springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam