linux文件映射相关知识
-
Hibernate第九篇【组件映射、继承映射】前言 到目前位置,我们已经学习了一对一、一对多、多对一、多对多映射了...既然Hibernate是ORM实现的框架,它还提供了组件映射和继承映射..本博文主要讲解组件映射和继承映射 Java主要的类主要有两种方式 组合关系,组合关系对应的就是组件映射 继承关系,继承关系对应的就是继承映射 组件映射 组件映射实际上就是将组合关系的数据映射成一张表,组件类和被包含的组件类映射成一张表 有的时候,两个类的关系明显不是继承关系,但两个类的亲密程度很高,在一个类里边需要用到另外一个类...
-
SSM框架:SQL映射文件SQL映射文件 1.SQL映射文件: (1)mapper:映射文件的根元素节点,只有一个属性namespace(命名空间) 作用:用于区分不同的mapper全局唯一 绑定dao接口即面向接口编程,当namespace绑定某一个接口之后可以不用谢该接口的实现类,namespace的命名必须和接口名相同 (2)cache:配置给定命名空间缓存。 (3)cache-ref:从其他命名空间引用缓存配置 (4)resultMap:用来描述数据库的结果集和对象的对应关系。 (5)sql:可以重用SQL块,也可以被其他语句引用。 (6)insert:映射插入语句 Up
-
JAVA I/O(三)内存映射文件《Java编程思想》中对内存映射文件有详细的介绍,此处仅做简单记录和总结。内存映射文件允许创建和修改因为太大而不能放入内存的文件。1. 内存映射文件简单实例import java.io.IOException;import java.io.RandomAccessFile;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel;public class LargeMappedFiles { private static int LENGTH = 0x0000FFF; public static void main(String[]&nbs
-
Java内存映射,上G大文件轻松处理内存映射文件(Memory-mapped File),指的是将一段虚拟内存逐字节映射于一个文件,使得应用程序处理文件如同访问主内存(但在真正使用到这些数据前却不会消耗物理内存,也不会有读写磁盘的操作),这要比直接文件读写快几个数量级。稍微解释一下虚拟内存(很明显,不是物理内存),它是计算机系统内存管理的一种技术。像施了妖法一样使得应用程序认为它拥有连续的可用的内存,实际上呢,它通常是被分隔成多个物理内存的碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。内存映射文件主要的用处是增加 I/O 性能,特别是针对大文件。对于小文件,内存映射文件反而会导致碎片空间的浪费,因为内存映射总是要对齐页边界,最小单位是 4 KiB,一个 5 KiB 的文件将会映射占用 8 KiB 内存,也就会浪费 3 KiB 内存。java.nio 包使得内存映射变得非常简单,其中的核心类叫做 MappedByteBuffer,字面意思为映射的字节缓冲区。01、使用 MappedByteBuffer 读取文件假设现在有一个文
linux文件映射相关课程
linux文件映射相关教程
- 4.6 添加 MyBatis 映射文件 编写 GoodsDao 、 OrderDao 对应的映射文件, 首先我们通过 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.imooc.springboottransaction.GoodsDao"> <!-- 对应GoodsDao中的selectForUpdate方法 --> <select id="selectForUpdate" resultMap="resultMapBase" parameterType="java.lang.Long"> select <include refid="sqlBase" /> from goods where id = #{id} for update </select> <!-- 对应GoodsDao中的update方法 --> <update id="update" parameterType="com.imooc.springboottransaction.GoodsDo"> update goods set name=#{name},num=#{num} where id=#{id} </update> <!-- 可复用的sql模板 --> <sql id="sqlBase"> id,name,num </sql> <!-- 保存SQL语句查询结果与实体类属性的映射 --> <resultMap id="resultMapBase" type="com.imooc.springboottransaction.GoodsDo"> <id column="id" property="id" /> <result column="name" property="name" /> <result column="num" property="num" /> </resultMap></mapper>同样我们在 resources/mapper 目录下新建 OrderMapper.xml 文件,该文件是 order 表对应的映射文件,内容如下:实例:<?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"><!-- 本映射文件对应OrderDao接口 --><mapper namespace="com.imooc.springboottransaction.OrderDao"> <!-- 对应OrderDao中的insert方法 --> <insert id="insert" parameterType="com.imooc.springboottransaction.OrderDo"> insert into `order` (goods_id,count) values (#{goodsId},#{count}) </insert></mapper>
- 5. 映射器 映射器的作用就是检查用户的请求路径中是否存在对应的控制器组件。Tips: 有点类似于导购员。客户报一个商品名,然后告诉你真正的商品所在位置。使用 Spring MVC 时,如果开发者没有显示配置映射器,Spring MVC 会启动默认的映射器组件。在 DispatcherServlet 所在包的根目录下有名为 DispatcherServlet.properties 的文件,已经配置了很多默认组件信息,开发者不用做任何配置,便能启动这些组件工作。打开此文件可以看到有 2 种类型的映射器信息:org.springframework.web.servlet.HandlerMapping=org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\ org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping这两个映射器分别为哪一种请求寻找控制器了?回答这个问题之间,先了解用户控制器的映射方式。前面提到可使用 @RequestMapping 注解对外映射控制器组件。其实 Spring MVC 还可以使用 @Bean 注解实现相同的功能 。先假设存在如下的控制器:public class HelloAction { public String hello() implements Controller{ System.out.println("hello"); return "hello"; }}@Bean 注解映射: 打开项目中的 WebConfig 配置类,添加如下代码; @Bean(name = "/hello") public HelloAction hello() { return new HelloAction(); }Tips: “hello” 前面一定要加上 “/” 。如果使用 @Bean 注解的方式映射控制器,则用户控制器需要实现 org.springframework.web.servlet.mvc.Controller 接口, 意味着必须是一个标准的控制器。此处的 @Bean 的作用就是告诉 Spring MVC:你要创建它,其名字被当成一个访问控制器的 URL。BeanNameUrlHandlerMapping 映射器的功能就是查找有没有哪一个 Bean 的名字和用户请求的路径相匹配。RequestMappingHandlerMapping 映射器就是查找由 @RequestMapping 注解映射的控制器。无论使用这 2 种映射器的哪一种,理论上都无需显示配置。Spring 会根据你的请求信息选择对应的映射器。显然,使用 @RequestMapping 映射更直接、可观。所以,RequestMappingHandlerMapping 映射器使用的更多。
- 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.imooc.springbootmybatis.GoodsDao"> <!-- 对应GoodsDao中的insert方法 --> <insert id="insert" parameterType="com.imooc.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.imooc.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.imooc.springbootmybatis.GoodsDo"> <id column="id" property="id" /> <result column="name" property="name" /> <result column="price" property="price" /> <result column="pic" property="pic" /> </resultMap></mapper>
- 4.7 编写映射文件 分别针对 OrderDao 、 ErpOrderDao 编写对应的映射文件,然后按照配置类指定的位置,两个文件分别放到 resources/mapper1 和 resources/mapper2 目录下。实例:<?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"><!-- 本映射文件对应OrderDao接口 --><mapper namespace="com.imooc.springbootmultidb.mapper1.OrderDao"> <!-- 对应OrderDao中的insert方法 --> <insert id="insert" parameterType="com.imooc.springbootmultidb.mapper1.OrderDo" useGeneratedKeys="true" keyProperty="id"> insert into `order` (goods_id,count) values (#{goodsId},#{count}) </insert></mapper>实例:<?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"><!-- 本映射文件对应ErpOrderDao接口 --><mapper namespace="com.imooc.springbootmultidb.mapper2.ErpOrderDao"> <!-- 对应ErpOrderDao中的insert方法 --> <insert id="insert" parameterType="com.imooc.springbootmultidb.mapper2.ErpOrderDo"> insert into erp_order (out_id,goods_id,count) values (#{outId},#{goodsId},#{count}) </insert></mapper>
- 3.2 创建映射器接口 MyBatis 是一个很有意思的地方,可以使用接口的方式映射对应的 SQL 语句,这个接口也叫映射器。public interface UserMapper { @Select("SELECT user_id userId,user_login_name userLoginName ,user_password userPassword FROM user where user_login_name=#{userLoginName}") public User getUser(String userLoginName);}SQL 语句可以使用 @select 等类似注解直接放置在映射器的方法之上。也可以把 SQL 语句存放在 XML 文件中。如果 SQL 存放在 XML 中,官方文档有 2 点建议:XML 的文件名最好保持和映射器接口同名,如 UserMapper.xml;文件建议放在 UserMapper 接口所在的包中。MyBatis 能根据接口位置自动找到 XML 文件。UserMapper.xml 内容如下面所示:<mapper namespace="com.mk.web.dao.UserMapper"><select id="getUser"> SELECT user_id userId,user_login_name userLoginName ,user_password userPassword FROM user where user_login_name=#{userLoginName}</select></mapper>Tips: 建议大家使用 MyBatis 时,SQL 语句保存在 XML 文件中。SQL 语句放置在接口之上,SQL 语法和 JAVA 语法混合在一起,不便于维护。XML 文件的命名和位置最好采用官方建议的,如此,不用再做过多设置,MyBatis 就可以找到 XML 文件。
- 3.1 MyBatis 映射器 组件功能描述:对数据库中的数据进行操作,这里是查询出所有学生。public interface StudentMapper { public List<Student> getStudents();}SQL 语句映射: SQL 语句放置在 StudentMapper.xml 文件中。因 SQL 语句是多表查询,需要进行关联映射。<mapper namespace="com.mk.web.dao.StudentMapper"><resultMap type="com.mk.web.entity.Student" id="stuMap"> <result column="stuId" property="stuId" /> <result column="stuName" property="stuName" /> <result column="stuPassword" property="stuPassword" /> <association property="classRoom" column="classId"> <result column="classId" property="classId" /> <result column="className" property="className" /> </association></resultMap><select id="getStudents" resultMap="stuMap"> SELECT student.stuId, student.classId, student.stuName, student.stuPassword, student.stuPic, classroom.classId, classroom.className FROM student inner join classroom on student.classId=classroom.classId</select></mapper>
linux文件映射相关搜索
-
label
labelfor
label标签
lambda
lambda表达式
lamda
lang
last
latin
latin1
layers
layui
leave
left
leftarrow
legend
length
lengths
length函数
less