MyBatis环境搭建步骤(超全解析!!!):
http://t.csdnimg.cn/VDMjDhttp://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} 语句后面可以动态替换列名