这篇文章主要讲解了“ibatis级联如何解决登录系统问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ibatis级联如何解决登录系统问题”吧!
最近在搞登录系统,可是原先历史上完成的开发并没有引用hibernate,而是加入了ibatis ,这方面我以前未接触过,前几天需要完成的逻辑还比较简单,但是今天做到注册缓解的时候涉及到密码提示问题,而原先的登录系统是将question表与user表分开,这就涉及到了ibatis 级联的处理了。为了能够使用user.getQuestion,我们需要做一些配置:
在user.ibatis.xml 中设置
<sqlMap namespace="User"> <typeAlias alias="user" type="com.gh.passport.domain.User" /> <typeAlias alias="question" type="com.gh.passport.domain.Question" /> <resultMap id="user_result" class="com.gh.passport.domain.User"> <result property="id" column="ID" /> <result property="name" column="NAME" /> <result property="password" column="PASSWORD" /> <result property="answer" column="ANSWER" /> <result property="email" column="EMAIL" /> <result property="token" column="TOKEN" /> <result property="userQuestionId" column="USERQUESTION_ID" select="getQuestionById1" /> resultMap> <select id="getUser" parameterClass="String" resultMap="user_result"> SELECT ID as id, NAME as name, PASSWORD as password, USERQUESTION_ID as userQuestion_Id, ANSWER as answer, FROM USERS WHERE trim(lower(NAME)) = trim(lower(#name#)) select> <select id="getQuestionById1" parameterClass="Long" resultClass="question"> SELECT USERQUESTION_ID as id, QUESTION as question FROM USERQUESTION where USERQUESTION_ID = #id# select> sqlmap>
user_result 为result_map供select id="getUser" 使用user_result 集合所需要的数据从getUser 里拿。
其实应该这么说,在getUser查完数据库将数据映射成user_result 格式,而user_result的column 即为getUser as 后面的部分,名称需一致 而大小写无所谓,好像ibatis级联对大小写不敏感。
测试:
public void testXXXXXXXXX() throws Exception {
String userName = "x@x.com";
User user = users.findByName(userName);
System.out.println(user.getUserQuestion().getQuestion());
}
以此类推,我们就可以通过ibatis级联来解决登录系统中的一对多和多对一的问题了。
感谢各位的阅读,以上就是“ibatis级联如何解决登录系统问题”的内容了,经过本文的学习后,相信大家对ibatis级联如何解决登录系统问题这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。