下面我来为你详细讲解“SpringBoot整合mybatis的方法详解”的完整攻略。
准备工作
- 在maven中引入spring-boot-starter-jdbc、mybatis-spring-boot-starter、mysql-connector-java等依赖。
- 在application.properties中配置数据库信息和mybatis配置。
spring.datasource.url= jdbc:mysql://localhost:3306/springboot
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# mybatis
mybatis.type-aliases-package=com.example.mybatisdemo.domain
mybatis.mapper-locations=classpath:mapper/*.xml
配置Mybatis
- 在SpringBoot项目中创建一个mapper接口,用于操作数据库,例如UserMapper.java:
@Mapper
@Repository
public interface UserMapper {
List<User> findAll();
User findById(Long id);
void save(User user);
}
在这个接口中定义了三个方法,分别用于查询所有用户、根据id查询用户、保存用户。
- 在resources/mapper中编写xml文件,与mapper接口相对应,例如UserMapper.xml:
<mapper namespace="com.example.mybatisdemo.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.example.mybatisdemo.domain.User">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="age" jdbcType="INTEGER" property="age" />
<result column="email" jdbcType="VARCHAR" property="email" />
</resultMap>
<select id="findAll" resultMap="BaseResultMap">
SELECT id, name, age, email FROM user
</select>
<select id="findById" parameterType="java.lang.Long" resultMap="BaseResultMap">
SELECT id, name, age, email FROM user WHERE id = #{id}
</select>
<insert id="save" parameterType="com.example.mybatisdemo.domain.User">
INSERT INTO user (name, age, email) VALUES (#{name}, #{age}, #{email})
</insert>
</mapper>
这个xml文件中定义了三个查询语句,与上面定义的mapper接口相对应,同时定义了resultMap用于映射查询结果。
测试
- 在测试类中注入UserMapper,并测试findAll方法:
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserMapperTest {
@Autowired
private UserMapper userMapper;
@Test
public void testFindAll() {
List<User> users = userMapper.findAll();
Assert.assertEquals(3, users.size());
}
}
这个测试类中注入了UserMapper,测试了findAll方法。
- 另外一个例子:
@RestController
public class UserController {
@Resource
private UserMapper userMapper;
@GetMapping("/users")
public Map<String, Object> findAll() {
Map<String, Object> result = new HashMap<>();
result.put("code", 200);
result.put("message", "成功");
result.put("data", userMapper.findAll());
return result;
}
@PostMapping("/user")
public Map<String, Object> save(User user) {
Map<String, Object> result = new HashMap<>();
userMapper.save(user);
result.put("code", 200);
result.put("message", "成功");
return result;
}
}
这个例子用RestController(SpringMVC)对外提供了两个接口,分别用于查询所有用户和保存用户,其中注入了UserMapper。
以上就是关于“SpringBoot整合mybatis的方法详解”的完整攻略,包含了配置mybatis和测试两条示例。希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合mybatis的方法详解 - Python技术站