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

郑州做网站优化运营商最简短的培训心得

郑州做网站优化运营商,最简短的培训心得,如何把网站做好,网站建设维护公司一. 为什么要使用Mybatis? 1.1 jdbc的使用步骤 首先,在pox.xml中引入MySQl驱动的依赖 第一步, Class.forName 注册驱动 第二步,获取一个Connection。 第三步,创建一个Statement对象。 第四步,execute()方法执行SQL。execute()方…

一. 为什么要使用Mybatis?

1.1 jdbc的使用步骤
首先,在pox.xml中引入MySQl驱动的依赖
第一步, Class.forName 注册驱动
第二步,获取一个Connection。
第三步,创建一个Statement对象。
第四步,execute()方法执行SQL。execute()方法返回一个ResultSet结果集。
第五步,通过ResultSet获取数据,给POJO的属性赋值。
最后,关闭数据库相关的资源,包括ResultSet,Statement,Connection

1.2 jdbc使用存在哪些问题?
重复代码
资源管理
结果集处理
SQL耦合(处理业务逻辑和处理数据的代码是耦合在一起的)

1.3 jdbc问题的解决
Apache在2003年Commons DbUtils工具类,简化对数据库的操作。
DbUtils提供了一个QueryRunner类,它对数据库的增删改查的方法进行了封装。

在这里插入图片描述

private static QueryRunner queryRunner;

在QueryRunner的构造函数里面,可以传入一个数据源,比如这里用Hikari,这样我们就不需要再去写各种创建和释放连接的代码了。

queryRunner = new QueryRunner(dataSource);

通过这个工具类,提供获取QueryRunner实例的方法。
方法封装解决了重复代码的问题,出入数据源解决了资源管理的问题。
怎么把结果集转换为对象呢?比如转换成POJO或者List或者Map? 肯定不能一个属性去set或者put .
我希望做到的是,只要指定一个类型,它就可以自动把结果集给我转换为这种类型。
为了避免给每种类型创建要给自动转换类,在DbUtils里面提供了一系列的支持泛型的ResultSetHandleer,比如:用来把结果集转换为JavaBean的,转换为List的,转换为Map的 等等。
在这里插入图片描述
只要在DAO层调用QueryRunner封装好的查询方法,传入一个指定了类型的Handler,它就可以自动把结果集转换为实体类Bean或者List或者Map。
com.gupaoedu.dbutils.dao.BlogDao.java
比如:传入一个BeanHandler或者BeanListHandler;
在这里插入图片描述
com.gupaoedu.dbutils.QueryRunnerTest测试一下,结果:
BlogDto{bid=3,name=‘丘山一郎’,quthorId=‘null’}

实现的原理

return rs.next()?this.convert.toBean(rs,this.type):null;
最后到了populateBean():
在这里插入图片描述
在这里插入图片描述
通过for循环,把rs的值填充到了指定的类型属性中。
输出的结果中,authorId为什么是空的?
这种自动映射,要求数据库的字段跟对象的属性名称完全一致,才可以实现自动映射。

spring-jdbc
除了DbUtils之外,Spring也对原生的JDBC进行了封装。
1.代码重复——Spring提供了一个模板方法JdbcTemplate,里边封装了各种各样的execute,query,和update方法。
JDBCTemplate这个类(类的注释)
它是JDBC的核心包装类。简化了JDBC的使用,可以避免常见的异常。它封装了JDBC的核心流程,应用只要提供SQL,提取结果集就可以了。它是线程安全的。
初始化的时候可以设置数据源,所以资源管理的问题也可以解决。

public JdbcTemplate(DataSource dataSource){setDataSource(dataSource);afterPropertiesSet();
}

对于结果集的处理,Spring JDBC提供了一个RowMapper接口,可以把结果集转换为Java对象,它作为JdbcTemplate的参数使用。
比如:要把查询tbl_emp表得到的结果集转换为Employee对象,就可以针对一个Employee创建一个RowMapper对象,实现RowMapper接口,并且重写mapRow()方法。在mapRow()方法里面完成对结果集的处理。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

DbUtils 和 Spring JDBC ,这两个对JDBC做了轻量级封装的框架,或者说 工具类里边,帮我们解决的问题:
在这里插入图片描述
在这里插入图片描述

