SpringBoot整合Mybatis完整版

山西快乐十分走势 www.yfhdr.cn  

喜欢的朋友可以关注下,粉丝也缺。

自从Spring推出Boot,Cloud系列之后,一度成为热门的框架,现在大部分的招聘要求都要有相关的开发经验,借此我在这里就给大家分享一下如何玩转SpringBoot跟Mybatis。

 

这里我给大家提供我创建的demo下载地址

https://download.csdn.net/download/dsn727455218/10539629

在这里就不跟大家说废话,我们实际操作一番。

使用工具:

eclipse 版本随意

jdk 环境

mysql 数据库

这个工具的安装使用我就不给大家介绍,相信你们都能完成。

SpringBoot项目创建的方式:

1.访问 //start.spring.io/ 

这个是最为简单的 输入项目名,包名,以及项目类型后,版本现在基本都是2.0+,下载导入到开发工具即可

2.Spring Boot CLI  cmd命令操作

下载安装地址://docs.spring.io/spring-boot/docs/current/reference/html/getting-started-installing-spring-boot.html 

下载安装配置环境我就不多做介绍,很简单的操作这不是我介绍的重点

3.利用eclipse来创建SpringBoot 这才是我介绍的重点

首先我们需要在eclipse上面集成STS,至于这是什么,自己可以去Sping的官网看介绍。

eclipse安装:

 

Help -> Eclipse Marketplace…
Search或选择“Popular”标签,选择Spring Tool Suite (STS) for Eclipse插件,安装

网络不好的可以下载有点慢,慢慢等安装。

 

new project ,选择spring -> spring starter project

按自己的信息填写,我这里项目名叫demo1

选择版本和组件

 
我这里选了2.0.3版本,现在基本都是2.0+的版本,选了mysql和web,mybatis,因为是web项目,都会选择web这个选项,其他的可以按自己需要选择,点击 Finish ,就会有一个新项目,不过需要等待几分钟,sts工具会生成spring boot目录的结构及文件

这就是我们最终的结构。

这里需要提示一点如果没有dependencies包,检查一下项目目录下.classpath 里面是否有
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>

没有就加上,重启eclipse即可,其他原因我就不做多的说明,相信你们能够发现。

接下来我们就来创建包

controller :控制层

dao:数据接口

service:实现类

mapper:这里是放dao层的xml文件 也就是mybatis的

entity:实体类

这几个包是做什么的你们应该能开明白

就是这个样子的

pom.xml 配置文件

这里我只是配置一个基础的,如果需要更加详细的配置文件可以参考我的另一篇文章

https://blog.csdn.net/dsn727455218/article/details/81028192

接下来我们就写写代码try-try

首先我们需要先创建一个userinfo表 字段(id,username,userpass,name)

对应的实体类UserInfo

/**
 * @author dsn
 *
 * @version 创建时间:2018年7月5日 上午11:30:00 
 */
package com.bootdemo.entity;
 
/**
 * @author dsn
 * @version 创建时间:2018年7月5日 上午11:30:00
 */
public class UserInfo {
 
    /**
     * @return the id
     */
    public int getId() {
        return id;
    }
 
    /**
     * @param id
     *            the id to set
     */
    public void setId(int id) {
        this.id = id;
    }
 
    /**
     * @return the username
     */
    public String getUsername() {
        return username;
    }
 
    /**
     * @param username
     *            the username to set
     */
    public void setUsername(String username) {
        this.username = username;
    }
 
    /**
     * @return the userpass
     */
    public String getUserpass() {
        return userpass;
    }
 
    /**
     * @param userpass
     *            the userpass to set
     */
    public void setUserpass(String userpass) {
        this.userpass = userpass;
    }
 
    /**
     * @return the name
     */
    public String getName() {
        return name;
    }
 
    /**
     * @param name
     *            the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
 
    private int id;
    private String username;
    private String userpass;
    private String name;
 
}

dao层接口UserInfoMapper 这里我是继承了BaseMapper父类,一些方法是可以共用的

/**
 * @author dsn
 *
 * @version 创建时间:2018年7月5日 上午11:35:10 
 */
package com.bootdemo.dao;
 
import com.bootdemo.entity.UserInfo;
 
/**
 * @author dsn
 * @version 创建时间:2018年7月5日 上午11:35:10
 */
public interface UserInfoMapper extends BaseMapper<UserInfo> {
    //添加单个对象
    //    public int insert(User entity);
}

BaseMapper

package com.bootdemo.dao;
 
import java.util.List;
 
import org.apache.ibatis.annotations.Param;
 
public interface BaseMapper<T> {
    //添加单个对象
    public int insert(T entity);
 
    //修改单个对象
    public int update(T entity);
 
    //删除单个对象
    public int delete(T entity);
 
    public int deletebyname(T entity);
 
    //查询单个对象
    public T select(T entity);
 
    //查询多个对象
    public List<T> query();
 
    //根据分页查询多个对象
    public List<T> selectbypage(@Param(value = "pageSize") int pageSize, @Param(value = "currentPage") int currentPage);
 
    //根据搜索条件查询
    public List<T> searchbytj(@Param(value = "st") String st, @Param(value = "et") String et,
            @Param(value = "con") String con);
 
