关闭

项目结构【springboot mybatis学习与开发(一)】

标签: springbootmybatis
1219人阅读 评论(9) 收藏 举报
分类:

学生党,一直在学习关于java web开发的知识,了解了spring,mybatis的相关知识后,对Web开发产生了浓厚的兴趣,最近又了解spring boot的相关知识,于是自我尝试着使用spring boot来构建项目。还请各位前辈指点和批评。文章内容大部分是自己学习所得,如果有侵权的内容,请指出,联系我,我会第一时间修改或删除,深感抱歉。

1、开发前准备

1.1、工具

STS(Spring Tool Suite),这是一个专门用来开发spring项目的工具,操作和Eclipse完全一样,特别方便使用,下载地址http://spring.io/tools/sts/all/

1.2、数据库

MySql,以及数据库管理软件 Navicat,主要是方便使用。

2、新建项目

使用STS,新建Spring Starter Project,选择让maven输入group,artifact,选择mysql,mybatis,thymeleaf模块,自动生成项目结构。

2.1、pom.xml内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.junjun.myblog</groupId>
    <artifactId>myblog</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>myblog</name>
    <description>myblog Spring Boot Project</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

3、模块步骤

3.1、用户表t_user

四个字段,最基本的用户表

create table t_user(
    id int primary key auto_increment,-- 主键自动增长
    username varchar(20) not null unique key,  -- 用户名非空唯一
    password varchar(20) not null,-- 密码非空
    email varchar(50)
)
insert into t_user(username,password,email)values
('yuzhijun','123456','1273365548@qq.com')

3.2、application.properties

这是springboot的全局配置文件,在此设置数据库连接参数

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/##
spring.datasource.username=##
spring.datasource.password=##

3.3、POJO

建立与数据库字段对应的User类,放入domain包中

public class User {

    private int id;
    private String username;
    private String password;
    private String email;

    public User() {
        super();
    }
    //省略getter,setter...
}

3.4、Dao接口

建立dao包,以及UserDao接口,里面暂时只定义一个方法,selectAll

public interface UserDao {

    /**
     * 查询所有的用户
     * @return 用户列表
     */
    List<User> selectAll();

}

3.5、Mapper映射

映射方法,mybatis官方推荐使用基于xml配置的方式,也可以用注解,我选择使用xml方式。

3.5.1、UserMapper.xml

在src/main/resources下建立mapper文件夹,新建UserMapper.xml

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.junjun.myblog.dao.UserDao">

    <select id="selectAll" resultType="User">
        select * from t_user
    </select>

</mapper>

一定要注意namespace对应Dao接口,select中的id对应接口方法

3.5.2、配置映射文件

在application.properties文件中加入如下的配置

mybatis.mapper-locations=classpath:/mapper/*Mapper.xml
mybatis.type-aliases-package=com.junjun.myblog.domain

扫描Mapper文件路径,以及指定类型参数别名所在包,这样在resultType中直接写User即可,否则需要写全限定名称,即com.junjun.myblog.domain.User。同时在boot入口类MyblogApplication中加入注解MapperScan,扫描Dao中的接口。

@MapperScan("com.junjun.myblog.dao")

3.6、初步测试

在src/test/java中,有测试类MyblogApplicationTests,在这里我们来测试dao操作是否正确。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MyblogApplication.class)
@WebAppConfiguration
public class MyblogApplicationTests {

    @Autowired
    UserDao userdao;

    @Test
    public void contextLoads() {
        List<User> users = userdao.selectAll();
        System.out.println(users);

    }
}

直接注入UserDao即可,测试环境已经被boot自动配置完毕,右键contextLoads方法,选择run as Junit test即可,查看junit显示绿条,console结果如下:

显示已经输出数据库中的数据,完毕

4、总结

4.1、项目结构

4.2、未完成部分

根据MVC开发模式,这只是完成了M层中的一部分,即dao,还有service未完成,另外控制层和视图层还未实现,我会在下一篇博客中完成。

3
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15817次
    • 积分:297
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:24条
    文章分类
    文章存档
    最新评论