当前位置: 首页 > news >正文

网站建设 学习 长沙木卢seo教程

网站建设 学习 长沙,木卢seo教程,wordpress去除google字体,国外免费psd网站文章目录1. 前言2. 实例场景3. 数据库模块实现4. Spring Boot 后端实现4.1 使用 Spring Initializr 创建项目4.2 引入项目依赖4.3 数据源配置4.4 开发数据对象类4.5 开发数据访问层4.6 添加 MyBatis 映射文件5. 测试6. 小结1. 前言 企业级应用数据持久层框架,最常见…

文章目录

  • 1. 前言
  • 2. 实例场景
  • 3. 数据库模块实现
  • 4. Spring Boot 后端实现
    • 4.1 使用 Spring Initializr 创建项目
    • 4.2 引入项目依赖
    • 4.3 数据源配置
    • 4.4 开发数据对象类
    • 4.5 开发数据访问层
    • 4.6 添加 MyBatis 映射文件
  • 5. 测试
  • 6. 小结

1. 前言

企业级应用数据持久层框架,最常见的应该是 Hibernate 和 MyBatis 。

Hibernate 是相当彻底的 ORM 对象 - 关系映射框架,使用 Hibernate ,开发者可以不考虑 SQL 语句的编写与执行,直接操作对象即可。

与 Hibernate 相比, MyBatis 还是需要手工编写 SQL 语句的。恰好由于互联网行业数据量非常巨大,对 SQL 性能有比较苛刻的要求,往往都需要手工编写 SQL 。在此背景下, MyBatis 逐渐流行。

除此之外,MyBatis 是更加简单,更容易上手的框架,但是功能也是相对简陋点。

本篇就演示下,如何在 Spring Boot 框架中快速集成并使用 MyBatis 。

2. 实例场景

本篇我们使用 Spring Boot 与 MyBatis ,开发一个商城系统中商品管理模块后端部分。我们依然遵循 Restful 风格,以便团队小伙伴快速理解与接入。

3. 数据库模块实现

我们新建数据库 shop ,其中包含商品表,结构定义如下:

