mybatis映射longtext类型数据_MyBatis基础
关于MyBatis本⼈也是正在学习,所有整理了⼀些学习的总结。
1.什么是MyBatis
MyBatis是⼀个开源的数据持久层的框架。它封装了JDBC访问数据库的操作,⽀持普通的SQL查询,储存过程和⾼级映射,减少了⼤部分JDBC代码和参数的⼿⼯设置以及结果集的检索,其主要思想是将程序中的⼤量SQL语句剥离出来,配置在配置⽂件中,实现SQL的灵活配置。
mysql的使用全过程MyBatis 本是apache的⼀个开源项⽬iBatis, 2010年这个项⽬由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进⾏⼀些改进。
MyBatis通过xml的⽅式将⾥⾯的sql进⾏映射⽣成最终执⾏的sql语句,最后由mybatis框架执⾏sql并将结果映射成java对象返回。
2.MyBatis环境搭建
1.下载jar包 >
2.部署jar包 >
3.编写MyBati核⼼配置⽂件 >
4.创建实体类 >
5.创建DAO接⼝ >
6.创建SQL映射⽂件 >
7.编写测试类
2、通过mybatis环境等配置信息构造SqlSessionFactory即会话⼯⼚
3、由会话⼯⼚创建sqlSession即会话,操作数据库需要通过sqlSession进⾏。
4、mybatis底层⾃定义了Executor执⾏器接⼝操作数据库,Executor接⼝有两个实现,⼀个是基本执⾏器、⼀个是缓存执⾏器。
5、Mapped Statement也是mybatis⼀个底层封装对象,它包装了mybatis配置信息及sql映射信息等。l⽂件中⼀个sql对应⼀个Mapped Statement对象,sql的id即是Mapped statement的id。
6、Mapped Statement对sql执⾏输⼊参数进⾏定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执⾏sql 前将输⼊的java对象映射⾄sql中,输⼊参数映射就是jdbc编程中对preparedStatement设置参数。
7、Mapped Statement对sql执⾏输出结果进⾏定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执⾏sql 后将输出结果映射⾄java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。
以上是MyBatis的结构⽬录图:scratch编程小游戏我的世界
entity:实体类包
excel+粘贴时怎么避开隐藏的单元格mapper:sql映射⽂件和接⼝resoucer:MyBatis核⼼配置⽂件test:测试类
1.实体类
2.sql映射⽂件和接⼝
3.MyBatis核⼼配置⽂件
4.测试类
30`UC@H%IJQE24.png)
SqlSession有两种使⽤⽅式:
(1)通过SqlSession实例来直接执⾏已映射的sql语句
(2)基于mapper接⼝⽅式操作数据
⼩编⽤的是mapper接⼝⽅式
3.MyBatis的基本要素————核⼼对象
SqlSessionFactoryBuilder:
SqlSessionFactorBuilder负责构建SqlSessionFactory,并且提供了多个build(),SqlSessionFactory
Builder的最⼤特点是:⽤过即丢,⼀旦创建了SqlSessionFactorBuilder对象之后,这个类就不再需要存在了,因此SqlSessionFactorBuilder 的最佳范围就是存在于⽅法体内。
SqlSessionFactor:
SqlSessionFactor简单的理解就是创建SqlSessionFactor实例的⼯⼚。所有的MyBatis应⽤都是以SqlSessionFactor实例为中
⼼,SqlSessionFactor的实例通过SqlSessionFactorBuilder对象来获得,在通过SqlSessionFactor提供的openSession()⽅法获取SqlSession实例。
SqlSession:
Sqlsession是⽤于执⾏持久化操作的对象,类似于JDBC的Connection,它提供了⾯向数据库执⾏sql命令所需的所有⽅法,可以通过Sqlsession实例直接运⾏已映射的SQL语句。
3.1MyBatis的基本要素————核⼼配置⽂件
properties:
作⽤:将数据连接单独配置在db.properties中,只需要在l中加载db.properties的属性值,在l 中就不需要对数据库连接参数进⾏硬编码。数据库连接参数只配置在db.properties中,⽅便对参数进⾏统⼀管理,其它xml可以引⽤该db.properties。
db.properties的内容:
jdbc.sql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root
settings:
mybatis框架运⾏时可以调整⼀些运⾏参数。⽐如,开启⼆级缓存,开启延迟加载等等。全局参数会影响mybatis的运⾏⾏为。
官⽅⽂档settings的例⼦:
<setting name="cacheEnabled" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="multipleResultSetsEnabled" value="true"/>
mysql语句的执行顺序<setting name="useColumnLabel" value="true"/>
description是什么牌子的手表<setting name="useGeneratedKeys" value="false"/>
<setting name="autoMappingBehavior" value="PARTIAL"/>
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25"/>
<setting name="safeRowBoundsEnabled" value="false"/>
<setting name="mapUnderscoreToCamelCase" value="false"/>
<setting name="localCacheScope" value="SESSION"/>
<setting name="jdbcTypeForNull" value="OTHER"/>
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
typeAliases:
在l中,定义很多的statement,statement需要parameterType指定输⼊参数的类型、需要resultType指定输出结果的映射类型。如果在指定类型时输⼊类型全路径,不⽅便进⾏开发,可以针对parameterType或resultType指定的类型定义⼀些别名,在l中通过别名定义,⽅便开发。
<typeAliases>
<typeAlias alias="user" type="cn.smbms.pojo.User"/>
</typeAliases>
typeHandlers:
mybatis中通过typeHandlers完成jdbc类型和java类型的转换。通常情况下,mybatis提供的类型处理器满⾜⽇常需要,不需要⾃定义.
mappers:
⽤来定义SQL的映射语句,我们只需要告诉Mybatis去哪⾥到这些相应的SQL映射⽂件。
<mappers>
<!--通过resource⽅法⼀次加载⼀个映射⽂件 -->
<mapper resource="l"/>
食肉菌在哪里出现<mapper resource="l"/>
</mappers>
4.SQL映射⽂件
MyBatis 的真正强⼤在于它的映射语句,也是它的魅⼒所在。相对它强⼤的功能,SQL映射⽂件却⾮常简单。如果拿它跟具有相同功能的JDBC 代码进⾏对⽐,你会⽴ 即发现省掉了将近 50% 的代码。MyBatis 就是针对 SQL 构建的,并且⽐普通的⽅法做的 更好。
SQL 映射⽂件有很少的⼏个顶级元素(按照它们应该被定义的顺序):
mapper - 映射⽂件的根元素节点,只有⼀个属性namespace(命名空间)
cache – 给定命名空间的缓存配置。
cache-ref – 其他命名空间缓存配置的引⽤。
resultMap – 是最复杂也是最强⼤的元素,⽤来描述如何从数据库结果集中来加载 对象。
sql – 可被其他语句引⽤的可重⽤语句块。
insert – 映射插⼊语句
update – 映射更新语句
delete – 映射删除语句
select – 映射查询语句
select:
查询语句是 MyBatis 中最常⽤的元素之⼀,光能把数据存到数据库中价值并不⼤,如果 还能重新取出来才有⽤,多数应⽤也都是查询⽐修改要频繁。对每个插⼊、更新或删除操 作,通常对应多个查询操作。这是 MyBatis 的基本原则之⼀,也是将焦点和努⼒放到查 询和结果映射的原因。简单查询的 select 元素是⾮常简单的。⽐如:
<select id="selectPerson" parameterType="int" resultType="hashmap">
SELECT * FROM PERSON WHERE ID = #{id}
</select>
id:在命名空间中唯⼀的标识符,可以被⽤来引⽤这条语句
parameterType:将会传⼊这条语句的参数类的完全限定名或别名。这个属性是可选的,因 为 MyBatis 可以通过 TypeHandler 推断出具体传⼊语句的参数,默认值 为 unset。
resultType 从这条语句中返回的期望类型的类的完全限定名或别名。注意如果是集合 情形,那应该是集合可以包含的类型,使⽤resultMap 或 resultType,但不能同时使⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论