-
Mybatis中的OGNL表达式的操作符用法—3(OGNL表达式对大小写敏感)查看全部
-
Mybatis中的OGNL表达式的集合的用法—2(OGNL表达式对大小写敏感)查看全部
-
Mybatis中的OGNL表达式的固定写法—1(OGNL表达式对大小写敏感)查看全部
-
parameterType="String" 【这里的参数是类型名,如果是自己定义的类型就需要精确到包名,以确保好找,如果是java基本类型则可不用,因为基本类型是属于java.lang包,可以不用显示的写出来,只写String即可】查看全部
-
阶段总结之mybatis的作用: 1.在Configuration.xml中的对数据库的配置替代了原本数据库连接的相关代码 2.新建一个访问数据库类DBAccess来调用Configuration.xml配置文件以及构建一个SqlSessionFactory对象来开启一个数据库会话,然后返回这个【SqlSession】 示例: Reader reader = Resources.getResourceAsReader("config/Configuration.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession sqlSession = sqlSessionFactory.openSession(); 3.在DAO中调用这个SqlSession来执行SQL方法,并将返回值与Message.xml配置文件做关联匹配 例(查询方法):<id column="id" jdbcType="INTEGER" property="Id"/> <select id="queryMessageList" resultMap="MessageResult"> select id,command,description,content from message where 1=1 </select> messageList = sqlSession.selectList("Message.queryMessageList"); [注:配置文件中的命名空间,一定要跟上,这里是Message] ---------------------------------------------------------- 关于SQL方法的调用以及返回值的处理都是通过Message.xml文件来处理的! 最后在Configuration.xml文件中配置与Message.xml的关联即可。 示例:<mappers> <mapper resource="/config/Message.xml"></mapper> </mappers>查看全部
-
关于Message.xml的相关事宜: sqlSession执行SQL语句:sqlSession = dbAccess.getSqlSession(); messageList = sqlSession.selectList("Message.queryMessageList"); 【注】命名空间是一定要指明的![这里的Message就是命名空间] <id column="id" jdbcType="INTEGER" property="Id"> column对应数据库字段名,property对应bean的字段名,jdbc是java中对应的类型查看全部
-
SqlSession其实也是一次数据库的会话,是jdbc的组合体,是jdbc的封装。 SqlSession执行 完毕之后也要关闭!查看全部
-
Mybatis之SqlSession 1.向SQL语句传入参数 2.执行SQL语句 3.获取执行SQL语句的结果 4.事务的控制 如何得到SqlSession: 1.通过配置文件获取数据库连接相关信息 2.通过配置信息构建SqlSessionFactory 3.通过SqlSessionFactory打开数据库会话查看全部
-
一、获取自增主键值: <insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.imooc.bean.Command"> insert into command(name,description) values(#{name},#{description}) </insert> //解析:添加数据(在主外键的关系中)可以使用 useGeneratedKeys="true",可获取自增长的id,并配合keyProperty="id"(java中实体类的属性名)指定该对象的主键值:即将其存到对应类的对象的id属性中 二、找不到namespace.id的异常效果: 1、在Configuration.xml没有配置<mappers><mapper resource="*.xml"></mapper></mappers>; 2、在1的配置中或selectList("Message.queryMessageList",message);中,名字写错。 三、排查SQL语法错误:如果控制台出现SQL语句问题,复制到SQL软件上执行,若有参数,手动写上并执行。 四、不要过度使用${}。 五、乱码问题: 1. servlet传参时的编码:request.setCharacterEncoding("utf-8");或直接使用过滤器; 2. Java文件本身的编码; 3. 连接数据库的参数中,设定编码方式:jdbc:mysql://127.0.0.1:3306/micro_message?useUnicode=true&characterEncoding=UTF-8 4. 数据库、表的编码; 5. 展示页面的编码:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 6. 浏览器编码问题等。查看全部
-
一、resultMap和resultType:当配置resultType时,就不需要配置resultMap,看似resultType方便,但是会被受限制,没有resultMap开放多。 相同点:都是表示查询结果集的类型。 不同点:resultMap需要手动配置映射关系,而resultType是直接指定java类型或者自定义的实体类型,查询结果集的列名必须和实体属性名称一致(实体类:名称大小写可以忽略;java类型,如Map集合的key大小写要一致,尽量都大小写规范,如果不放心可以select ID id,...)。 优缺点: 1、resultType结果集列名要与java属性名一样,但是resultMap不受限制,因为resultMap有column来规定。 2、由于SQL类型与Java中类型部分不匹配,resultMap可以通过typeHandler=""来匹配(如:SQL中的0和1来表示java中的false和true;Date类型的转换),但是resultType无能为力。 二、parameterMap和patameterType: 表示传入参数的对应关系,前者不推荐使用,只是mybatis为了适应以前的版本。 提示:看到Map字眼的想到映射关系,看到Type字眼的想到类型。 三、#{}和${}: 相同点:都是用来作为占位符。 不同点:#{}在预编译的时候会被替换为?,而${}在预编译的时候直接将变量的值替换进去,而且没有引号(所以还要加上“'${...}'”),故一般都是用前者,个别情况会使用后者:如需进行排序,且排序字段为参数时可以使用${}(order by后面不喜欢被预编译,所以使用${}更为恰当)。 四、#{}和ognl:在#{}中如果是基本类型,其中的名称可以随便写(不推荐),但一般都用_parameter,因为值唯一,而ognl中必须写成_parameter的方式查看全部
-
mybaits 配置文件详细路径: mybatis-3-mybatis-3.4.1\src\test\java\org\apache\ibatis\submitted\complex_property查看全部
-
常量的定义与引用 sql标签和include标签--sql标签定义常量,增强了维护性,减少代码复用;include标签引用常量 <select> select <include refid="columns"></include> from command </select> <sql id="columns">a.id C_ID,b.id,b.commandId</sql>查看全部
-
一对多映射: 1.在pojo类里添加“多”方的主键属性 2.在“多”方引用里添加collection标签。 多对一映射: 1.在pojo类里添加“一”方的引用 2.在“多”方引用里添加association标签,association里的property属性为pojo类里添加“一”方的引用的名称。 配置关联关系 1.collection标签--配置一对多映射 <collection property="主实体类中的List<子实体类>的对象名" resultMap="子xml中mapper中属性namespace名.resultMap的id名"/>//写在“一”xml<resultMap>中 2.association标签--配置多对一映射 <association property="子实体类中的主实体类的对象名" resultMap="主xml中mapper中属性namespace名.resultMap的id名"></association>//写在“多”的xml<resultMap>中查看全部
-
格式化输出 1.where标签--针对where后面的条件进行格式化,输入内容有检索条件时才加where,输入内容以and/or 开头时会将此关键字截掉 <where><if test="">and COMMAND=#{command}</if>...</where> 2.set标签--标签中有内容会进行输出,并将最后的逗号截掉 <set>...</set> 3.trim标签--可以代替前两个标签 //解析:<trim>标签在<select>/<update>等内使用。prefix在sql语句最前面加上,suffix在sql语句最后面加上,去掉sql语句最前面prefixOverrides,去掉sql语句最后面suffixOverrides。 <trim prefix="where" suffix="test" prefixOverrides="and/or" suffixOverrides=",">//prefix:添加前缀;suffix:添加后缀;prefixOverrides:去除语句前缀;suffixOverrides:去除语句后缀 //sql语句 </trim>查看全部
-
控制动态拼接SQL 1.foreach标签 <foreach collection="list" index="i" item="item" separator="," >//collection:集合类型(array,list,map);index:下标;item:某个具体的项;separator:分割器 #{item} </foreach> 2.if标签 <if test="command != null">COMMAND=#{command}</if>//test:判断条件 3.choose标签--相当于if—else if—else <choose> <when test=""></when> <when test=""></when> <otherwise></otherwise> </choose>查看全部
举报
0/150
提交
取消