springboot+mybatis入门

来源:互联网 发布:淘宝怎么认证实名认证 编辑:程序博客网 时间:2024/06/05 15:09

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 = rootspring.datasource.password =  1234spring.datasource.driverClassName = com.mysql.jdbc.Driver

3.  数据库处理逻辑代码   

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

字段类型描述idbigint(20)主键idnamevarchar(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;@Servicepublic 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;@RestControllerpublic 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
原创粉丝点击