框架——MyBatis的参数传递,基本的增删改

MyBatis环境搭建步骤(超全解析!!!):

http://t.csdnimg.cn/VDMjDicon-default.png?t=N7T8http://t.csdnimg.cn/VDMjD

1.参数传递

在AdminDao类中写下面两个方法

单个参数直接传递 :

//根据id查询管理员对象

Admin findAdminById(int id);

  单个参数SQL语句举例:

在AdminMapper.xml文件中写相应的SQL语句

 <!--使用别名即可-->
    <select id="findAdminById" parameterType="int" resultType="Admin">
            select * from admin where id = #{id}
    </select>

其中parameterType="int"是传入参数类型 ,resultType="Admin"是返回值类型

多个参数使用@Param(“id”)绑定:

//登录
Admin login(@Param("acc")String account,@Param("pwd") String password);

 多个参数SQL语句举例:

<select id="selectAdmins" resultType="Admin">
   select id, account, password from admin where account= #{account} and password=# 
   {password}
</select>  

其中resultType代表返回值类型,多个参数时不用写传入参数类型

如果传入一个复杂的对象,就需要使用 parameterType 参数进行类型定义:

//保存管理员账户
void saveAdmin(Admin admin);

<insert id="saveAdmin" parameterType="Admin">
     insert into admin(account,password)values(#{account},#{password}) 
</insert>

2.增删改

①新增

在AdminDao类中写该方法

//保存管理员账户
void saveAdmin(Admin admin);

 在AdminMapper.xml文件中写相应的SQL语句 

<insert id="saveAdmin" parameterType="Admin">
     insert into admin(account,password)values(#{account},#{password}) 
</insert>

 在测试类的main方法中调用该方法,传入想要新增的管理员的信息


如果想要在新增完的同时拿到刚新增的admin的主键id,可以这样做

  <insert id="saveAdmin" parameterType="Admin" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
            insert into admin(account,password)values(#{account},#{password})
  </insert>

②删除

在AdminDao类中写该方法

//删除管理员
void deleteadmin(int id);

在AdminMapper.xml文件中写相应的SQL语句 

<delete id="deleteadmin" parameterType="int">
        delete from admin where id = #{id}
</delete>

在测试类的main方法中调用该方法,传入想要删除的管理员的id 

 ③修改

在AdminDao类中写该方法

//修改管理员信息
void updateadmin(Admin admin);

在AdminMapper.xml文件中写相应的SQL语句 

<update id="updateadmin" parameterType="Admin">
     update admin set account=#{account},password=#{password},gender=#{gender} where id=#{id}
</update>

在测试类的main方法中调用该方法,传入想要修改的管理员的信息

3.#{} 和${}区别

#{} 占位符,是经过预编译的,编译好 SQL 语句再取值,#方式能够防止 sql 注入
#{}:delete from admin where id=#{id}
结果: delete from admin where id = ?
${}会将将值以字符串形式拼接到 sql 语句, ${ }方式无法防止 Sql 注入
${}: delete from admin where id=’${id}’
结果: delete from admin where id=’1’
一般是#{ } 向 sql 传值使用, 而使用${ }向 sql 传列名 , 例如在 order by $ {column} 语句后面可以动态替换列名
  • 15
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值