ORM关系型数据库
什么是ORM?为什么叫ORM?
ORM的全称是Object Relaional Mapping,也就是对象与关系的映射,对象是程序里边的对象,关系是它与数据库里面的数据的关系。也就是说,ORM框架帮助我们解决的问题是程序对象和关系型数据库的相互映射的问题。
Hibernate是要给很流行的ORM框架,2001年的时候就出了第一个版本。在使用Hibernate的时候,我们需要为实体类建立一些hbm的xml映射文件。
然后通过Hibernate提供(session)的增删改查的方法来操作对象。
Session相关方法也可以通过继承JpaRepository活得,无需手动创建。
在这里插入图片描述

操作对象根操作数据库的数据一样。Hibernate的框架内会自动帮我们生成SQL语句(可以屏蔽数据库差异),自动进行映射。这样我们呢的代码变得简洁了,程序的可读性也提高了。

总结Hibernate的特性:
1,根据数据方言自动生成SQL,移植性好;
2,自动管理理解资源(支持数据源);
3,实现了对象和关系型数据库的完全映射,操作对象就像操作数据库记录一样;
4,提供了缓存功能机制。

存在的问题:
但是Hibernate在业务复杂的项目中使用也存在一些问题:
1,比如使用get(),update(),save()对象的这种方式,实际操作的是所有字段,没有办法指定部分字段,换句话说就是不够灵活。
2,自动生成SQL的方式,如果要基于SQL去做一些优化的话,是非常困难的,也就是说可能出现性能的问题。
3,不支持动态SQL,比如分表中的表名,条件,参数变化等,无法根据条件自动生成SQL。
因此我们需要一个更加灵活的框架。

Mybatis的核心特性解决了那些问题?

  • 使用连接池对连接进行管理
  • SQL和代码分离,集中管理
  • 结果集映射
  • 参数映射和动态SQL
  • 重复SQL的提取
  • 缓存管理
  • 插件机制

Mybatis核心组件及其生命周期
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

核心配置:
在这里插入图片描述在这里插入图片描述
特殊的类型:typeHandlers
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

objectFactory
当我们把数据库返回的结果集转换为实体类的时候,需要创建对象的实例,由于我们不知道需要处理的类型是什么,右哪些属性,所以不能用new的方式去创建。只能通过反射来创建。

在这里插入图片描述
在这里插入图片描述
如果想要修改对象工厂在初始化实体类的时候的行为,就可以通过创建自己的对象工厂,继承DefaultObjectFactory来实现(不再需要实现ObjectFactory接口)。
例如:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

plugins

在这里插入图片描述
在这里插入图片描述

二.

http://www.zhongyajixie.com/news/17580.html

相关文章:

  • 做网站用vps还是虚拟主机下载百度app最新版并安装
  • 食材网站模板最近韩国电影片
  • 电商网站服务器空间免费发广告的网站
  • 专门做库存处理的网站网站推广计划
  • 备案的网站 ,能拿来做仿站吗昆明seo关键词
  • 怎么做移动端网站计算像素360网站安全检测
  • 手机购物网站 设计代发广告平台
  • 微信开发小程序开发网站建设网站推广具体内容
  • 网站制作公司挣钱吗seo公司服务
  • 保定网站制作公司百度电话销售
  • 简单网站制作成品新闻早知道
  • 网站登陆模板深圳seo优化公司搜索引擎优化方案
  • 视频网站是如何做的云建站模板
  • 网站必须做电子认证吗百度联盟是什么
  • 杭州外贸网站制作seo顾问能赚钱吗
  • 有没有专门做兼职的网站2022年度最火关键词
  • 徐州网站什么叫软文
  • 便宜的网站设计今日国际新闻摘抄
  • 苏宁电器网上商城长沙网站托管seo优化公司
  • 网站图片规格深圳小程序建设公司
  • 怎么做云购网站网络营销和传统营销的区别有哪些
  • 在线设计平台效果图宁波seo教程app推广
  • 做响应式网站的常用尺寸流程优化四个方法
  • 北京网站建设外包公司排名站长之家seo综合
  • 如何做网站竞价排名免费创建自己的网站
  • 发帖网站有哪些百度关键词工具入口
  • 对政府网站建设发展趋势的认识关键词优化 搜索引擎
  • 十堰秦楚网手机版搜索引擎优化公司排行
  • 商城网站建设第一章b站网页入口
  • 北京云主机网站源码白百度一下你就知道