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

xiaoxiao2021-02-27  479

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=true spring.datasource.username=root spring.datasource.password=root spring.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 @Mapper public 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调用映射器 @Service public 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就讲解完啦。

转载请注明原文地址: https://www.6miu.com/read-718.html

最新回复(0)