.举例:
user_SqlMap.xml下的配置:
<sqlMap>
<typeAlias alias="User" type="com.msx.ibatis.User"/>
<select id ="selectAllUsers" resultClass="User">
select *
from user
</select>
</sqlMap>
红色标记部分的com.msx.ibatis.User 容易写成com.msx.ibatis 而漏掉User类名的指向,必须写全。
2.sqlMapConfig.xml的配置下的:
<sqlMapConfig>
<properties resource="com/msx/ibatis/SqlMap.properties"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property value ="${driver}" name="JDBC.Driver"/>
<property value ="${url}" name="JDBC.ConnectionURL"/>
<property value ="${username}" name="JDBC.Username"/>
<property value ="${password}" name="JDBC.Password"/>
</dataSource>
</transactionManager>
<sqlMap resource="com/msx/ibatis/user_SqlMap.xml"/>
</sqlMapConfig>
容易漏掉红色标记部分的配置。
3.user_SqlMap.xml配置中:
关于插入一条数据的:
<insert id ="insertUser" parameterClass="User">
insert into user(
id,
username,
password,
head,
regtime,
sex
)values(
#id#,#username#,#password#,#head#,#regtime#,#sex#
)
</insert>
红色标记部分的#id#和User.java的getId();方法的Id相吻合即可
4.user_SqlMap.xml配置中:
关于删除一条数据的:
<delete id ="deleteById" parameterClass="int">
delete from user
where id = #id#
</delete>
红色标记部分#id#作为占位符不存在改变的问题,比如可以更换为:#uid#、#sid#都可以
5. user_SqlMap.xml配置中:
关于更新一条数据的:
<update id ="updateUserById" parameterClass="User">
update user
set username = #username#,
password = #password#,
head = #head#,
regtime = #regtime#,
sex = #sex#
where id = #id#
</update>
容易漏掉各个参数之间的“,”号.
另外,parameterClass="User"的"User"类型切记不要写成"int"类型,应操作对象,因为和占位符配对的是其各个属性的值。
6.user_SqlMap.xml配置中:
关于模糊查询的:
<select id ="selectUserByName" parameterClass="String" resultClass="User">
select username,password,head,regtime,sex
from user
where username like '%$username$%'
</select>
红色标记为标准写法,不能写成'%#username#%' 而且不要忘记加上两边的单引号(' ')号。
7.user_SqlMap.xml配置中:
<insert id ="insertUserBySequence" parameterClass="User">
<!-- 关系数据库都支持的自增长 -->
insert into user(
id,
username,
password,
head,
regtime,
sex
)values(
#id#,#username#,#password#,#head#,#regtime#,#sex#
)
<selectKey resultClass="int" keyProperty="id">
select #id# as value
</selectKey>
</insert>
红色标记处指的是Java中该类的类的属性,而不是指数据库中该表的一个列。