Mybatis的增删改查
Posted 汪神
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis的增删改查相关的知识,希望对你有一定的参考价值。
对于MyBatis其他基本操作,就掌握sql语句就不难了
比如insert操作
<insert id="insertUser" parameterType="JiKeUser" statement="PREPARED" keyProperty="id" userGeneratedKeys="true"> INSERT INTO JiKeUser(userName,password) VALUES (#{userName,jdbcType="VARCHAR"},#{password,jdbcType="VARCHAR"}) </insert>
insert标签的属性有一个是statementType,这个就是jdbc的预处理属性,一般如果用PreparedStatement的话,就statementType="PREPARED"
keyProperty属性是主键的意思,而属性userGeneratedKsys是说采用了mysql中的主键自增机制来完成了这个主键设定。
而这个
(#{userName,jdbcType="VARCHAR"}
里面的jdbcType属性就是一个Mybatis进行的对mysql数据类型到java数据类型的转换,这个一般会自动进行,但如果无法自动进行转换的话,就要像这样手动进行转换。
为什么这个parameterType可以只写个JiKeUser呢,这个resultType的值没有用完整的路径名,这是采用了简写机制,就是为类起了个别名,这个操作在基本配置文件用typeAliases来标识:
<typeAliases> <typeAlias alias="JiKeUser" type="jike.book.pojo.JiKeUser"/> </typeAliases>
噢噢噢注意,这个typeAliases标签的定义一定要在这个environment的定义之前!!
然后看具体操作:
JiKeUser jku = new JiKeUser(); jku.setName = "Ben"; jku.setPassword = "12344"; session.insert("insertUser",jku); session.commit();//提交
要注意insert完后要提交一下这个sql语句,这个一般也能自动提交,但如果不设定的话是不会自动提交的,具体的在事务处理的时候做更详细的介绍。
update操作:
<update id="updateUser" parameterType="JiKeUser"> UPDATE JiKeUser SET userName=#{userName,jdbcType="VARCHAR"},password=#{password,jdbcType="VARCHAR"} WHERE id = #{id,jdbcType="INTEGER"} </update>
……
……
delete操作,这里我们换一种实现方式:
之前都是用map配置文件的方式来实现队数据库的操作,现在我们mybatis比较古老的方法:map接口的方法来实现。
用map接口来实现有两个要做的,1是写接口类,2是用注释来配置应用。
public interface InterfaceJiKeUserMap { @Delete("delete from JiKeUser where id=#{id}") //这就是个delete语句的一个注释 public void deleteUser(Integer id); }
这种注释的写法其实和配置文件中的一样的,然后我们要给它定义一个方法。然后你调用这个方法的时候,它就会调用这个注释中的这个sql语句,也就是说这样就不需要map配置文件了。
然后这个时候要想的就是怎么让基本配置文件找到这个接口。所以我们还有在基本配置文件中做一个设定。在基本配置文件的<mappers>下还要加点东西
<mappers> <mapper resource="jike.book.map.jikeUser.xml"/> <mapper class="jike.book.map.InterfaceJiKeUserMap"/> </mappers>
这个class就是接口的嘛。
然后我们来看看怎么啦来使用这个接口:
//首先要实现接口,这里实现的方式比较特殊,它是有mybatis提供的session来自动实现 InterfaceJiKeUserMap ijum = session.getMapper(InterfaceJiKeUserMap.class); ijum.deleteUser(1);//有了这个实现的接口就可以调用方法了
但是,一般我们还是使用这个xml配置文件的方式,接口这种方式还是尽量不要使用,因为它对比较复杂的映射配置的时候是有一定的局限性的。
以上是关于Mybatis的增删改查的主要内容,如果未能解决你的问题,请参考以下文章
MYBATIS01_概述及优缺点快速搭建工程Mybatis的增删改查操作总结