    //查询总条数
    public int selectCount();
}

service层UserInfoService 同样的我继承了BaseService

/**
 * @author dsn
 *
 * @version 创建时间:2018年7月5日 上午11:35:36 
 */
package com.bootdemo.service;
 
import com.bootdemo.entity.UserInfo;
 
/**
 * @author dsn
 * @version 创建时间:2018年7月5日 上午11:35:36
 */
public interface UserInfoService extends BaseService<UserInfo> {
 
}

BaseService

package com.bootdemo.service;
 
import java.util.List;
 
import org.apache.ibatis.annotations.Param;
 
public interface BaseService<T> {
    // 添加单个对象
    public int insert(T entity) throws Exception;
 
    // 修改单个对象
    public int update(T entity) throws Exception;
 
    // 删除单个对象
    public int delete(T entity) throws Exception;
 
    public int deletebyname(T entity);
 
    // 查询单个对象
    public T select(T entity);
 
    //查询多个对象
    public List<T> query();
 
    //分页查询多个对象
    public List<T> selectbypage(@Param(value = "pageSize") int pageSize, @Param(value = "currentPage") int currentPage);
 
    //根据搜索条件查询
    public List<T> searchbytj(@Param(value = "st") String st, @Param(value = "et") String et,
            @Param(value = "con") String con);
 
    //查询总条??
    public int selectCount();
}

mapper文件UserInfoMapper.xml 这是mybatis的sql

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "//mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.bootdemo.dao.UserInfoMapper" >
  <resultMap id="userResultMap" type="com.bootdemo.entity.UserInfo" >
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="name" property="name" jdbcType="VARCHAR" />
    <result column="username" property="username" jdbcType="VARCHAR" />
    <result column="userpass" property="userpass" jdbcType="VARCHAR" />
  </resultMap>
  <select id="selectList" parameterType="UserInfo" resultMap="userResultMap">
      select
    id,username,userpass,name
    from userinfo 
    <where>
        disable='1' 
        <if test="key!=null">
            and (
            username = #{key,jdbcType=VARCHAR}
                or
            name = #{key,jdbcType=VARCHAR}
            )
        </if>
    </where>
  </select>
  <insert id="insert" parameterType="UserInfo" 
        useGeneratedKeys="true" keyProperty="id"> 
        insert into userinfo(name,username,userpass)  
             values(#{name},#{username},#{userpass})  
  </insert>
</mapper>

controller层UserInfoController

/**
 * @author dsn
 *
 * @version 创建时间:2018年7月12日 下午2:04:58 
 */
package com.bootdemo.controller;
 
import javax.annotation.Resource;
 
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.bootdemo.entity.UserInfo;
import com.bootdemo.service.UserInfoService;
 
/**
 * @author dsn
 * @version 创建时间:2018年7月12日 下午2:04:58
 */
@RestController
@RequestMapping("user")
public class UserInfoController {
 
    @Resource
    public UserInfoService userinfoService;
 
    @RequestMapping("/add.do")
    @ResponseBody
    public String addUser(UserInfo user, String msg) {
 
        System.out.println(user.getUsername());
 
        try {
            int insert = userinfoService.insert(user);
            if (insert == 1) {
                msg = "插入成功";
            } else {
                msg = "插入成功";
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return msg;
 
    }
}

需要注意的是我们需要在DemoApplication里面添加

扫描映射文件不然启动项目会报错的

同样也可以再mapper接口类里面加@Mapper注解,两者皆可

我们只需要运行DemoApplication文件即可。

成功界面,我们会看到Spring大大的logo

平常我们web项目都是在tomcat等容器里面启动,这里为什么不需要呢,是SpringBoot已经集成了tomcat,所以不需要我们在配置了。

如果有的码友需要看注解的源码那么打开dependencies

一些jdbc等等常用的配置文件信息都可以查看的。

这里我给大家提供我创建的demo下载地址

https://download.csdn.net/download/dsn727455218/10539629

 

如有需要可以加我Q群【308742428】大家一起讨论技术。

后面会不定时为大家更新文章,敬请期待。

 

喜欢的朋友可以关注下,粉丝也缺。

posted @ 2018-07-13 15:27 dsn727455218 阅读(...) 评论(...) 编辑 收藏
  • 高温“烤验”,品读这些自带凉意的避暑诗词 2019-05-19
  • 2015科教频道中秋晚会《天涯共此时》 2019-05-19
  • 特朗普政府用政治“边缘政策”处理贸易问题是玩火 2019-05-17
  • 高清:探访苟坝见证历史 红军在此留下珍贵遗物 2019-05-15
  • 交通小事故,几分钟就能处理完 2019-05-15
  • 在现时代,无论中国还是西方发达国家都是社会财富公有制和私有制并存的社会,由于仍旧存在社会财富私有制,所以必然存在贫富差别,离开私有制来谈“贫”和“富”... 2019-05-15
  • 【学习时刻·经济实说②】管清友:中央经济工作会议的十大亮点 2019-05-15
  • 绿染江源,千湖归来——三江源生态保护建设取得阶段性成效 2019-05-13
  • 把握和传承好“变则通”思想(大家手笔) 2019-05-13
  • 5月份70个大中城市商品住宅销售情况:一线城市商品房价格同比持续下降 2019-05-08
  • 官方:装备管理失职 恒大俱乐部总经理等人遭处罚 2019-05-01
  • 中共一大代表中最早辞世的王尽美:3首小诗与27年人生 2019-04-29
  • 不管怎么修饰辞藻,只要放弃革命,就是苏联的结果,还用证明吗? 2019-04-27
  • 新和县:12333为参保群众提供咨询便利 2019-04-22
  • 秋冬进补“小人参” 称霸国人餐桌3000年 2019-04-22
  • 231| 949| 842| 392| 868| 1| 807| 103| 726| 433|