sprig-boot是一个微服务架构,加快了spring工程快速开发,以及简便了配置。接下来开始spring-boot与mybatis的整合。

1、创建一个maven工程命名为spring-boot-entity,pom.xml文件配置如下:
<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>com.spring.boot.entity</groupId>
<artifactId>spring-boot-entity</artifactId>
<packaging>jar</packaging>
<version>0.0.1-SNAPSHOT</version>
<distributionManagement>
<repository>
<id>releases</id>
<name>Nexus Release Repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
<!-- 其中distributionManagement节点配置的仓库为当前工程打包时发布的仓库 -->
</project>
然后创建一个包,命名为com.spring.boot.entity,在该包下创建一个User.java文件,内容如下:
/**
* Copyright (c) Windliven 2016 All Rights Reserved
*
* @author liyj
* @date 2017年7月11日 下午2:34:32
* @since V1.0.0
*/
package com.spring.boot.entity;
/**
* TODO
*
* @author liyj
* @date 2017年7月11日 下午2:34:32
*
*/
public class UserEntity {
/**
* id
*/
private String id;
/**
* name
*/
private String name;
/**
* pass
*/
private String pass;
/**
* email
*/
private String email;
/**
* iphone
*/
private String iphone;
public UserEntity() {}
public UserEntity(String id) {this.id = id;}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPass() {
return pass;
}
public void setPass(String pass) {
this.pass = pass;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getIphone() {
return iphone;
}
public void setIphone(String iphone) {
this.iphone = iphone;
}
}
到此,spring-boot-entity工程创建完成。
2、创建一个maven工程,命名为spring-boot-interface,pom.xml文件配置如下:
<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>com.spring.boot.inter</groupId>
<artifactId>spring-boot-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<!-- 引入spring-boo-entity工程打成的jar包 -->
<dependency>
<groupId>com.spring.boot.entity</groupId>
<artifactId>spring-boot-entity</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<distributionManagement>
<repository>
<id>releases</id>
<name>Nexus Release Repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
<!-- 其中distributionManagement节点配置的仓库为当前工程打包时发布的仓库 -->
</project>
然后创建一个包,命名为com.spring.boot.inter.service,在该包下创建UserService.java接口类。内容如下:
/**
* Copyright (c) Windliven 2016 All Rights Reserved
*
* @author liyj
* @date 2017年7月11日 下午2:31:20
* @since V1.0.0
*/
package com.spring.boot.inter.service;
import java.util.List;
import com.spring.boot.entity.UserEntity;
/**
* TODO
*
* @author liyj
* @date 2017年7月11日 下午2:31:20
*
*/
public interface UserService {
/*
* insert
*/
void insert(UserEntity entity);
/*
* deleteEntity
*/
void deleteEntity(UserEntity entity);
/*
* deleteById
*/
void deleteById(String id);
/*
* updateEntity
*/
void updateEntity(UserEntity entity);
/*
* updateById
*/
void updateById(String id);
/*
* getOne
*/
UserEntity getOne(String id);
/*
* getList
*/
List<UserEntity> getList();
}
到此,spring-boot-interface工程完成。
3、创建一个maven工程,命名为spring-boot-main,pom.xml文件内容如下:
<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>com.spring.boot.service</groupId> <artifactId>spring-boot-service</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- entity、接口的jar包 --> <dependency> <groupId>com.spring.boot.entity</groupId> <artifactId>spring-boot-entity</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>com.spring.boot.inter</groupId> <artifactId>spring-boot-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <!-- spring-boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot</artifactId> <version>1.4.1.RELEASE</version> </dependency> <!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.4.1.RELEASE</version> </dependency> --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <version>1.4.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>1.4.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>1.4.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.3.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.3.1.RELEASE</version> </dependency> <!-- end --> <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.2</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.6</version> </dependency> <!-- <dependency> <groupId>org.apache.ibatis</groupId> <artifactId>ibatis-sqlmap</artifactId> <version>2.3.0</version> </dependency> --> <!-- <dependency> <groupId>org.apache.ibatis</groupId> <artifactId>ibatis-core</artifactId> <version>3.0</version> </dependency> --> <!-- end --> <!-- 配置mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.17</version> </dependency> <!-- end --> <!-- 配置C3P0数据源 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.2.1</version> </dependency> <!-- end --> <!--util --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> <!-- 添加缓存支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> <version>1.4.1.RELEASE</version> </dependency> <!-- 使用ehcache缓存方案 --> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.9.0</version> </dependency> <!-- redis缓存 --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.2</version> </dependency> <!-- springboot整合 redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.1.RELEASE</version> </dependency> </dependencies> <!-- 打包成一个可执行的jar包 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.4.1.RELEASE</version> </plugin> </plugins> </build> <!-- 项目发布仓库 --> <distributionManagement> <repository> <id>releases</id> <name>Nexus Release Repository</name> <url>http://localhost:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://localhost:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement> </project>
然后创建包,命名为com.spring.boot.base,在该包下创建DataBaseConfig.java文件,文件内容如下:
/**
* Copyright (c) Windliven 2016 All Rights Reserved
*
* @author liyj
* @date 2017年7月12日 上午9:53:09
* @since V1.0.0
*/
package com.spring.boot.base;
import javax.sql.DataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.mapper.MapperScannerConfigurer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* TODO
*
* @author liyj
* @date 2017年7月12日 上午9:53:09
*
*/
@Configuration
@EnableTransactionManagement
public class DataBaseConfig {
private final Logger log = LoggerFactory.getLogger(DataBaseConfig.class);
@Bean
@Primary
public DataSource getDataSource() throws Exception {
log.debug("config dataSource");
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass("com.mysql.jdbc.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/springboot");
cpds.setUser("root");
cpds.setPassword("root");
return cpds;
}
@Bean
public PlatformTransactionManager getTransactionManager() throws Exception {
return new DataSourceTransactionManager(getDataSource());
}
@Bean
public SqlSessionFactory getSqlSessionFactory() throws Exception {
SqlSessionFactoryBean sfb = new SqlSessionFactoryBean();
sfb.setDataSource(getDataSource());
sfb.setTypeAliasesPackage("com.spring.boot.entity");
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
sfb.setMapperLocations(resolver
.getResources("classpath:/mapper/*.xml"));
return sfb.getObject();
}
@Bean
public MapperScannerConfigurer getMapperScannerConfigurer() {
MapperScannerConfigurer msc = new MapperScannerConfigurer();
msc.setBasePackage("com.mybloc.personal.mapper");
msc.setSqlSessionFactoryBeanName("sqlSessionFactory");
return msc;
}
}
创建一个包,命名为com.spring.boot.dao,在该包下创建UserMapper.java文件,该文件是一个接口类,内容如下:
/**
* Copyright (c) Windliven 2016 All Rights Reserved
*
* @author liyj
* @date 2017年7月11日 下午6:24:35
* @since V1.0.0
*/
package com.spring.boot.dao;
import java.util.List;
import com.spring.boot.entity.UserEntity;
/**
* TODO
*
* @author liyj
* @date 2017年7月11日 下午6:24:35
*
*/
public interface UserMapper {
public void insertOne(UserEntity entity);
public void delete(UserEntity entity);
public void update(UserEntity entity);
public UserEntity getOne(UserEntity entity);
public List<UserEntity> getList();
}
在src/main/resources目录下创建一个mapper文件目录,在该目录下创建UserMapper.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.spring.boot.dao.UserMapper">
<!-- 增 -->
<insert id="insertOne" parameterType="UserEntity">
insert into user(id,name,pass,email,iphone)
values(#{id},#{name},#{pass},#{email},#{iphone})
</insert>
<!-- 删 -->
<delete id="delete" parameterType="UserEntity">
delete from user where id = #{id}
</delete>
<!-- 改 -->
<update id="update" parameterType="UserEntity">
update user set email = #{email},iphone = #{iphone} where id = #{id}
</update>
<!-- 查 -->
<select id="getOne" parameterType="UserEntity" resultType="UserEntity">
select id,
name,
pass,
email,
iphone
from user
where id = #{id}
</select>
<!-- 查集合 -->
<select id="getList" resultType="UserEntity">
select id,
name,
pass,
email,
iphone
from user
</select>
</mapper>
接下来创建包,命名为:com.spring.boot.service,在该包下创建UserServiceImpl.java文件,内容如下:
/**
* Copyright (c) Windliven 2016 All Rights Reserved
*
* @author liyj
* @date 2017年7月11日 下午4:18:55
* @since V1.0.0
*/
package com.spring.boot.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.spring.boot.dao.UserMapper;
import com.spring.boot.entity.UserEntity;
import com.spring.boot.inter.service.UserService;
/**
* TODO
*
* @author liyj
* @date 2017年7月11日 下午4:18:55
*
*/
@Transactional(readOnly=false)
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
/*
* @see com.spring.boot.inter.service.UserService#insert(com.spring.boot.entity.UserEntity)
*/
public void insert(UserEntity entity) {
userMapper.insertOne(entity);
System.out.println("insert");
}
/*
* @see com.spring.boot.inter.service.UserService#deleteEntity(com.spring.boot.entity.UserEntity)
*/
public void deleteEntity(UserEntity entity) {
userMapper.delete(entity);
System.out.println("deleteEntity");
}
/*
* @see com.spring.boot.inter.service.UserService#deleteById(java.lang.String)
*/
public void deleteById(String id) {
userMapper.delete(new UserEntity(id));
System.out.println("deleteById");
}
/*
* @see com.spring.boot.inter.service.UserService#updateEntity(com.spring.boot.entity.UserEntity)
*/
public void updateEntity(UserEntity entity) {
userMapper.update(entity);
System.out.println("updateEntity");
}
/*
* @see com.spring.boot.inter.service.UserService#updateById(java.lang.String)
*/
public void updateById(String id) {
userMapper.update(new UserEntity(id));
System.out.println("updateById");
}
/*
* @see com.spring.boot.inter.service.UserService#getOne(java.lang.String)
*/
@Transactional(readOnly=true)
public UserEntity getOne(String id) {
return userMapper.getOne(new UserEntity(id));
}
/*
* @see com.spring.boot.inter.service.UserService#getList()
*/
@Transactional(readOnly=true)
public List<UserEntity> getList() {
return userMapper.getList();
}
}
再创建一个包,命名为com.spring.boot.controller,在该包下创建UserController.java文件,内容如下:
/**
* Copyright (c) Windliven 2016 All Rights Reserved
*
* @author liyj
* @date 2017年7月11日 下午6:08:00
* @since V1.0.0
*/
package com.spring.boot.controller;
import java.util.Collection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.Cache;
import org.springframework.cache.CacheManager;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.spring.boot.entity.UserEntity;
import com.spring.boot.inter.service.UserService;
/**
* TODO
*
* @author liyj
* @date 2017年7月11日 下午6:08:00
*
*/
//@SpringBootApplication(scanBasePackages = {"com.spring.boot"})
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@Autowired
private CacheManager cacheManager;
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Value("${testName}")
private String name;
@Value("${testPass}")
private String pass;
@RequestMapping(value = "/say", method = RequestMethod.GET)
public String sayHello() {
return "hello spring boot";
}
@RequestMapping(value = "/insert", method = RequestMethod.GET)
public String insert() {
UserEntity userEntity = new UserEntity();
userEntity.setId("111");
userEntity.setName("liyj");
userEntity.setPass("123456");
userEntity.setEmail("704603154@qq.com");
userEntity.setIphone("18211140412");
userService.insert(userEntity);
return "success";
}
@RequestMapping(value = "/one/get", method = RequestMethod.GET)
public UserEntity getOne(@RequestParam String id) {
return userService.getOne(id);
}
}
接着创建一个包,命名为com.spring.boot.start,在该包下创建StartMain.java文件,内容如下:
/**
* Copyright (c) Windliven 2016 All Rights Reserved
*
* @author liyj
* @date 2017年7月11日 下午4:52:32
* @since V1.0.0
*/
package com.spring.boot.start;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* TODO
*
* @author liyj
* @date 2017年7月11日 下午4:52:32
*
*/
@EnableAutoConfiguration
@ComponentScan(basePackages = "com.spring.boot")
@Configuration
@MapperScan(value={"com.spring.boot.dao"})
public class StartMain {
public static void main(String[] args) {
SpringApplication.run(StartMain.class, args);
}
}
最后测试,启动StartMain类中的main()方法,项目便启动了,可以正常的从浏览器中访问和测试。
总结
以上所述是小编给大家介绍的Spring Boot整合mybatis(一)实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# spring
# boot整合mybatis
# springboot与mybatis整合实例详解(完美融合)
# Spring boot怎么整合Mybatis
# Spring Boot+Mybatis的整合过程
# Spring Boot 整合 Mybatis Annotation 注解的完整 Web 案例
# Spring Boot整合MyBatis操作过程
# 详解Spring Boot整合Mybatis实现 Druid多数据源配置
# spring Boot与Mybatis整合优化详解
# 命名为
# 下午
# 创建一个
# 是一个
# 到此
# 小编
# 上午
# 目录下
# 在此
# 给大家
# 所述
# 该文件
# 给我留言
# 可执行
# 感谢大家
# 类中
# 疑问请
# 有任何
# 器中
# 启动了
相关文章:
C++如何将C风格字符串(char*)转换为std::string?(代码示例)
如何设置并定期更换建站之星安全管理员密码?
,网站推广常用方法?
湖北网站制作公司有哪些,湖北清能集团官网?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
高防服务器租用指南:配置选择与快速部署攻略
做企业网站制作流程,企业网站制作基本流程有哪些?
网站制作网站,深圳做网站哪家比较好?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
如何用PHP快速搭建CMS系统?
建站之星后台密码如何安全设置与找回?
免费视频制作网站,更新又快又好的免费电影网站?
,在苏州找工作,上哪个网站比较好?
建站之星如何开启自定义404页面避免用户流失?
如何高效完成自助建站业务培训?
建站之星北京办公室:智能建站系统与小程序生成方案解析
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
如何用PHP工具快速搭建高效网站?
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
济南专业网站制作公司,济南信息工程学校怎么样?
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
如何在阿里云服务器自主搭建网站?
如何破解联通资金短缺导致的基站建设难题?
在线制作视频的网站有哪些,电脑如何制作视频短片?
建站之星2.7模板:企业网站建设与h5定制设计专题
广东专业制作网站有哪些,广东省能源集团有限公司官网?
怎么将XML数据可视化 D3.js加载XML
网站制作模板下载什么软件,ppt模板免费下载网站?
建站之星代理商如何保障技术支持与售后服务?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
企业微网站怎么做,公司网站和公众号有什么区别?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
如何确认建站备案号应放置的具体位置?
如何快速搭建高效服务器建站系统?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
北京的网站制作公司有哪些,哪个视频网站最好?
宝塔面板创建网站无法访问?如何快速排查修复?
常州自助建站工具推荐:低成本搭建与模板选择技巧
seo网站制作优化,网站SEO优化步骤有哪些?
如何在Windows服务器上快速搭建网站?
如何快速搭建二级域名独立网站?
建站之星如何保障用户数据免受黑客入侵?
如何快速搭建个人网站并优化SEO?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
招贴海报怎么做,什么是海报招贴?
建站主机是什么?如何选择适合的建站主机?
建站主机无法访问?如何排查域名与服务器问题
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
公司网站制作价格怎么算,公司办个官网需要多少钱?
非常酷的网站设计制作软件,酷培ai教育官方网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。