ibatis

mybatis- 3.1.1. how to override the resultmap returned from mybatis

懵懂的女人 提交于 2019-11-29 08:52:23
we using mybatis 3.1.1. we found for oracle the result map returned contains column name in Capital letters and in case of mySql the result map returned contains column name in small letters. My question is : Is there is any way i can to write some sort of interceptor so that i can modify the result returned by result map. Thanks. quux00 I'm afraid the answer is that MyBatis doesn't provide any direct way to control the case of the keys in a result map. I asked this question recently on the MyBatis Google Group: https://groups.google.com/forum/?fromgroups#!topic/mybatis-user/tETs_JiugNE The

Web软件开发工程师的要求是什么?Web前端 VS Web后端

岁酱吖の 提交于 2019-11-29 07:01:57
想从事软件业的想从事软件业的毕业生们大多要从基础的程序员做起。相较于其他的职位,Web软件开发工程师是一个技术要求较高、前景较好的工作。Web软件开发工程师可以分为Web前端和后端开发。那什么是Web前端,什么是Web后端呢?它们的差异在哪里?在工作中又分别会遇到怎么样的问题呢?乔布小编浏览了大量的资源,为童鞋们整理了这样一份资料,主要分为前端和后端的 差异 和它们各自所 面临的挑战 。希望对你有所帮助! Web前端和后端的差异 职能上的差异 首先,我们要分清Web designer(网页设计师)和Web developer(网页开发者,也称程序员)的差异。两者之间的差异主要表现在:一个是有关网站的视觉或美学方面,被称为“前端”;另一个则是看不见的编码方面的设计,被称为“后端”。简而言之,漂亮的网站界面都是出自网页设计师之手,而牛逼强大的功能则是网页开发者的杰作。 除了职能上的差异之外,两者还有其他许多差异。国外设计网站Downgraf特意制作了一张图表来展示——网页设计师和网页开发者(程序员)都留胡茬,一个没钱,一个没时间;两者都喜欢内涵T恤,一个走字体设计路线,一个走代码风;两者都配自家设备,一个必带MacBook Pro,一个只挑小键盘……除了以上种种差异,他们还有一个共同点:害怕MM,看来都是“宅”惹的祸。 再来看一下前端设计师与后端开发师的比较搞怪而又形象的区分

关于数据脱敏的两种解决方案之一基于mybatis Interceptor的脱敏

