在众多的orm框架中,我使用最多的,最习惯的,也是目前使用最广泛的就是mybatis,接下来我们就去将springboot整合mybatis
对于springboot整合mybatis有好几种方法,在这里我们使用最简单,最方便的一种整合方式
在pom中添加以下依赖
在application.properties 中增加以下配置
#数据库连接本地
spring.datasource.url=jdbc:mysql://localhost:3306/springbootTest
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.initial-size = 10
spring.datasource.max-active = 50
spring.datasource.min-idle = 5
spring.datasource.max-idle = 10
在这里要想使用这种最简单的方法,就必须用spring.datasource开头,只有以datasource开头,才能在项目的Application启动时将配置文件的该类信息组装成datasource(数据源),达到了连接数据库的目的
接下来创建user表
表结构:
CREATE TABLE `user` (
`id` varchar(255) NOT NULL,
`username` varchar(255) DEFAULT NULL,
`password` varchar(255) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
编写dao层代码,新建UserMapper 接口
@Mapper
public interface UserMapper {
@Select("SELECT * FROM USER WHERE username = #{username}")
UserInfo findByName(@Param("username") String username);
@Insert("INSERT INTO user(id,username, password,name) VALUES(#{id},#{username}, #{password},#{name})")
int insert(UserInfo userInfo);
}
在业务层增加对dao层接口的引用,创建userService
public interface UserService {
public UserInfo getUserInfoByUserName(String username);
public void insertUserInfo(UserInfo userInfo);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public UserInfo getUserInfoByUserName(String username) {
UserInfo userInfo = userMapper.findByName(username);
return userInfo;
}
@Override
public void insertUserInfo(UserInfo userInfo) {
userMapper.insert(userInfo);
}
}
接下来添加我们的controller,提供对外的接口,修改UserController
@RestController
@RequestMapping(value = "/user")
public class UserController {
//增加日志
private final Logger log = LoggerFactory.getLogger(UserController.class);
@Autowired
private UserService userService;
/*
* 测试mybatis连接数据库
* 查询信息
* @return
* *
* */
@RequestMapping(value = "/getUserInfoByName",method = RequestMethod.GET)
public String getUserInfoByName(){
//打印日志
log.info("开始根据用户名查询用户信息");
String username = "yangheng";
UserInfo userInfo = userService.getUserInfoByUserName(username);
Map<String,Object> resMap = new HashMap<String, Object>();
resMap.put("data",userInfo);
return JSONConvertor.toJSON(resMap);
}
/*
* 测试mybatis连接数据库
* 新增用户信息
* @return
* *
* */
@RequestMapping(value = "/insertUserInfo",method = RequestMethod.GET)
public String insertUserInfo() throws Exception{
//打印日志
log.info("开始插入用户信息");
UserInfo userInfo = new UserInfo();
//用户id
userInfo.setId(UUID.randomUUID().toString());
//用户用户名
userInfo.setUsername("yangheng");
//用户密码
userInfo.setPassword(MD5.EncodeByMd5("123456"));
//姓名
userInfo.setName("哼哼");
userService.insertUserInfo(userInfo);
return "成功";
}
}
来测试一下我们的新接口,访问 http://localhost:8080/user/insertUserInfo
访问 http://127.0.0.1:8080/user/getUserInfoByName
这里密码做了MD5加密
然后去数据库中查一下是否查入成功了
这样,最简单的mybatis整合就完成了