CREATE TABLE `goods` (`id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '唯一编号',`name` varchar(255) DEFAULT '' COMMENT '商品名称',`price` decimal(10,2) DEFAULT '0.00' COMMENT '商品价格',`pic` varchar(255) DEFAULT '' COMMENT '图片文件名',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

4. Spring Boot 后端实现

接下来,我们可以开发 Spring Boot 后端项目了,并使用 MyBatis 作为数据持久层框架。

4.1 使用 Spring Initializr 创建项目

Spring Boot 版本选择 2.2.5 ,Group 为 com.demo , Artifact 为 spring-boot-mybatis ,生成项目后导入 Eclipse 开发环境。

4.2 引入项目依赖

我们引入 Web 项目依赖、热部署依赖。由于本项目需要访问数据库,所以引入 spring-boot-starter-jdbc 依赖和 mysql-connector-java 依赖。由于项目中使用了 MyBaits ,所以还需要引入 mybatis-spring-boot-starter 依赖。本节实例开发完成后会使用 JUnit 进行测试,所以引入 junit 依赖。

最终,pom.xml 文件中依赖项如下:

	   <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><!-- 热部署 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency><!-- Web支持 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- JDBC --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- MySQL驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- 集成MyBatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.2</version></dependency><!-- junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><!-- 测试 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency>

实例:

4.3 数据源配置

修改 application.properties 文件,配置数据源信息。Spring Boot 会将数据源自动注入到 MyBatis 的 sqlSessionFactory 组件中。对于我们开发者来说,这一切都是自动实现的, MyBatis 同样可以开箱即用,简单到爆炸。

实例:

# 配置数据库驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 配置数据库url
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/shop?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
# 配置数据库用户名
spring.datasource.username=root
# 配置数据库密码
spring.datasource.password=123456

4.4 开发数据对象类

开发 goods 表对应的数据对象类 GoodsDo ,代码如下:

实例:

/*** 商品类*/
public class GoodsDo {/*** 商品id*/private Long id;/*** 商品名称*/private String name;/*** 商品价格*/private String price;/*** 商品图片*/private String pic;// 省略 get set方法
}

4.5 开发数据访问层

数据访问层直接使用接口实现即可,接口中添加商品的增删改查基本操作。

实例:

/*** 商品数据库访问接口*/
@Repository // 标注数据访问组件
public interface GoodsDao {/*** 新增商品*/public int insert(GoodsDo Goods);/*** 删除商品(根据id)*/public int delete(Long id);/*** 修改商品信息(根据id修改其他属性值)*/public int update(GoodsDo Goods);/*** 查询商品信息(根据id查询单个商品信息)*/public GoodsDo selectOne(Long id);/*** 查询商品列表*/public List<GoodsDo> selectAll();
}

然后,我们修改 Spring Boot 配置类,添加 @MapperScan 注解,扫描数据访问接口所在的包,

实例:

@SpringBootApplication
@MapperScan("com.demo.springbootmybatis") // 指定MyBatis扫描的包,以便将数据访问接口注册为bean
public class SpringBootMybatisApplication {public static void main(String[] args) {SpringApplication.run(SpringBootMybatisApplication.class, args);}
}

4.6 添加 MyBatis 映射文件

编写数据访问层接口之后,MyBatis 需要知道,如何将接口方法及参数转换为 SQL 语句,以及 SQL 语句执行结果如何转换为对象。这些都是通过映射文件描述的, MyBatis 映射文件就是描述对象 - 关系映射的配置文件。

首先我们通过 application.properties 指定映射文件的位置:

实例:

# 指定MyBatis配置文件位置
mybatis.mapper-locations=classpath:mapper/*.xml

然后在 resources/mapper 目录下新建 GoodsMapper.xml 文件,该文件就是 goods 表对应的映射文件,内容如下:

实例:

<?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">
<!-- 本映射文件对应GoodsDao接口 -->
<mapper namespace="com.demo.springbootmybatis.GoodsDao"><!-- 对应GoodsDao中的insert方法 --><insert id="insert" parameterType="com.demo.springbootmybatis.GoodsDo">insert into goods (name,price,pic) values (#{name},#{price},#{pic})</insert><!-- 对应GoodsDao中的delete方法 --><delete id="delete" parameterType="java.lang.Long">delete from goods where id=#{id}</delete><!-- 对应GoodsDao中的update方法 --><update id="update" parameterType="com.demo.springbootmybatis.GoodsDo">update goods set name=#{name},price=#{price},pic=#{pic} where id=#{id}</update><!-- 对应GoodsDao中的selectOne方法 --><select id="selectOne" resultMap="resultMapBase" parameterType="java.lang.Long">select <include refid="sqlBase" /> from goods where id = #{id}</select><!-- 对应GoodsDao中的selectAll方法 --><select id="selectAll" resultMap="resultMapBase">select <include refid="sqlBase" /> from goods</select><!-- 可复用的sql模板 --><sql id="sqlBase">id,name,price,pic</sql><!-- 保存SQL语句查询结果与实体类属性的映射 --><resultMap id="resultMapBase" type="com.demo.springbootmybatis.GoodsDo"><id column="id" property="id" /><result column="name" property="name" /><result column="price" property="price" /><result column="pic" property="pic" /></resultMap>
</mapper>

5. 测试

我们直接编写测试类,对数据访问接口进行测试。此处通过 @FixMethodOrder(MethodSorters.NAME_ASCENDING) 注解,使测试方法按名称顺序依次执行。这样就可以一次性测试 GoodsDao 中的所有方法了,具体测试代码如下:

实例:

/*** GoodsDao测试类*/
@SpringBootTest
@FixMethodOrder(MethodSorters.NAME_ASCENDING) // 按方法名称顺序测试
class GoodsDaoTest {@Autowiredprivate GoodsDao goodsDao;/*** 新增一个商品*/@Testvoid test_01() {GoodsDo goods = new GoodsDo();goods.setName("手机");goods.setPic("phone.jpg");goods.setPrice("2000");int count = goodsDao.insert(goods);assertEquals(1, count);// count值为1则测试通过}/*** 更新商品信息*/@Testvoid test_02() {GoodsDo goods = new GoodsDo();goods.setId(1L);goods.setName("手机");goods.setPic("phone.jpg");goods.setPrice("3000");int count = goodsDao.update(goods);assertEquals(1, count);// count值为1则测试通过}/*** 获取商品信息*/@Testvoid test_03() {GoodsDo goods = goodsDao.selectOne(1L);assertNotNull(goods);// goods不为null则测试通过}/*** 删除商品*/@Testvoid test_04() {int count = goodsDao.deletex(1L);//此处应为delete(1L)assertEquals(1, count);// count值为1则测试通过}/*** 获取商品信息列表*/@Testvoid test_05() {List<GoodsDo> goodsList = goodsDao.selectAll();assertEquals(0, goodsList.size());// goodsList.size()值为0则测试通过}
}

测试结果如下,说明所有测试都通过了。

JUnit 测试结果
在这里插入图片描述

6. 小结

MyBatis 可以自由的编写 SQL 语句,开发人员可以充分发挥 SQL 语句的性能。

Spring Boot 中使用 MyBatis 操作数据库十分方便,引入相关依赖后,定义数据访问接口,然后通过映射文件描述对象 - 关系映射即可。当然不要忘记通过 MapperScan 注解扫描数据访问接口所在的包,以便发现和注册相关的组件。

MyBatis 还有一些简化开发的工具和框架,如 MyBatis-Plus 、 MyBatis-Generator ,可以简化 MyBatis 开发过程,在一定程度上提高开发效率。感兴趣的同学可以通过网络获取相关资料进一步学习。

http://www.15wanjia.com/news/50606.html

相关文章:

  • 制作响应式网站报价微信小程序开发文档
  • wordpress 淘客帝国上海优化排名网站
  • wordpress设置隐藏内容湛江seo推广外包
  • 营销网站制作哪家靠谱免费隐私网站推广app
  • 北京网站推广排名怎么把网站排名到百度前三名
  • 委托设计网站 要注意哪些问题百度的seo关键词优化怎么弄
  • 广州网站模块建设关键词怎么做快速的有排名
  • 商水住房城乡建设网站网站优化招聘
  • 广州市建设工程交易网seo的工作内容
  • 百度网址大全网站大全腾讯朋友圈广告代理
  • 怎么做淘宝网站赚钱网络推广引流是做什么的
  • 一级A做爰片秋欲浓网站搜索引擎有哪些网站
  • 山东疫情最新消息今天seo网络营销
  • 有谁用2008做网站服务器谷歌 翻墙入口
  • 郑州建设网站建站拼多多seo怎么优化
  • 广州建站哪个济南兴田德润实惠吗如何进行搜索引擎优化?
  • 在阿里巴巴上做网站需要什么条件百度帐号管家
  • 网站空间怎么建站网站优化外包价格
  • 游戏网站免费入口手机流畅优化软件
  • 哪个网站公司做的好市场营销方案怎么写
  • 网站外链接自己可以怎么做网络营销策划推广
  • 企业建设网站的步骤是什么上海百度搜索排名优化
  • 安徽网站开发12月10日新闻
  • wordpress标签不被收录应用关键词优化
  • 做网站建设怎么介绍自己百度快速收录提交工具
  • 汕头东莞网站建设网站信息查询
  • 日本网络ip地址大全关键词排名优化公司外包
  • 个人做网站赚钱么seo优化网站推广全域营销获客公司
  • 引用网站信息怎么做备注seo工具在线访问
  • 好的网页网站设计给公司建网站需要多少钱