SpringBoot入门 - MyBatis集成实现简单的增删改查

版权声明:《==study hard and make progress every day==》 https://blog.csdn.net/qq_38225558/article/details/85781339

1.新建maven项目:

2.导入依赖:

<!-- web支持: 1、web mvc; 2、restful; 3、jackjson支持; 4、aop ... -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!-- servlet依赖 -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <scope>provided</scope>
</dependency>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

<!-- tomcat 的支持. -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

<!-- FreeeMarker模板引擎所需依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

<!-- springboot测试 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
</dependency>

<!-- mysql数据库驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- jdbc依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<!-- spring-boot mybatis依赖:注意:不要使用1.0.0版本,因为还不支持拦截器插件,我这里 1.1.1 目前可用 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
</dependency>

<!-- 分页插件 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>4.1.0</version>
</dependency>

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

温馨小提示:由于我这里是新建的module,因此我的springboot依赖放在了外面导入,你们根据自己的项目来就好

<!-- dependencyManagement-解决单继承问题 -->
<dependencyManagement>
    <dependencies>
        <!--springboot版本管理--><!-- SpringBoot所需依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.0.5.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

3.mysql连接配置

4.MyBatis相关配置  --  这里是PageHelper分页插件

@Configuration //相当于我们建了applicationContext-xxx.xml <beans></beans>
public class MyBatisConfiguration {
    @Bean
    public PageHelper pageHelper() {
        System.out.println("MyBatisConfiguration.pageHelper()");
        PageHelper pageHelper = new PageHelper();
        Properties p = new Properties();
        p.setProperty("offsetAsPageNum", "true");
        p.setProperty("rowBoundsWithCount", "true");
        p.setProperty("reasonable", "true");
        pageHelper.setProperties(p);
        return pageHelper;
    }
}

5.编写启动类

@SpringBootApplication
//@MapperScan("com.zhengqing.springboot.*.mapper") //FIXME : * 用在多模块项目
@MapperScan("com.zhengqing.springboot.mapper")  //@MapperScan:扫描该包下的接口
public class WebApplication {
    public static void main(String[] args) {
        SpringApplication.run(WebApplication.class);
    }
}

6.编写代码  domain实体类,query层,service层这些根据自己的业务来,就不多说了,

主要说说mapper映射   分xml版注解版 如下

public interface UserMapper {
    void save(User user); //TODO xml版
    List<User> queryPage(UserQuery query);

    // FIXME 注解版  【注意:如果使用这个  就不写beanMapper.xml相关代码!!】
  /*  @Insert("insert into t_user(name) values(#{name})")
    @Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")
    void save(User user);*/
}

beanMapper.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.zhengqing.springboot.mapper.UserMapper">
    <!-- useGeneratedKeys:true标识返回主键 -->
    <insert id="save" parameterType="User" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
        insert into t_user(name) values(#{name})
    </insert>

    <select id="queryPage" resultType="User"  parameterType="UserQuery">
        select  * from t_user
    </select>
</mapper>

温馨小提示: 写beanMapper.xml的时候注意分层结构要对应 不然最后接口和映射文件编译不到同一个路径下

最后就可以来个简单的测试了~

@RunWith(SpringRunner.class)
//标识这是一个spring测试,指定入口【从哪儿加载spring配置文件】和应用类型,它就会扫描入口类子子孙孙包的bean
@SpringBootTest(classes = WebApplication.class)
public class IUserServiceTest {

    @Autowired
    private IUserService userService;
 
    @Test  //MyBatis的crud ...
    public void test01() throws Exception{
        User user = new User("测试数据-是否可以返回主键");
        System.out.println(user);
        userService.save(user);
        System.out.println(user);
    }

    @Test //分页
    public void test02() throws Exception{
        //com.github.pagehelper.Page --->PageList(currentPage,pageSizs,totalRecords,totalpages,Data)
        Page<User> list = (Page) userService.queryPage(new UserQuery());
        System.out.println(list.getClass());
        System.out.println("总数据条数:"+list.getTotal());
        System.out.println("总页数:"+list.getPages());
        System.out.println("当前页:"+list.getPageNum());
        System.out.println("每一页数据条数:"+list.getPageSize());
        for (User user : list) {
            System.out.println(user);
        }
    }

}

最后附上源码:https://pan.baidu.com/s/1ZrdrzhEXE0wiE_5nTOUDfg

猜你喜欢

转载自blog.csdn.net/qq_38225558/article/details/85781339