Springboot整合mybatis(二)

本文介绍如何使用Spring Boot框架结合MyBatis实现数据库操作,包括项目搭建、配置及各层实现步骤。

     上一篇《人生中第一个springboot入门程序》,其实是有点错误的,原以为qq截图可以在这上面保留,可惜最后还是不见了,所以,今天的博文我采用的贴代码,当然,我也会把我的逻辑思维写出来。。

 1.整合springboot+mybatis的准备工作

  1.我个人的maven没有配置好自动下载jar包,所以我采用的是插件的形式。首先新建一个springboot项目,在这个时候,你要勾选web,mybatis,mysql(我用的是mysql),如果是第一次生成项目的话,你可能需要等待一会,因为它会给你下载需要的jar包,当然,如果你本地有maven仓库,那么下一次你可通过创建maven项目来搭建springboot框架。
2.准备好数据库里面的相关资源,包括数据库名称,表,表里面的字段,同时,你要知道你的数据库用户名和密码
3.准备好自己的思维逻辑。。。

 2.项目中的相关配置

 1,项目创建成功后,先看一下pom.xml里面的相关jar包是否导入。
 2.  在resources目录下找到application.properties配置文件,在当中要配置mybatis和数据库的相关配置信息。
mybatis.mapper-locations=classpath:mapper/*Mapper.xml 
mybatis.type-aliases-package=com.example.demo.entity

spring.datasource.url=jdbc:mysql://localhost:3306/user
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.username=root
spring.datasource.password=123456
第一行:在resources目录下新建一个mapper文件夹,在里面保存后缀为Mapper.xml的配置文件
第二行:给我实体包下面的类设置别名,在mapper,xml文件中会用到,不然会报错找不到相关路径信息
第三行--第六行:数据库链接,driver,用户名,密码(这不用多说了,没密码的不用敲第六行也可以)
3.创建相关的包或者是目录结构(此处我想说的是,springboot的核心配置main方法在哪个包下面,其他的包必须在它的子包下面,这点要记住。。。)
  比如我自己,核心springboot的main方法在com.lxt.demo包下面,我其他的包依次如下:
         com.lxt.demo.entity     实体包
         com.lxt.demo.mapper  dao层
         com.lxt.demo.service  service层
         com.lxt.demo.service.impl  service层的实现类
         com.lxt.demo.controller  controller层
    大家可以看到,我这都是基于核心springboot的main方法所在包来进行的,不然会报错。。(此刻怀恋我的qq截图),下面我就我的逻辑说一下,然后把相关的代码贴上来、、
    首先说我的逻辑,其实和springMVC一样,整体采用的是注解的操作,我喜欢从底层往上面去实现。
1,首先根据你的数据库写出对应的实体类,这里是单表,多表是类似的。
package com.example.demo.entity;

public class User {
    private int id;
    private String username;
    private String password;
    private String sex;
    private String address;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
}


2,然后根据需求写出相应的dao接口,我这里只是实现一个查询所有的方法,注意在类上声明一个@mapper注解,为了响应springboot的所作的一些配置。
package com.example.demo.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

import com.example.demo.entity.User;

@Mapper
public interface UserMapper {
   
	public List<User> findAll();
}


3.根据你接口处的方法名去对应你的mapper.xml配置文件,在当中编写你的sql语句,此处可以当做你dao层的实现类
<?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.demo.mapper.UserMapper">
	<select id="findAll" resultType="User">
	   select * from users
	</select>
</mapper>


4,然后进行到service层,在这里你只需要声明一个接口方法,你可以和dao里面的方法相同,其他交给你的实现类去实现
package com.example.demo.service;

import java.util.List;

import com.example.demo.entity.User;

public interface UserService {
   
	public List<User> findAll();
}


5,接下来就是实现类,在类上要声明@service注解,并在里面拿到dao并装配,在具体的方法中调用dao即可。
package com.example.demo.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.UserService;

@Service
public class UserServiceImpl implements UserService {
  
	@Autowired
	private UserMapper userMapper;
	
	public List<User> findAll() {
		return userMapper.findAll();
	}

}


6,最后就是控制器了,因为是springboot,所以要声明@restcontroller注解,其他的就和springMVC一样了,因为这里是浅显的整合,所以没采用页面,就直接在浏览器上面进行显示即可。。
package com.example.demo.action;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;

@RestController
public class UserController {
  
	@Autowired
	private UserService userService;
	
	@RequestMapping("/admin")
	public List<User> findAll(){
		List<User> list = userService.findAll();
		return list;
	}
}

     结束语:学到现在,我感觉springboot确实比spring更加简单,基本配置只需要在application.properties里面进行配置即可,但是也让我发现一个问题,那就是简单的背后,你对spring底层的东西了解的越来越少,很可能在代码的海洋里迷失自己,所以,springboot固然简单,但是,spring中的精髓同样不能丢掉。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值