痴心易碎 提交于 2019-11-29 04:10:59
这是我根据网上资料整理的两种数据脱敏解决方案,各有千秋,都在我都实际环境中使用了,来自网络,回归网络,希望对读到的朋友有帮助。废话少说,下面就开始贴代码 /** * 脱敏注解 * */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) public @interface Desensitization { /** * 脱敏规则类型 * @return */ DesensitionType type(); /** * 附加值, 自定义正则表达式等 * @return */ String[] attach() default ""; } /** * 脱敏规则枚举 * */ public enum DesensitionType { PHONE("phone", "11位手机号", "^(\\d{3})\\d{4}(\\d{4})$", "$1****$2"), //注意后四位的表达式,因为有的身份证最后一位是X ID_CARD("idCard", "16或者18身份证号", "^(\\d{4})\\d{8,10}(\\w{4})$", "$1****$2"), BANK_CARD("bankCardNo", "银行卡号", "^(\\d{4})\\d*(\\d{4})$", "$1****$2"), REAL

iBatis, spring, how to log the sql that is executed?

懵懂的女人 提交于 2019-11-29 02:19:00
问题 I am using iBatis with spring framework. I want to log the sql that iBatis executes when I say something like Employee e = (Employee) getSqlMapClientTemplate().queryForObject("emp_sql", emp); The above line will look for "emp_sql" id in the ibatis sql file that I have. And then run the query corresponding to "emp_sql". I want to log this query. I have the following log4j xml properties file. <appender name="sqlLogAppender" class="org.apache.log4j.DailyRollingFileAppender"> <param name="file"

凤凰涅槃:从 iBatis 到 MyBatis.

别说谁变了你拦得住时间么 提交于 2019-11-29 02:06:04
从 iBatis 到 MyBatis,你准备好了吗? 对于从事 Java EE 的开发人员来说,iBatis 是一个再熟悉不过的持久层框架了,在 Hibernate、JPA 这样的一站式对象 / 关系映射(O/R Mapping)解决方案盛行之前,iBaits 基本是持久层框架的不二选择。即使在持久层框架层出不穷的今天,iBatis 凭借着易学易用、轻巧灵活等特点,也仍然拥有一席之地。尤其对于擅长 SQL 的开发人员来说,iBatis 对 SQL 和存储过程的直接支持能够让他们在获得 iBatis 封装优势的同时而不丧失 SQL 调优的手段,这是 Hibernate/JPA 所无法比拟的。具体而言,使用 iBatis 框架的主要优势主要体现在如下几个方面: 首先,iBatis 封装了绝大多数的 JDBC 样板代码,使得开发者只需关注 SQL 本身,而不需要花费精力去处理例如注册驱动,创建 Connection,以及确保关闭 Connection 这样繁杂的代码。 其次,iBatis 可以算是在所有主流的持久层框架中学习成本最低,最容易上手和掌握的框架。虽说其他持久层框架也号称门槛低,容易上手,但是等到你真正使用时会发现,要想掌握并用好它是一件非常困难的事。在工作中我需要经常参与面试,我曾听到过很多位应聘者描述,他们所在的项目在技术选型时选择 Hibernate,后来发现难以驾驭

ibatis MyBatis区别与联系

旧时模样 提交于 2019-11-29 02:05:54
简介: 本文主要讲述了 iBatis 2.x 和 MyBatis 3.0.x 的区别,以及从 iBatis 向 MyBatis 移植时需要注意的地方。通过对本文的学习,读者基本能够了解 MyBatis 有哪些方面的改进,并能够顺利使用 MyBatis 进行开发。本文更适合有 iBatis 基础的开发人员阅读。 本文将主要针对 MyBatis 和 iBatis 的变化之处进行讨论,以便于读者顺利从 iBatis 向 MyBatis 过渡。 由一个 MyBatis 示例开始 如果读者接触过一些常用的 Java EE 框架,应该都知道这些 框架需要提供一个全局配置文件 ,用于指定程序正常运行所需的设置和参数信息。 而针对常用的 持久层框架而言 (Hibernate、JPA、iBatis 等), 则通常需要配置两类文件 : 一类用于指定数据源、事务属性以及其他一些参数配置信息(通常是一个独立的文件,可以称之为全局配置文件); 另一类则用于指定数据库表和程序之间的映射信息(可能不止一个文件,我们称之为映射文件)。 MyBatis 也不例外,虽然其中的一部分可以通过注解的形式进行,但是这两部分内容本身仍是必不可少的。 根据 iBatis 的习惯,我们通常把全局配置文件命名为 sqlMapConfig.xml ,文件名本身并没有要求,在 MyBatis 中,也经常会将该文件命名为

iBatis和Hibernate浅析

为君一笑 提交于 2019-11-29 01:08:04
iBatis和Hibernate浅析 Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 一、基本功能 Hibernate作为数据持久化的中间件,足以让数据库在业务逻辑层开发中去冬眠。它通过可扩展标记语言(XML)实现了类和数据表之间的映射,使程序员在业务逻辑的开发中面向数据库而改为面向对象开发。使整个项目开发分工更加明确,提高了程序开发的效率。 configuration对象: Configuration 类负责管理Hibernate 的配置信息。Hibernate 运行时需要 获取一些底层实现的基本信息,其中几个关键属性包括: 1. 数据库URL 2. 数据库用户 3. 数据库用户密码 4. 数据库JDBC驱动类 5. 数据库dialect,用于对特定数据库提供支持,其中包含了针对特定数据库特性的实现,如Hibernate数据类型到特定数据库数据类型的映射等。以上信息一般情况下由hibernate.cfg

mybatis 3.5.0/mybatis plus 3.x中dao层与xml参数绑定大全(和老版本的不一样)

时间秒杀一切 提交于 2019-11-29 00:43:53
方式1(不推荐) 单个参数方式 @Mapper public interface UserDao extends BaseMapper<User> { User selectList1(String username, String phone); } <select id="selectList1" resultMap="BaseResultMap"> select * from user where username= #{arg0} and phone=#{arg1} </select> 注意:与网上所说的select * from user where username= #{0} and phone=#{1}在新版本中是不对的,会报错误: nested exception is org.apache.ibatis.binding.BindingException: Parameter '0' not found. Available parameters are [arg1, arg0, param1, param2] 查看报错报错信息可以看出还可以这样做 <select id="selectList1" resultMap="BaseResultMap"> select * from user where username= #{param1} and phone=#

mybatis源码之执行器解析

☆樱花仙子☆ 提交于 2019-11-29 00:25:12
mytatis执行器主要职责是翻译jdbc操作,是mybatis非常重要的功能 执行器类图如下 -从上图中可以看出所有执行器都实现了Executor接口,定义了一些通用的操作,Executor的接口定义如下 /** * Copyright 2009-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.