springboot和mybatis的整合使用
有两种方法(首选第二种方法)
第一是文档介绍的方法
细读官方文档即可
第二种为mybatis整合后的方法
这里就描述一下第二种方法。
1.在启动类里加入扫描注解
@MapperScan(value = "com.example.phoneshop.dao")
此处com.example.phone.dao是我的dao包处
2.相对于的接口类的xml文件,放到dao目录,让注解类进行扫描,
每个dao类文件,加上注解@Repository
3.在dao同级目录创建对应的service文件夹,内含有 对应的Service接口类和impl实现类
结构树(可这样,也可以自己定义结构树)
--service
----impl
----接口类文件
4.在maven依赖文件里的bulid里加入以下语句
<resources>
<resource>
<directory>src/main/java/</directory> /*这里的src/main/java/是我的文件路径,可自行更改*/
<includes>
<include>**/*.xml</include>/*读取此路径下所有xml文件*/
</includes>
</resource>
</resources>
在加入之后,若是依旧运行报错,则看一下target的classes文件夹下对应的文件夹内xml文件是否被加入,如果没有被加入
则先reimport maven ,再Rebuild项目一下即可,如果还不行,就重复一两次,还不行就不晓得了
以下给出我的User整个文件的简单代码供参考
UserDao.xml
<?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.example.phoneshop.dao.UserDao">
<select id="findUserByPhone" parameterType="String" resultType="com.example.phoneshop.entity.User">
select * from ps_user where phone = #{phone} limit 0,1
</select>
<insert id="insertUser" parameterType="java.util.Map">
insert into ps_user(username,password,power,phone,email,registertime)values(#{username},#{password},#{power},#{phone},#{email},#{registertime})
</insert>
<select id="findUserByEmail" parameterType="String" resultType="com.example.phoneshop.entity.User">
select * from ps_user where email = #{email} limit 0,1
</select>
</mapper>
UserDao
package com.example.phoneshop.dao;
import com.example.phoneshop.entity.User;
import org.springframework.stereotype.Repository;
import java.util.Map;
@Repository
public interface UserDao {
User findUserByPhone(String phone);
int insertUser(Map map);
User findUserByEmail(String email);
}
UserService
package com.example.phoneshop.service;
import com.example.phoneshop.entity.User;
import java.util.Map;
public interface UserService {
/**
* @author nozomi
* @date 2018/7/7 16:25
* @description
*/
User findUserByPhone(String phone);
int insertUser(Map map);
User findUserByEmail(String email);
}
UserServiceImpl
package com.example.phoneshop.service.impl;
import com.example.phoneshop.dao.UserDao;
import com.example.phoneshop.entity.User;
import com.example.phoneshop.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* @author nozomi
* @date 2018/7/7 16:27
* @description
*/
@Service
public class UserServiceImpl implements UserService {
private final UserDao userDao;
@Autowired
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
@Override
public User findUserByPhone(String phone) {
return userDao.findUserByPhone(phone);
}
@Override
public int insertUser(Map map) {
return userDao.insertUser(map);
}
@Override
public User findUserByEmail(String email) {
return userDao.findUserByEmail(email);
}
}
接下来给出测试类代码
TestController
package com.example.phoneshop.controller;
import com.example.phoneshop.entity.User;
import com.example.phoneshop.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value = "test")
public class TestController {
private final UserService userService;
@Autowired
public TestController(UserService userService) {
this.userService = userService;
}
@RequestMapping(value = "test1", method = RequestMethod.GET)
public ModelAndView testUser(User user) {
ModelAndView modelAndView = new ModelAndView("test/test");
user = userService.findUserByPhone("13739497421");
modelAndView.addObject("user", user);
return modelAndView;
}
}
好了,基本上就是这样了,祝大家好运呦。一定要坚持的学习不懈努力,你终会有收获的时候。![1530956947113043245.gif 5MU[MT7D(]~WT)OO4SV66QU.gif](https://blog.tan90.club/upload/image/20180707/1530956947113043245.gif)