扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
今天就跟大家聊聊有关在SpringBoot中使用MyBatis如何实现一个应用访问功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
10年积累的成都网站制作、做网站、外贸营销网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有万秀免费网站建设让你可以放心的选择与我们合作。
一,Pom文件
<?xml version="1.0" encoding="UTF-8"?>4.0.0 com.example example 1.0-SNAPSHOT jar //这里设置为jar,因为我们会使用jar包部署运行org.springframework.boot spring-boot-starter-parent 1.4.2.RELEASE org.springframework.boot spring-boot-starter-web org.mybatis.spring.boot mybatis-spring-boot-starter //Mybatis的jar包1.1.1 org.codehaus.jackson jackson-mapper-asl //json数据格式和对象的转换jar包1.9.8 jar compile com.h3database //内嵌数据库h3 1.3.156 org.projectlombok lombok //lombok插件,方便model对象的处理1.16.2 mysql mysql-connector-java //mysql驱动5.1.18 example //打包后的jar包名称org.springframework.boot spring-boot-maven-plugin //必须要的SpringBoot继承的maven插件,缺少了无法打包jar。repackage maven-resources-plugin //因为jar包中可能存在很多其他的配置资源,例如mapper文件所以打包为jar包需要将其加入,所以需要此资源打包插件2.5 copy-xmls process-sources copy-resources ${basedir}/target/classes ${basedir}/src/main/java **/*.xml //打包包含相应的资源文件 src/main/resources **/*.properties **/*.xml **/*.tld false src/main/java **/*.properties **/*.xml **/*.tld false //设置仓库 spring-milestone http://repo.spring.io/libs-release
好了简单的SpringBoot整合Mybatis框架的基础环境已经搭建完成了,一个Pom文件搞定,接下来我们配置我们的配置文件。
二,配置文件
我们写在resources目录下的application.properties文件中。
spring.datasource.url=jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=UTF8 spring.datasource.username=用户名 spring.datasource.password=用户密码 spring.datasource.driver-class-name=com.mysql.jdbc.Driver mybatis.mapper-locations=classpath*:/mapper/*Mapper.xml //mapper文件的路径 mybatis.type-aliases-package=map.model //mapper文件中的前缀 server.port=监听端口号,不设置默认8080
ok,现在环境已经彻底搭建完成我们可以编写自己的代码了。
三,编写代码
Model对象
@Data//@Data lombok插件的注解自动添加get set方法 public class ExampleModel { private Long id; private String name; } //一个简单的model对象
Dao层
这里需要注意的是,推荐公司使用的一种做法,因为很多的Dao对象都是简单的增删改查功能,所以我们抽象出一个最基本的父类,这个父类实现最基本的增删改查功能,每个新的Dao对象可以继承这个类,然后自定义实现特殊的数据库访问功能,我们可以把这个基本的父类成为MyBatisHelper并用上泛型,具体实现如下:
@Data public class MybatisHelper{ @Autowired private SqlSession sqlSession; //这里自动注入mybatis的SqlSession private String nameSpace; public MybatisHelper(String nameSpace) { this.nameSpace = nameSpace; } public String getSqlName(String sqlName) { return nameSpace +"."+ sqlName; } public Integer create(String name, T obj) { return sqlSession.insert(getSqlName(name), obj); } public Boolean update(String name, T obj) { return Boolean.valueOf(sqlSession.update(getSqlName(name), obj) > 0); } public T findById(String name, Long id) { return sqlSession.selectOne(getSqlName(name), id); } public Boolean delete(String name, Long id) { return Boolean.valueOf(sqlSession.delete(getSqlName(name), id) > 0); } public List findAll(String name){return sqlSession.selectList(getSqlName(name));} }
需要说明的是因为sqlSession的执行回去寻找相应的mapper文件,所以namespace+方法名称很重要,这个一定要注意不要弄错了,弄错了就会无法正确调用。
然后我们的Dao层实现继承此类
@Component public class ExampleModelDao extends MybatisHelper{ public ExampleModelDao() { super("example.dao."); } //todo 自定义操作 public Integer findDataCounts(){ return getSqlSession().selectOne(getSqlName("findDataCounts"));//他会寻找example.dao.findDataCounts对应的方法执行 } }
这样是不是很简单,也能大量复用很省事,关于service层我就不写了很简单。
四,mapper文件
<?xml version="1.0" encoding="UTF-8" ?>//这里很重要就是前缀 //自定义resultMap对象,利于对象的操作 //数据表标签 example_data //除了主键以为的字段集合标签 name //插入属性的字段集合标签 id,name //插入输入进来的字段值标签 #{name} INSERT INTO //一看就明白了创建一个对象 //自定义的操作( ) VALUES ( )
ok,对应的mapper文件已经有了,我们就可以调用了,调用很简单一般写在service层中调用,下面我们去编写对应的controller。
五,控制器编写
推荐使用restful风格,因此我们控制器编写代码如下:
@RestController @CrossOrigin //这个是ajax跨域请求允许的注解,不用可以去掉 public class DigMapDataController { @Autowired private ExampleService exampleService;//service对象 @RequestMapping(value = "/create", method = RequestMethod.POST) public String create(@requestBody ExampleModel exampleModel) { return String.valueOf(exampleService.create(exampleModel)); } //@requestBody注解会接受前端的JSON数据并配合jackson自动转换为相应的对象 @RequestMapping(value = "/find/count",method = RequestMethod.GET) public Integer findCounts() { return exampleService.findDataCounts(); } }
一个简单的控制器就编写完成了,这个时候我们可以启动应用进行数据访问了,是不是很简单。
六,应用的部署
直接在终端中使用命令,将应用打包为jar文件
1.maven [clean] package ;打包后的文件在target目录下
2.java -jar example.jar ; 运行我们的jar包程序
看完上述内容,你们对在SpringBoot中使用MyBatis如何实现一个应用访问功能有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流