博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot入门及整合mybatis
阅读量:5935 次
发布时间:2019-06-19

本文共 5070 字,大约阅读时间需要 16 分钟。

Spring Boot入门

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置,使用Spring Boot可以大大的提供软件的开发效率。

特点:

  1. 创建独立的Spring应用程序
  2. 嵌入的Tomcat,无需部署WAR文件
  3. 简化Maven配置
  4. 自动配置Spring
  5. 提供生产就绪型功能,如指标,健康检查和外部配置
  6. 绝对没有代码生成和对XML没有要求配置

Spring Boot实例

首先依次选择New->Spring starter project创建spring boot 项目。

这里写图片描述

点击Next,选择spring boot的版本,这里选择1.5.9 版本,选择starter,通过搜索找到web 并勾选,点击完成即可。

这里写图片描述

项目结构说明

创建好的项目,结构如下:

这里写图片描述

  • Src/main/java。编写代码存放的目录,自动生成了程序入口代码 SpringBootDemo1Application.java。
  • Src/main/resources。资源文件存放目录,自动生成了配置文件 application.properties
  • Src/test/java。测试代码存放目录,自动生成了测试代码SpringBootDemo1ApplicationTests.java

pom文件简介

spring boot项目默认使用maven来构建,其中spring boot依赖的部分配置如下:

org.springframework.boot
spring-boot-starter-web
1.5.9.RELEASE

引入web依赖

Web starter依赖引入,会增加web容器、springweb、springmvc、jackson-databind等相关的依赖。

org.springframework.boot
spring-boot-starter-web

它们的依赖层级关系如图:

这里写图片描述

引入测试依赖

org.springframework.boot
spring-boot-starter-test
test

启动程序入口说明

创建SpringBoot项目时,系统会默认生成一个启动程序,该类使用main函数来启动spring boot程序。例如:SpringBootDemoApplication代码

@SpringBootApplicationpublic class SpringBootDemoApplication {    public static void main(String[] args) {        SpringApplication.run(SpringBootDemoApplication.class, args);    }}

增加controller

然后在与SpringBootDemoApplication同级的包下新建一个controller。

public class DemoController {    @RequestMapping("/")    String home() {        return "Hello World!";    }}

启动SpringBootDemoApplication

在SpringBootDemoApplication文件上右键选择run as->Spring Boot App即可启动项目。

这里写图片描述
在浏览器中输入:即可访问。

application.properties

打开项目src目录下的resources文件,会发现一个application.properties文件,该文件是spring boot系统配置文件。例如:

server:  port: 8080  context-path: /  spring:   datasource:      driver-class-name: com.mysql.jdbc.Driver      url: jdbc:mysql://localhost:3306/db_demo      username: root      password: xxxx   jpa:     hibernate.ddl-auto: update     show-sql: true   thymeleaf:    cache: false

整合mybatis

其实使用IDE工具可以直接添加mybatis相关的依赖,此次使用pom文件的方式来实现。打开pom文件,在pom.xml中添加如下依赖:

org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.1
mysql
mysql-connector-java
5.1.40

在application.properties 文件下 添加mysql的连接配置(切记不要在行尾留有空格,否则报com.mysql.jdbc.Driver Class Not Found error,其实只是含有空格导致找不到类)。

然后,在项目的src目录下新建一个User类.

public class User {    private Integer id;    private String name;    private Integer age;    //省略get和set}

添加UserMapper接口:

@Mapperpublic interface UserMapper {    // 通过Parameter新增    @Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")    int insertByParameter(@Param("name") String name, @Param("age") Integer age);        // 通过Map新增    @Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER})")    int insertByMap(Map
map); // 通过Object新增 @Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})") int insertByObject(User user); // Delete By Id @Delete("DELETE FROM user WHERE id =#{id}") void delete(Long id); // Update @Update("UPDATE user SET age=#{age} WHERE name=#{name}") void update(User user); // Find by Parameter @Select("SELECT * FROM USER WHERE NAME = #{name}") User findByName(@Param("name") String name); // 通过@Results,绑定返回值 @Results({ @Result(property = "name", column = "name"), @Result(property = "age", column = "age") }) @Select("SELECT name, age FROM user") List
findAll(); }

最后是协议个测试文件:

@RunWith(SpringRunner.class)@SpringBootTestpublic class SpringbootApplicationTests {    @Autowired    private UserMapper userMapper;    @Test    public void add() throws Exception {        // insert by parameter        userMapper.insertByParameter("zhangShan", 20);                // insert by object        User user = new User();        user.setAge(21);        user.setName("LiSi");        userMapper.insertByObject(user);                // insert by map        Map
map = new HashMap<>(); map.put("name", "huangwu"); map.put("age", 22); userMapper.insertByMap(map); User zhangShan = userMapper.findByName("zhangShan"); Assert.assertEquals(20, zhangShan.getAge().intValue()); User LiSi = userMapper.findByName("LiSi"); Assert.assertEquals(21, LiSi.getAge().intValue()); User huangwu = userMapper.findByName("huangwu"); Assert.assertEquals(22, huangwu.getAge().intValue()); } @Test public void udpate() throws Exception { User user = userMapper.findByName("zhangShan"); user.setAge(50); userMapper.update(user); user = userMapper.findByName("zhangShan"); Assert.assertEquals(50, user.getAge().intValue()); userMapper.delete(user.getId()); } @Test public void findAll() throws Exception { List
users = userMapper.findAll(); Assert.assertNotNull(users); }}
你可能感兴趣的文章
STL练习程序(String...)
查看>>
Boost练习程序(强制转换)
查看>>
敏捷个人:做老师的荣幸
查看>>
C#正则表达式编程(四):正则表达式
查看>>
C# 正则表达式替换制定关键词后面的所有内容
查看>>
vss中项目与服务器断开绑定之后进行重新绑定得方法
查看>>
远瞻新知,触控未来-记WinHEC2008
查看>>
白话/图示 sleep_on/wake_up的执行流程
查看>>
WMI中相关的操作说明execquery 或者是instancesof
查看>>
《数学之美》之悟——学懂数学为何如此重要?
查看>>
.NET基本权限管理框架源代码
查看>>
jQuery选择器总结
查看>>
C#代码中背后进行的值拷贝
查看>>
.NET Core微服务系列基础文章索引(目录导航Final版)
查看>>
半面创新:实践者的创新制胜之道
查看>>
GridView的RowDataBound事件 获取当前行的某个数据列
查看>>
Ogre 2011-11-23
查看>>
redmine-1.2.2安装截图粘贴插件
查看>>
厚积薄发,丰富的公用类库积累,助你高效进行系统开发(10)---各种线程同步的集合类...
查看>>
iOS深浅拷贝
查看>>