您的位置:首页 > 编程语言 > Java开发

springboot+mybatis入门

2017-03-05 09:18 761 查看

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=上海
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: