mabits详细配置教程


--命名空间通常为该mapper映射文件所对应maper接口所在的路径

<mapper namespace="com.harbsoft.com.mybatis.mapper.UserMapper">

--开启二级缓存 (实体类必须序列化)

<cache type="org.mybatis.caches.ehcache.EhcacheCache" />

--抽取通用的SQL

<sql id="user_query_where">         通用sql </sql>    

--if

<if test="id!=null and id!=''">        通常是where条件语句  </if>

--foreach

<foreach collection="ids" item="id" open="and (" close=")" separator="or">      user.id=#{id} </foreach>

--$

AND user.username LIKE '${username}%'

--#

AND user.sex = #{sex}

--resultMap对应的是表与实体类的映射  -- type 数据库表对应的实体类,别名或完整类名都可以

<resultMap type="person" id="resultMapPerson"> <!-- 结果集的主键 --> --主键  <id/> <id  property="userid" column="id"/> <!-- 普通的列 --> --column 是数据库中字段, property是实体类中字段 <result property="name"  column="username" /> <result property="addr"  column="address" /> </resultMap>

-- 一对一的关系处理(一个订单对应一个用户, 此处相当于一个类中的一个字段,该字段为一个对象)

<association property="user" javaType="com.harbosoft.mybatis.po.User"> <id  property="id" column="user_id"/> <result  property="username" column="username"/> <result  property="sex" column="sex"/> <result  property="address" column="address"/> </association>

--一对多的关系处理(一个用户有多个订单,此处相当于一个类中的一个字段,该字段为一个集合)

<!-- 订单信息 --> <collection property="orders" ofType="com.harbosoft.mybatis.po.Orders"> <!-- 订单号 --> <result property="order_number" column="order_number" /> <result property="id" column="id" /> </collection>

三者可以嵌套使用

一个用户--------多个订单-------多个订单明细

一个用户--------多个订单-------多个订单明细--------多个商品

--select

public User findUserById(int id)
<select id="findUserById" parameterType="int"  resultType="user">      SELECT * FROM USER WHERE id=#{id}     <!--      id-------mapper接口的方法名;      parameterType -------mapper接口的方法参数的类型      resultType ---------mapper接口的方法的返回值类型       user ----------是别名(全名是com.harbosoft.mybatis.Items)      id 和形参保持一致   (#) --> </select>

--返回值是list   user

public List<User> findUserByName(String username)
<select id="findUserByName" parameterType="string" resultType="user">   SELECT * FROM USER WHERE username like '${value}%'  <!--     该方法返回值类型为List,但是集合中装的是user,所以resultType 的值只要和集合中存储的一样即可      value 可以随意些,什么都可以  ($) --> </select>

--返回值是list   参数是user   resultType 

public List<User> findUserList(User user)throws Exception;
<!-- 综合查询用户信息 --> <select id="findUserList" parameterType="user" resultType="user"> SELECT * FROM USER  <where> <!-- 用户的查询条件 -->      <include refid="user_query_where"/>       <!--该条SQL可能会重用,所以抽取出来,引用时用include--> </where> </select>

 

<sql id="user_query_where">           <if test="id!=null and id!=''">              AND user.id=#{id}           </if>           <foreach collection="ids" item="id" open="and (" close=")" separator="or">                user.id=#{id} and (userid =           </foreach>           <if test="username!=null and username!=''">              AND user.username LIKE '${username}%'           </if>           <if test="sex!=null and sex!=''">              AND user.sex = #{sex}           </if> </sql>

 

--返回值是List   resultMap 

public List<Person> findUserListResultMap(User user)throws Exception;
<!-- 综合查询用户信息 使用resultMap--> <select id="findUserListResultMap" parameterType="user" resultMap="resultMapPerson">      SELECT * FROM USER WHERE username like '${username}%' and sex=#{sex} </select>

--参数是map    hashmap   resultType

public List<User> findUserListByHashmap(Map map)throws Exception;
<!-- 通过hashmap查询用户信息 --> <select id="findUserListByHashmap" parameterType="hashmap" resultType="user">      SELECT * FROM USER WHERE username like '${name}%' and sex=#{sex} </select>

--返回值是map    resultType

public Map findUserByIdReturnMap(int id) throws Exception;
<!-- 获取单个用户信息返回hashmap --> <select id="findUserByIdReturnMap" parameterType="int"  resultType="hashmap">      SELECT * FROM USER WHERE id=#{id} </select>

--insert

public void insertUser(User user) throws Exception;
<insert id="insertUser" parameterType="user"> <!--  keyProperty:指定主键映射的pojo对象的属性         order:selectKey的执行顺序,mysql这里设置为after         企业中实际使用时,主键通常使用uuid()即 SELECT UUID() --> <selectKey keyProperty="id" order="AFTER" resultType="int">        SELECT LAST_INSERT_ID() </selectKey> INSERT INTO USER(username,birthday,sex,address,detail,score)      VALUES(#{username},#{birthday},#{sex},#{address},#{detail},#{score}) </insert>

       

--update

public void updateUserById(User user) throws Exception;
<update id="updateUserById"  parameterType="com.harbsoft.mybatis.po.User">       update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address},detail=#{detail},score=#{score}       where id=#{id} </update>

--delete

public void deleteUserById(int id) throws Exception;
<delete id="deleteUserById"  parameterType="java.lang.Integer">         delete from user where id=#{value} </delete>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM