本文为博主辛苦总结,但愿本身之后返回来看的时候理解更深入,也但愿能够起到帮助初学者的做用.
转载请注明 出自 : luogg的博客园 谢谢配合!
之前的写法:
<insert id="insert"parameterType="com.luogg.domain.Person">
java
在config.xml文件下
<!--起别名--> <typeAliases> <typeAlias type="com.luogg.domain.Person" alias="Person"/> </typeAliases>
在Mapper.xml文件下
<select id="selById" parameterType="int" resultType="Person"> SELECT * FROM person WHERE id = #{id} </select>
命名空间是能够随意修改的,可是有可能不一样包下出现相同的实体类,因此仍是加上包名方便区分.
不少时候会写一大串的列名,好比select 全部字段,咱们把常常出现的字段放入sql标签中,未来直接引用
<!--sql片断--> <sql id="cols">id,user_name,age,sex</sql> <select id="find" resultMap="personRM"> SELECT <include refid="cols"/> from person </select>
将parameterType设置成map便可
<where> 表示条件查询,并在后边自动添加一个1=1
<set>标签,表示修改时候用的,自动删除最后一个条件的逗号
<foreach>标签,循环标签,用于in子查询
sql
<!--动态sql语句,where标签至关于where 1=1 --> <select id="selDongtai" parameterType="map" resultMap="personRM"> SELECT <include refid="cols"/> FROM person <where> <if test="name != null">and user_name like #{name}</if> <if test="sex != null">and sex = #{sex}</if> </where> </select>
@Test //动态sql语句 public void selDongtai(){ SqlSession session = factory.openSession(); Map<String,Object> map = new HashMap<String, Object>(); map.put("name","l%"); map.put("sex",1); List<Person> list = session.selectList("com.luogg.mapper.PersonMapper.selDongtai",map); System.out.println(list.size()); for(Person p : list){ System.out.println(p); } }
遇到特殊字符,咱们须要将其原样输出,好比<>,此时加上<![CDATA[原样输出的内容 ]]>
<!--特殊字符的处理,查询年龄在20到22岁的人员--> <select id="selTeshu" parameterType="map" resultMap="personRM"> SELECT <include refid="cols"/> FROM person <where> <if test="name != null">and user_name like #{name}</if> <if test="ageStart !=null"> and age >= #{ageStart}</if> <if test="ageEnd !=null"> <![CDATA[and age <=]]> #{ageEnd}</if> </where> </select>
@Test //特殊字符处理 public void testTeshu(){ SqlSession session = factory.openSession(); Map<String,Object> map = new HashMap<String, Object>(); map.put("ageStart",20); map.put("ageEnd",22); List<Person> list = session.selectList("com.luogg.mapper.PersonMapper.selTeshu",map); System.out.println(list.size()); for(Person p : list){ System.out.println(p); } }