Spring Boot搭建spring+springMVC+Mybatis简单Demo

来源:互联网 发布:python turtle 坐标 编辑:程序博客网 时间:2024/06/16 07:53

Spring Boot搭建spring+springMVC+Mybatis简单Demo

本篇博客主要讲述如何利用Spring Boot框架快速搭建spring+springMVC+Mybatis简单Demo。网上关于这块的demo,blog都很多,比较杂乱。于是就准备自己亲自踩下坑了。

使用Spring Initialzr

利用Spring Initialzr引导程序快速搭建一个Maven项目
官方地址:http://start.spring.io/(貌似要翻墙…)
这里写图片描述
把Group、Artifact还有我们需要的依赖填好,就可以导出我们需要的项目了。

pom.xml

导出来的Demo中的pom.xml长这个样子:

<?xml version="1.0" encoding="UTF-8"?><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.example</groupId>    <artifactId>demo</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>jar</packaging>    <name>demo</name>    <description>Demo project for Spring Boot</description>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.3.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.3.0</version>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</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>        <finalName>cett</finalName>    <resources>      <resource>        <directory>src/main/java</directory>        <includes>          <include>**/*.xml</include>        </includes>        <filtering>false</filtering>      </resource>      <resource>        <directory>src/main/resources</directory>        <includes>          <include>**/*.*</include>        </includes>        <filtering>false</filtering>      </resource>    </resources>    </build></project>

配置mysql连接配置

application.properties中完成相关配置

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/cett?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=truespring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver=com.mysql.jdbc.Driver

使用Mybatis

  • 在Mysql中创建User表,包含id(VARCHAR(40))、name(VARCHAR(255))。同时,创建映射实体User
public class User {    public User(){}    private String id;    private String name;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}
  • 创建User映射的操作UserMapper
@Repository@Mapperpublic interface UserMapper {    User findUserById(@Param("id") String id);    List<User> findAllUser();    int saveUser(User user);    @Delete("delete from t_account where c_id = #{id}")    void deleteUserById(@Param("id") String id);    void updateUser(User user);}

一定要加上@Repository这个注解,不然会报错。
配置sql语句有两种方式:注解和xml文件。xml文件要与映射器名字相同。

  • 在相同目录下创建UserMapper.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.csdc.cett.mapper.UserMapper">    <resultMap id="userInfo" type="com.csdc.cett.model.entity.User">        <id property="id" column="c_id"/>        <result property="name" column="c_name"/>    </resultMap>    <select id="findUserById" resultMap="userInfo"  parameterType="java.lang.String">        SELECT * FROM t_user WHERE c_id = #{id}    </select>    <select id="findAllUser" resultMap="userInfo">        SELECT * FROM t_user WHERE 1 = 1    </select>    <insert id="saveUser" parameterType="com.csdc.cett.model.entity.User">    <--生成主键id值-->        <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.String">            SELECT UUID()        </selectKey>        insert into t_user(c_id, c_name) values (#{id}, #{name})    </insert>    <update id="updateUser">        UPDATE t_user SET c_name = #{name} WHERE c_id = #{id}    </update></mapper>
  • 创建Spring Boot主类
@SpringBootApplication@MapperScan("com.csdc.cett.mapper")public class CettApplication extends SpringBootServletInitializer {    public static void main(String[] args) throws Exception {        SpringApplication.run(CettApplication.class, args);    }}

@MapperScan("com.csdc.cett.mapper")这个注解是用来告诉Mybatis 映射文件的路径,不然在Service层使用@Autowire注解调用的时候会报错。

  • Service调用映射器
@Servicepublic class UserService implements Serializable{    @Autowired    private UserMapper userMapper;    //保存账号    @Transactional(isolation = Isolation.READ_COMMITTED)    public int saveUser(User user){        return userMapper.saveUser(user);    }    //通过id获取账号    @Transactional(isolation = Isolation.READ_COMMITTED)    public User findUserById(String id){        return userMapper.findUserById(id);    }    //删除账号    @Transactional(isolation = Isolation.READ_COMMITTED)    public void deleteUserById(String id){        userMapper.deleteUserById(id);    }    //更新账号    @Transactional(isolation = Isolation.READ_COMMITTED)    public void updateUser(User user){        userMapper.updateUser(user);    }    public List<User> getAllUsers(){        return userMapper.findAllUser();    }}

Note

本人用的是IDEA,如果把映射器的xml文件放在java包下,IDEA是不会把它加载成资源文件的。所以要在pom.xml文件里加入以下代码:

    <resources>      <resource>        <directory>src/main/java</directory>        <includes>          <include>**/*.xml</include>        </includes>        <filtering>false</filtering>      </resource>      <resource>        <directory>src/main/resources</directory>        <includes>          <include>**/*.*</include>        </includes>        <filtering>false</filtering>      </resource>    </resources>

至此,用Spring Boot搭建spring+springMVC+Mybatis简单Demo就讲解完啦。

2 0