springboot+mybatis入门

1. 概述

    springboot是最近非常火的基于spring的微服务框架,它简化了使用springmvc非常繁琐的配置信息管理,让开发者专注于实现自己的业务逻辑。

2. 使用

   2.1 新建一个springboot项目

     下面以intellij idea工具为例讲解如何创建一个访问数据库的springboot微服务。

      在IDE里面 NEW->PROJECT 然后依次如下来配置选项。
      








    最后点击完成生成如下的springboot目录结构。


   
        
           创建过程问题:
           1.  如果在对应的包下面新建java文件时,看不到java代码选项,可以将java目录设置为source roots
            
            
 
           如此以来,就可以在对应的包下新建包或者java代码,但是会带来另外一个问题, 就是发现了部分文件里面会提示“can not resolve springframework”信息, 此问题可以通过以下方式来解决。
       

2.2 数据库相关配置

      编辑application.properties文件,添加如下内容设置数据库相关配置信息:

spring.datasource.url = jdbc:mysql://localhost:3306/test   // 修改为自己的数据库
spring.datasource.username = root	
spring.datasource.password =  1234
spring.datasource.driverClassName = com.mysql.jdbc.Driver

3.  数据库处理逻辑代码   

  在数据库中建立一种用户表,如下:

字段类型描述
idbigint(20)主键id
namevarchar(64)姓名
ageint(11)年龄
cityvarchar(64)所在城市
                  
      然后,创建controller、service、dao、mapper包,并添加对应的代码。
     
        


        在dao层下面新建UserDao类
package com.windyman.dao;

import java.util.Locale;

public class UserDao {
    /**
     * 主键id
     */
    private long id;

    /**
     * 姓名
     */
    private String name;

    /**
     * 年龄
     */
    private int age;

    /**
     * 城市
     */
    private String city;

    /**
     * @param id
     */
    public void setId(long id) {
        this.id = id;
    }

    /**
     * @return
     */
    public long getId() {
        return this.id;
    }

    /**
     *
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     *
     * @return
     */
    public String getName() {
        return this.name;
    }

    /**
     *
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    /**
     *
     * @return
     */
    public int getAge() {
        return this.age;
    }

    /**
     *
     * @param city
     */
    public void setCity(String city) {
        this.city = city;
    }

    /**
     *
     * @return
     */
    public String getCity() {
        return this.city;
    }
}

       
    在mapper包下面新建UserMapper接口
    
package com.windyman.mapper;

import com.windyman.dao.*;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Insert;

public interface UserMapper {

    @Select("SELECT * FROM user WHERE id = #{id}")
    public UserDao getById(@Param("id") long id);

    @Insert("INSERT INTO user(name, age, city) VALUES(#{name}, #{age}, #{city})")
    public int insert(@Param("name") String name, @Param("age") Integer age, @Param("city") String city);
}

    在service下面新建UserService类
   
package com.windyman.service;

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

import com.windyman.dao.UserDao;
import com.windyman.mapper.UserMapper;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public UserDao getUserById(long id) {
        return userMapper.getById(id);
    }

    public int insertUser(String name, int age, String city) {
        return userMapper.insert(name, age, city);
    }
}

    在controller下面新建UserController类
 
package com.windyman.controller;

//import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


import com.windyman.dao.UserDao;
import com.windyman.service.UserService;

import java.util.HashMap;

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/userinfo")
    public UserDao getUser(long id) {
        return userService.getUserById(id);
    }

    @RequestMapping(value="/useradd", method = RequestMethod.GET)
    public HashMap userAdd(@RequestParam("name") String name,
                           @RequestParam("age") String age,
                           @RequestParam("city") String city) {
        int intAge = Integer.parseInt(age);

        int id = userService.insertUser(name, intAge, city);

        HashMap response = new HashMap();
        response.put("status", 0);
        response.put("msg", "success");
        response.put("data", id);

        return response;
    }
}

    最后修改程序的入口类
   
package com.windyman;

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

@SpringBootApplication
@MapperScan("com.windyman.mapper")
public class LearnspringbootApplication {

	public static void main(String[] args) {
		SpringApplication.run(LearnspringbootApplication.class, args);
	}
}

     启动程序, 访问http://localhost:8080/userinfo?id=5 得到json返回数据
                          访问http://localhost:8080/useradd?name=张三&age=20&city=上海


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值