SpringBoot实现(二):MyBatis 配置和 MVC 布置

SpringBoot实现(一):eclipse 下 maven 环境配置
SpringBoot实现(二):MyBatis 配置和 MVC 布置
SpringBoot实现(三):关联 Thymeleaf
SpringBoot实现(四):过滤器 Filter
SpringBoot实现(五):将项目部署到云服务器(完)

点击 Java Resources,依次在 src/main/java中创建以下几个包:)

1,com.example

作为项目根目录,存在一个项目启动类

2,com.example.controller

Servlet 管理类,用于路径映射和业务实现等一系列操作

3,com.example.entity

Java Bean 实体类

4,com.example.mapper

dao 接口

5,com.example.service

dao 接口实现类
在这里插入图片描述
再在src/main/resources目录下创建以下几个文件和包

1,包 mapping

dao 文件配置

2,包 templates

后面说到:)

3,application.yml

项目配置文件

4,application-test.yml

项目配置文件-分流
在这里插入图片描述
application.yml文件中加入以下数据

spring:
  profiles:
    active: test

不允许存在 Tab 键,不然会报错
什么意思呢?在项目启动时会读取application.yml文件中的数据,而加入以上数据后它会转向名为application-test.yml文件,去读取其配置信息,只要你的分流文件符合application-+名字就可以被转向,这就允许你可以有多个环境下的配置文件,可以方便的切换不同环境下的配置:)
之后再 application-test.yml文件中加入以下数据

server:
  port: 8080
 
spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://127.0.0.1:3306/test
    driver-class-name: com.mysql.jdbc.Driver

mybatis:
  mapper-locations: classpath:mapping/*.xml
  type-aliases-package: com.example.entity

乍一看一脸懵逼,细看的话就觉得很熟悉了,不就是数据库配置信息和服务器端口吗,还有一个MyBatis的配置信息,主要内容为 Java Bean 实体类dao配置文件的路径:)
好了,接下来要实现 MaBatis 了:)
首先,在实体包com.example.entity中创建一个 User,类,其内容为

package com.example.entity;

public class User {
	private Integer id;
	private String username;
	private String password;
	public Integer getId() {
		return id;
	}
	public void setId(Integer 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;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
	}	
}

注意:bean 属性必须与数据库的表的列名一致,不然会关联不到数据

小技巧

打完三个属性后,按 Shift + Alt + S, 之后按 R,再按 Tab,再按 Enter,再按 Shitf + Tab,再按 Enter,完成 getter + setter 快速写入
按 Shift + Alt + S,之后按 S,再按 Enter,完成 toString() 的快速写入,熟练后整个过程就几秒:)
之后在 com.example.mapper 包中创建接口类 UserMapper,内容如下

package com.example.mapper;

import org.springframework.stereotype.Repository;
import java.util.List;

import com.example.entity.User;
@Repository
public interface UserMapper {
	void save(User user);
	User findByUser(User user);
	void deleteById(int id);
	List<User> findAll();
}

四个方法,分别用来存储用户,寻找所有用户,寻找用户,根据 id 删除指定,一个注解,用于告诉 SpringBoot 它是干嘛的:)
然后在 com.example.service 包中创建一个接口实现类 UserService,内容如下

package com.example.service;

import java.util.List;

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

import com.example.entity.User;
import com.example.mapper.UserMapper;
@Service
public class UserService implements UserMapper {

	@Autowired
	private UserMapper mapper;
	
	public void save(User user) {
		// TODO Auto-generated method stub
		mapper.save(user);
	}

	public User findByUser(User user) {
		// TODO Auto-generated method stub
		return mapper.findByUser(user);
	}

	public void deleteById(int id) {
		// TODO Auto-generated method stub
		mapper.deleteById(id);
	}

	public List<User> findAll() {
		// TODO Auto-generated method stub
		return mapper.findAll();
	}
}

主要实现了接口的方法,@Service注解与@Repository一样,都是为了告诉 SpringBoot 干嘛的,而 @Autowired的作用为依赖注入,可以使 SpringBoot 帮你将接口实例化,不用你去具体实现:)
src/main/resources 下的 mapping 包中创建一个xml 文件 UserMapper.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.mapper.UserMapper">
	<resultMap id="UserMap" type="com.example.entity.User">
		<result column="id" jdbcType="INTEGER" property="id" />
		<result column="username" jdbcType="VARCHAR" property="username" />
		<result column="password" jdbcType="VARCHAR" property="password" />
	</resultMap>

	<select id="findAll" resultType="com.example.entity.User">
		select * from user
	</select>

	<select id="findByUser" resultType="com.example.entity.User"
		parameterType="com.example.entity.User">
		select * from user where username=#{username} and password=#{password}
	</select>
	
	<insert id="save" parameterType="com.example.entity.User">
		insert into user (username, password) values (#{username}, #{password})
	</insert>
	
	<delete id="deleteById">
		delete from user where id=#{id}
	</delete>
</mapper>

看起来其实挺好懂的,都是一些 sql 语句的配置,其 select 返回类型设置要注意,若是一个类就写类,是一个集合的话就写集合元素的类型,如 List<User> 写的就是User的类型:)
然后,在com/example/controller文件夹中创建一个管理类 UserController,内容如下

package com.example.controller;

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

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

@RestController
@RequestMapping("user")
public class UserController {
	@Autowired
	private UserService userService;
	@RequestMapping("test.do")
	public void doTest() {
		for (User u : userService.findAll()) {
			System.out.println(u.toString());
		}
	}
}

若你用 SpringMVC 用的很熟的话,看着个就非常容易了,首先 @RestController 为注解,解释用的,@RequestMapping("user")@RequestMapping("test..do")为路径设置,用于路径映射,当项目跑起来时,你只要访问网址http://localhost:8080/user/test.do,就会执行其中的代码:)
最后,在 com.example 包下创建一个项目启动类 DemoApplication,其内容如下

package com.example;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan(value="com.example.mapper")
public class DemoApplication {
	
	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
	
}

@SpringBootApplication一个注解,MapperScan(value="com.example.mapper")用于声明仓库:)
启动:若成功的话,则会出现以下日志
在这里插入图片描述
项目启动后,访问网址http://localhost:8080/user/test.do,会打印以下日志
在这里插入图片描述
这是我预先存入数据库的一些数据,好了,如果做到了这步,就到表你成功了,通过管理类你就可以很方便的处理业务逻辑和路径映射,省去了web层中的 Servlet 类的创建与配置:)

问题询问:hellolxb@yeah.net

SpringBoot实现(一):eclipse 下 maven 环境配置
SpringBoot实现(二):MyBatis 配置和 MVC 布置
SpringBoot实现(三):关联 Thymeleaf
SpringBoot实现(四):过滤器 Filter
SpringBoot实现(五):将项目部署到云服务器(完)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值