1 必要安装
jdk1.8、maven、idea、mysql。
2 在idea中新建maven项目。添加相关的依赖。依赖如下:
<?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>cn.ancony</groupId>
<artifactId>springboot0501</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.ibeetl</groupId>
<artifactId>beetl-framework-starter</artifactId>
<version>1.1.40.RELEASE</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>6.0.5</version>
</dependency>
</dependencies>
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3 resource根目录下面建立application.properties文件。内容如下:
#mysql数据库连接配置
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/orm?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#beetelsql的配置
beetlsql.basePackage=cn.ancony.springboot0501.dao
beetl-beetlsql.dev=true
#热部署的配置
spring.devtools.restart.enabled=true
4 编写启动的应用程序。
package cn.ancony.springboot0501;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class,args);
}
}
5 编写实体类User,对应数据库的User表。
package cn.ancony.springboot0501.entity;
import java.io.Serializable;
import java.util.Date;
public class User implements Serializable {
private Integer id;
private Integer departmentId;
private String name;
private Date createTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getDepartmentId() {
return departmentId;
}
public void setDepartmentId(Integer departmentId) {
this.departmentId = departmentId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
6 在mysql中建立数据库orm,将相关数据导入mysql。导入的文件为db.sql。文本的内容如下:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '名称',
`department_id` int(11) DEFAULT NULL,
`create_time` date DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `department` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(45) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO `user` VALUES (1, 'helo', 1, '2017-4-21 11:52:41');
INSERT INTO `department` VALUES ('1', '研发部门');
7 创建userDao接口。
package cn.ancony.springboot0501.dao;
import cn.ancony.springboot0501.entity.User;
import org.beetl.sql.core.annotatoin.SqlResource;
import org.beetl.sql.core.mapper.BaseMapper;
import java.util.List;
@SqlResource("www.user")
public interface UserDao extends BaseMapper<User> {
List<User> selectSample(User query);
}
8 在resources文件夹下面创建www文件夹,在www文件夹下面创建user.md文件,文件内容如下:
selectSample
===
* 一个简单的查询例子
select * from user where 1=1
9 创建数据源的配置。
package cn.ancony.springboot0501.config;
import com.zaxxer.hikari.HikariDataSource;
import org.beetl.sql.ext.spring4.BeetlSqlDataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import javax.sql.DataSource;
@Configuration
public class DataSourceConfig {
@Bean(name = "dataSource")
public DataSource dataSource(Environment env) {
HikariDataSource ds = new HikariDataSource();
ds.setJdbcUrl(env.getProperty("spring.datasource.url"));
ds.setUsername(env.getProperty("spring.datasource.username"));
ds.setPassword(env.getProperty("spring.datasource.password"));
ds.setDriverClassName(env.getProperty("spring.datasource.driver-class-name"));
return ds;
}
@Bean
public BeetlSqlDataSource beetlSqlDataSource(@Qualifier("dataSource") DataSource dataSource) {
BeetlSqlDataSource source = new BeetlSqlDataSource();
source.setMasterSource(dataSource);
return source;
}
}
10 创建提供服务的接口。
package cn.ancony.springboot0501.service;
import cn.ancony.springboot0501.entity.User;
import java.util.List;
public interface UserService {
User getUserById(Integer id);
List<User> select(String name);
}
11 创建服务接口的实现类
package cn.ancony.springboot0501.service.impl;
import cn.ancony.springboot0501.dao.UserDao;
import cn.ancony.springboot0501.entity.User;
import cn.ancony.springboot0501.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserDao userDao;
@Override
public User getUserById(Integer id) {
return userDao.unique(id);
}
@Override
public List<User> select(String name) {
User paras = new User();
paras.setName(name);
return userDao.selectSample(paras);
}
}
12 创建controller类。
package cn.ancony.springboot0501.controller;
import cn.ancony.springboot0501.entity.User;
import cn.ancony.springboot0501.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
public class UserController {
@Autowired
UserService userService;
@RequestMapping("/user/{id}")
public @ResponseBody
User say(@PathVariable Integer id) {
User user = userService.getUserById(id);
return user;
}
@RequestMapping("/user/query/{name}")
public @ResponseBody
List<User> say(@PathVariable String name) {
List<User> users = userService.select(name);
return users;
}
}
13 测试。
启动应用程序。因为数据库里面只有一条数据,所以访问http://localhost:8080/user/1。
访问结果:
{"id":1,"departmentId":1,"name":"helo","createTime":"2017-04-20T16:00:00.000+0000"}
访问http://localhost:8080/user/query/helo。
访问结果:
[{"id":1,"departmentId":1,"name":"helo","createTime":"2017-04-20T16:00:00.000+0000"}]