使用intelliJ创建 spring boot + gradle + mybatis站点

 

Spring boot作为快速入门是不错的选择,现在似乎没有看到大家写过spring boot + gradle + mybatis在intellij下的入门文章,碰巧做.Net的同学问到,我想我也可以写这样一篇。
入门Java的人最大的问题是步骤繁琐,不知道如何开始,之前我也建议过我的一个小弟用BlueJ去学Java,可是这个东西学得他很迷茫,根本无法获得成就感,不知道能搞出什么有意思的东西,那我们就来点正式的吧,看看怎么从零开始建一个你自己的Java网站。

软件安装

作为入门版,当然我们要从软件安装开始咯。
要安装的软件有

JDK安装很简单,下载最新版,按提示安装即可。
IntelliJ IDEA的安装我想也是不必说了,如果这个软件安装也不会,那么学编程的路,可路漫漫其修远兮了。
Gradle也是需要安装的,在windows下,可以用scoop来安装。
要安装Scoop,打开windows的PowerShell,输入

set-executionpolicy remotesigned -s cu

然后使用这条命令安装Scoop:

iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

详细可以参考:http://scoop.sh/

Mac下面,可以使用Homebrew安装,只需要一条命令:

brew update && brew install gradle

创建项目

打开intelliJ, 注意,这软件需要注册,但现在是有在线激活的服务器的,反正,你自己可以想办法的 。
点击Create New Project

选择Spring Initializr

给你的项目填写一点信息,Group和Artifact你随便填(填的格式不对的话,IntelliJ会提示你的),Type选Gradle Project,Packaging选War,然后点下一步。

分别在Web下面选择Web,Template下选择Freemarker,SQL下面选择MyBatis,选择后的依赖会出现在最右边,如图所示,我就选择了这三个:

然后点击下一步,就会出现确认的画面,直接点击Finish按钮。

在接下来这个画面里,需要gradle的路径,可以用这样的方式把它找出来。
新建一个文件,叫build.gradle,写入如下的内容

task getHomeDir << {
println gradle.gradleHomeDir
}

然后运行

gradle getHomeDir

最后,使用这条命令就能获得路径:

gradle getHomeDir

如下图:

得到了gradle路径,填入到intelliJ IDEA中。

其余的设置跟我一样就行,然后点击OK。
这时候,你会进到下一个画面,这是左上方显示的内容:

这时候,你需要做的是耐心的等待,也许你还需要一个VPN才能完成下载依赖,这是你的第一个挑战,这是网络的原因,我很难帮到你。
不过你可以改改build.gradle文件来加速maven依赖的下载,改成这样:

这部分的下载速度能得到很大的提高,还是得感谢马首富啊。

总之,所有的内容加载完成后,你会看到这样的界面:

你看到的画面可能跟我的不一样,因为我多开了一些窗口,但项目的结构就是这样的。

数据库的创建

在你的mysql里,新加一个数据库,就叫 life_master吧,然后加入这样一张表:

create table life_master.users
(
id int(10) auto_increment
primary key,
name varchar(45) not null,
password varchar(20) not null
);

再加入两条数据:

INSERT INTO users VALUES (1,'Tom','no_pass');
INSERT INTO users VALUES (2,'Jerry','no_pass');

双击打开application.properties,加入下面内容:

spring.datasource.url=jdbc:mysql://192.168.88.3:3306/life_master
spring.datasource.username=root
spring.datasource.password=p@ssw0rd
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

以上内容根据你的实际情况修改,我的mysql放在虚拟机的192.168.88.3上面,用户名和密码都以你的实际情况填写。

开始编码

好了,你是否开始在疑惑,你经历了重重困难,现在弄了个什么东西出来?
别急,我们先加点代码进去。
在com.onefew.springboot上右键,选择New->Java Class

然后给他取个名字,比如叫HomeController,核心内容:

@Controller
@RequestMapping("/")
public class HomeController { @Autowired
UserDao userDao; @GetMapping("/")
public String index(Model model){
model.addAttribute("name","world");
return "home";
} @GetMapping("/{id}")
public String findById(Model model, @PathVariable(value = "id") int id){
User u = userDao.findById(id);
model.addAttribute("name",u.getName());
return "home";
}
}

新增User的Entity,名字就叫User,内容:

public class User {
private int id;
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}

新建UserDao的接口,内容:

@Mapper
public interface UserDao {
@Select("SELECT * FROM users where id = #{id}")
@Results({
@Result(property = "id", column = "id"),
@Result(property = "name", column = "name"),
@Result(property = "password", column = "password")
})
User findById(@Param("id") int id);
}

在templates目录下面,右键新建文件home.ftl,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh">
<head>
<title>我的第一个Spring Boot 程序</title>
</head>
<body>
Hello ${name}
</body>
</html>

修改一下build.gradle,强dependencies下面,增加

compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6'

测试运行

测试之前,先暂时注释掉build.gradle内的这个内容:

providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')

在右上角点小箭头,点edit configurations

新增Spring boot,如图所示

如果一切顺利的话,你点击右上部的绿色小箭头,就能运行起来了
窗口内会输出spring相关的信息

这时候,打开浏览器,输出 http://127.0.0.1:8080
忙活了半天,现在是见证奇迹的时候到了:

http://127.0.0.1:8080看到 hello world,这是我们HomeController中index内的内容。
http://127.0.0.1:8080/1 和http://127.0.0.1:8080/2 是读取到我们mysql中保存的人物的名字。

到这里,编码内容也基本告一段落。

tomcat部署

之前提到过tomcat,但这个是可选的,如果你安装了tomcat,那如何在tomcat里调试呢?
点击菜单里的Run->EditConfigurations,在弹出的菜单的左上角点击加号,然后选择tomcat server->local,做如下图中的配置:

注意deployment标签内的设置

完成以后,就可以从tomcat中调试了。

结语

这是入门篇,用了大量的截图,对初学者还是有一些挑战,但是熟悉以后,这一切都非常的顺理成章。
本篇的内容不但涵盖了建立项目的基础知识,还涉及到了freemarker和mybatis,虽然只是点到即止,但是从这里开始扩展,相信能写出有点成就感的程序来。

本文中涉及到的源码地址:https://github.com/syler/Fun/tree/master/demo-spring-boot-1few


本文地址:http://www.cnblogs.com/asis/p/spring-boot-freemarker-mybatis-for-beginner.html
https://1few.com/spring-boot-freemarker-mybatis-for-beginner/

spring boot + gradle + mybatis的更多相关文章

  1. 使用intelliJ创建 spring boot + gradle + mybatis站点

    Spring boot作为快速入门是不错的选择,现在似乎没有看到大家写过spring boot + gradle + mybatis在intellij下的入门文章,碰巧.Net同事问到,我想我也可以写 ...

  2. Spring Boot 整合 Mybatis 实现 Druid 多数据源详解

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “清醒时做事,糊涂时跑步,大怒时睡觉,独处时思考” 本文提纲一.多数据源的应用场景二.运行 sp ...

  3. Spring Boot整合Mybatis并完成CRUD操作

    MyBatis 是一款优秀的持久层框架,被各大互联网公司使用,本文使用Spring Boot整合Mybatis,并完成CRUD操作. 为什么要使用Mybatis?我们需要掌握Mybatis吗? 说的官 ...

  4. Spring boot整合Mybatis

    时隔两个月的再来写博客的感觉怎么样呢,只能用“棒”来形容了.闲话少说,直接入正题,之前的博客中有说过,将spring与mybatis整个后开发会更爽,基于现在springboot已经成为整个业界开发主 ...

  5. Spring boot教程mybatis访问MySQL的尝试

    Windows 10家庭中文版,Eclipse,Java 1.8,spring boot 2.1.0,mybatis-spring-boot-starter 1.3.2,com.github.page ...

  6. spring boot 实现mybatis拦截器

    spring boot 实现mybatis拦截器 项目是个报表系统,服务端是简单的Java web架构,直接在请求参数里面加了个query id参数,就是mybatis mapper的query id ...

  7. spring boot 整合 mybatis 以及原理

    同上一篇文章一样,spring boot 整合 mybatis过程中没有看见SqlSessionFactory,sqlsession(sqlsessionTemplate),就连在spring框架整合 ...

  8. Spring Boot集成MyBatis开发Web项目

    1.Maven构建Spring Boot 创建Maven Web工程,引入spring-boot-starter-parent依赖 <project xmlns="http://mav ...

  9. 详解Spring Boot集成MyBatis的开发流程

    MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集. spring Boot是能支持快速创建Spring应用的Java框 ...

随机推荐

  1. [CSS] Build a Fluid Loading Animation in CSS

    In this lesson, we will create a fluid loading animation using Animations and Transformations in CSS ...

  2. J2SE核心开发实战(一)——认识J2SE

    认识J2SE 一.课程简单介绍 在本章学习開始前,你应该具备一些Java的基础知识. 我们将在本章来认识J2SE,并复习一下前面学过的面向对象的相关知识. 注:全部的蓝色文字都是带超链接的,这些链接是 ...

  3. 关于数据库中的JOIN的用法学习

    下面是例子分析 表A记录如下:  aID aNum  1 a20050111  2 a20050112  3 a20050113  4 a20050114  5 a20050115 表B记录如下:  ...

  4. 关于ES6(ES2015)的知识点详细总结

    ECMAScript6 ECMAScript简称就是ES,你可以把它看成是一套标准,JavaScript就是实施了这套标准的一门语言,现在主流浏览器使用的是ECMAScript5. http://ba ...

  5. C#中对XML的操作

    现在有一个xml文件,名称:BookStore.xml,数据如下: <?xml version="1.0" encoding="gb2312"?>& ...

  6. 【原创】基于pyautogui进行自动化测试

    前期准备: python3.6 pyautogui pywinauto 以下代码实现内容: 1.打开记事本 2.记事本中输入This is a test 3.保存内容 4.退出进程 import py ...

  7. 1.2 Python基础知识 - 字符编码

    计算机中的数据是以二进制方式进行存储的,即只有"0"和"1",二进制是属于数据类型的数据,它只可以和其他进制的数据类型进行转换,但是不能存储其他字符,例如:字母 ...

  8. python 字符串大小写转换(不能使用swapcase()方法)

    python 3字符串大小写转换 要求不能使用swapcase()方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wa ...

  9. Day1:用户交互与格式化输出

    一.用户交互 1.input()方法 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan username = inpu ...

  10. java程序猿经常使用的工具名称--知道中文意思吗

    在学习java的时候常常会碰到一些单词,可是一般的时候也不是非常在意这个单词的意思,而是能够了解到这个工具或者框架能够做什么就能够了.偶尔总结了一下还蛮有意思的.例如以下, 假设有遗漏,各位能够帮忙补 ...