SpringBoot+MyBatis简单数据访问应用的实例代码
因为实习用的是MyBatis框架,所以写一篇关于SpringBoot整合MyBatis框架的总结。
一,Pom文件
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.h2database //内嵌数据库h2 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//@Datalombok插件的注解自动添加getset方法 publicclassExampleModel{ privateLongid; privateStringname; } //一个简单的model对象
Dao层
这里需要注意的是,推荐公司使用的一种做法,因为很多的Dao对象都是简单的增删改查功能,所以我们抽象出一个最基本的父类,这个父类实现最基本的增删改查功能,每个新的Dao对象可以继承这个类,然后自定义实现特殊的数据库访问功能,我们可以把这个基本的父类成为MyBatisHelper并用上泛型,具体实现如下:
@Data publicclassMybatisHelper{ @Autowired privateSqlSessionsqlSession;//这里自动注入mybatis的SqlSession privateStringnameSpace; publicMybatisHelper(StringnameSpace){ this.nameSpace=nameSpace; } publicStringgetSqlName(StringsqlName){ returnnameSpace+"."+sqlName; } publicIntegercreate(Stringname,Tobj){ returnsqlSession.insert(getSqlName(name),obj); } publicBooleanupdate(Stringname,Tobj){ returnBoolean.valueOf(sqlSession.update(getSqlName(name),obj)>0); } publicTfindById(Stringname,Longid){ returnsqlSession.selectOne(getSqlName(name),id); } publicBooleandelete(Stringname,Longid){ returnBoolean.valueOf(sqlSession.delete(getSqlName(name),id)>0); } publicList findAll(Stringname){returnsqlSession.selectList(getSqlName(name));} }
需要说明的是因为sqlSession的执行回去寻找相应的mapper文件,所以namespace+方法名称很重要,这个一定要注意不要弄错了,弄错了就会无法正确调用。
然后我们的Dao层实现继承此类
@Component publicclassExampleModelDaoextendsMybatisHelper{ publicExampleModelDao(){ super("example.dao."); } //todo自定义操作 publicIntegerfindDataCounts(){ returngetSqlSession().selectOne(getSqlName("findDataCounts"));//他会寻找example.dao.findDataCounts对应的方法执行 } }
这样是不是很简单,也能大量复用很省事,关于service层我就不写了很简单。
四,mapper文件
//这里很重要就是前缀 //自定义resultMap对象,利于对象的操作 //数据表标签 example_data //除了主键以为的字段集合标签 name //插入属性的字段集合标签 id,name //插入输入进来的字段值标签 #{name} INSERTINTO ( )VALUES( ) //一看就明白了创建一个对象 //返回我们定义的resultMap SELECT FROM WHEREid=#{id} SELECT FROM SELECTcount(1)FROM //自定义的操作
ok,对应的mapper文件已经有了,我们就可以调用了,调用很简单一般写在service层中调用,下面我们去编写对应的controller。
五,控制器编写
推荐使用restful风格,因此我们控制器编写代码如下:
@RestController @CrossOrigin//这个是ajax跨域请求允许的注解,不用可以去掉 publicclassDigMapDataController{ @Autowired privateExampleServiceexampleService;//service对象 @RequestMapping(value="/create",method=RequestMethod.POST) publicStringcreate(@requestBodyExampleModelexampleModel){ returnString.valueOf(exampleService.create(exampleModel)); } //@requestBody注解会接受前端的JSON数据并配合jackson自动转换为相应的对象 @RequestMapping(value="/find/count",method=RequestMethod.GET) publicIntegerfindCounts(){ returnexampleService.findDataCounts(); } }
一个简单的控制器就编写完成了,这个时候我们可以启动应用进行数据访问了,是不是很简单。
六,应用的部署
直接在终端中使用命令,将应用打包为jar文件
1.maven [clean] package;打包后的文件在target目录下
2.java-jarexample.jar;运行我们的jar包程序
ok大功告成!
以上所述是小编给大家介绍的SpringBoot+MyBatis简单数据访问应用的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言!