完成项目架构后,我们来做一张简单的单表操作示例。
我选择了一个日志记录表来演示。
表结构很简单,logid就是主键编号,我打算用序列来完成。operatorid和code都是用户的信息。
这里有个比较好用的工具,可以自动实现dao层代码。这个工具就是MyBatis Generator。在我的那个eclipse中有这个插件。
这里有单独的插件链接:http://download.youkuaiyun.com/download/rickhunterchen/10243840
装好这个插件,把generatorConfig.xml直接拷贝到项目的根目录下。
配置内容不多
这里是驱动包的位置
这里是jdbc连接配置
这里包要先建好,开始我没有com.model,所以也需要先建好包结构,还有注意targetProject,是项目名称,这里应该改为WebDemo
这里就是注意表空间和表名
配置好后,就可以生成DAO了。
右击generatorConfig.xml,选择“Generate Mybatis/iBATIS Artifacts”。
完成后,生成如下文件。
Dao的基本操作(添删改查)就生成完了。
接下来,做些适当的修改。
SysLog这个pojo类生成时,将oracle的number类型对应生成了BigDecimal类型。我将它全部改为int类型。
在接口文件中增加一个接口:List<SysLog> selectAll(Map map);这个接口主要是为页面查询所有数据使用,传入参数用map是为了查询条件使用。
在xml文件中实现这个接口:
<select id="selectAll" resultMap="BaseResultMap" parameterType="java.util.Map" >
select
<include refid="Base_Column_List" />
from SYS_LOG
</select>
对xml文件中的insertSelective实现进行修改:
<insert id="insertSelective" parameterType="com.model.SysLog">
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
This element was generated on Tue Feb 06 13:12:55 CST 2018.
-->
insert into SYS_LOG
<trim prefix="(" suffix=")" suffixOverrides=",">
LOGID,
<if test="operatorid != null">
OPERATORID,
</if>
<if test="logtime != null">
LOGTIME,
</if>
<if test="logtype != null">
LOGTYPE,
</if>
<if test="loginfo != null">
LOGINFO,
</if>
<if test="code != null">
CODE,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
log_seq.nextval,
<if test="operatorid != null">
#{operatorid,jdbcType=VARCHAR},
</if>
<if test="logtime != null">
#{logtime,jdbcType=DATE},
</if>
<if test="logtype != null">
#{logtype,jdbcType=DECIMAL},
</if>
<if test="loginfo != null">
#{loginfo,jdbcType=VARCHAR},
</if>
<if test="code != null">
#{code,jdbcType=VARCHAR},
</if>
</trim>
</insert>修改的目的是logid由log_seq序列生成主键编号。
至此,DAO层基本实现完成。
本文通过日志记录表实例展示了如何使用MyBatisGenerator自动生成DAO层代码,并进行了必要的修改以适应具体应用需求。
1268

被折叠的 条评论
为什么被折叠?



