上一章我讲述了如何使用Mybatis操作数据库。这一章我讲述如何利用Sptring框架搭建API接口
第一节:封装SqlSessionFactory工具类
在API操作数据库大量调用SqlSessionFactory,因此应将SqlSessionFactory封装成工具类供方法随时调用
在文件结构中的util文件夹下创建一个MybaitisUtil.java文件
文件结构:demo\src\main\java\com\example\demo\util\MybatisUtil.java
package com.example.demo.util;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.InputStream;public class MybatisUtil {private static SqlSessionFactory sqlSessionFactory = null;// 获取sqlSessionFactorystatic {try {String resource = "Mybatis-config.xml";InputStream resourceAsStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);} catch (Exception e) {e.printStackTrace();}}// sqlSession封装public static SqlSession sqlSession() {SqlSession sqlSession = null;if (sqlSessionFactory != null) {sqlSession = sqlSessionFactory.openSession();} else {try {System.out.println("程序错误!sqlSessionFactory数据无效");System.exit(0);} catch (Exception e) {e.printStackTrace();}}return sqlSession;}
}
第二节:封装json实体类
为了返回给前端的数据更加的好看、直观,因此我们可以将数据已json的格式返回给前端。
第一小节:创建APIResult实体类
在文件结构中的entity文件夹下创建一个APIResult文件,数据结构以success、data、message构成
类名 | 数据类型 | 说明 |
---|---|---|
success | boolean | 用于输出程序是否执行成功,输出格式为布尔值。成功为true,失败为false |
data | object | 用于数据获得的数据,如果没有数据就返回null |
message | String | 用于存放输出的信息,如果没有信息就返回null |
文件结构:demo\src\main\java\com\example\demo\entity\APIResult.java
package com.example.demo.entity;import lombok.*;@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
public class APIResult {private Boolean success;private Object data;private String message;
}
第二小节:封装APIResult工具类
现在我们写好了APIResult实体类,我们还要写一个对应的工具类调用,与SqlSessionFactory工具类类似
在文件结构中的util文件夹下创建一个APIResultUtil.java文件
文件结构:demo\src\main\java\com\example\demo\util\APIResultUtil.java
package com.example.demo.util;import com.example.demo.entity.APIResult;public class APIResultUtil {public static APIResult apiResult(Boolean success, String message, Object data) {APIResult apiResult = new APIResult();apiResult.setSuccess(success);apiResult.setMessage(message);apiResult.setData(data);return apiResult;}
}
第三节:编写APi接口方法
现在我们封装的SqlSessionFactory和APIResult工具类已经配置完成了,我们现在就可以写APi接口的方法了。
APi接口调用封装的SqlSessionFactory方法,然后通过SqlSessionFactory执行提前编写好的查询SQL语句,获取成功后以Json输出的格式返回给前端。
在文件结构中的controller文件夹下创建一个UserApi.java文件
文件结构:demo\src\main\java\com\example\demo\controller\UserApi.java
package com.example.demo.controller;import com.example.demo.entity.user;
import com.example.demo.mapper.usermapper;
import com.example.demo.util.APIResultUtil;
import com.example.demo.util.MybatisUtil;
import org.apache.ibatis.session.SqlSession;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping("/api")public class UserApi {@RequestMapping("/GetUserList")public Object GetUserList() {try {SqlSession sqlSession = MybatisUtil.sqlSession();usermapper mapper = sqlSession.getMapper(usermapper.class);List<user> users = mapper.GetUserList();sqlSession.close();if (users != null) {return APIResultUtil.apiResult(true, "获取成功", users);} else {return APIResultUtil.apiResult(true, "无任何用户数据", null);}} catch (Exception e) {System.out.println("程序错误" + e);return APIResultUtil.apiResult(false, "程序错误", null);}}
}
第四节:启动Springboot主启动器
现在APi接口也编写完成了。现在只需要找到DemoApplication.java的启动类就可以将Stringboot跑起来了。
文件结构:demo\src\main\java\com\example\demo\DemoApplication.java
在控制台弹出了这些信息,并且没有结束进程。这表示就成功运行起来了
第五节:测试接口
测试接口我推荐使用ApiPost软件
新建一个接口,在地址栏填入:http://localhost:8080/api/GetUserList
其中的api与GetUsetList都是在UserApi定义的。
下一章讲解APi实现数据库增删改查