SpringBoot+MyBatis简单数据访问应用的实例代码

网友投稿 209 2023-05-13


SpringBoot+MyBatis简单数据访问应用的实例代码

因为实习用的是MyBatis框架,所以写一篇关于SpringBoot整合MyBatis框架的总结。

一,Pom文件

xmlns:xsi="http://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">

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//@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文件

//这里很重要就是前缀

//自定义resultMap对象,利于对象的操作

//数据表标签

example_data

//除了主键以为的字段集合标签

name

//插入属性的字段集合标签

id,name

//插入输入进来的字段值标签

#{name}

INSERT INTO () VALUES ()

//一看就明白了创建一个对象

SELECT FROM WHERE id = #{id}

SELECT FROM

SELECT count(1) FROM

//自定义的操作

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包程序

ok 大功告成!

以上所述是给大家介绍的SpringBoot+MyBatis简单数据访问应用的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言!

xmlns:xsi="http://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">

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//@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文件

//这里很重要就是前缀

//自定义resultMap对象,利于对象的操作

//数据表标签

example_data

//除了主键以为的字段集合标签

name

//插入属性的字段集合标签

id,name

//插入输入进来的字段值标签

#{name}

INSERT INTO () VALUES ()

//一看就明白了创建一个对象

SELECT FROM WHERE id = #{id}

SELECT FROM

SELECT count(1) FROM

//自定义的操作

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包程序

ok 大功告成!

以上所述是给大家介绍的SpringBoot+MyBatis简单数据访问应用的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java Web中常用的分页组件(Java端实现)
下一篇:Angular中$broadcast和$emit的使用方法详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~