日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IBatis初体验2

發(fā)布時(shí)間:2025/3/21 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IBatis初体验2 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

繼上一篇IBatis初體驗(yàn)

上一篇介紹了基本配置和一個(gè)簡單的插入(其它RUD操作也類似)

本篇主要是對于一對多和多對一的基本使用

還是Userinfo 與 Score? 雙向一對多關(guān)系

javaBean:

?


public class Userinfo {


?private int id;

?private String userName;

?private String pwd;

?private int age;
?
?private List<Score>socresList=new ArrayList<Score>();


?public void setAge(int age) {
??this.age = age;
?}


?public int getId() {
??return id;
?}


?public void setId(int id) {
??this.id = id;
?}


?public String getUserName() {
??return userName;
?}


?public void setUserName(String userName) {
??this.userName = userName;
?}


?public String getPwd() {
??return pwd;
?}


?public void setPwd(String pwd) {
??this.pwd = pwd;
?}


?public Integer getAge() {
??return age;
?}

?public void setAge(Integer age) {
??this.age = age;
?}
?

?public List<Score> getSocresList() {
??return socresList;
?}


?public void setSocresList(List<Score> socresList) {
??this.socresList = socresList;
?}
?
}

?

?

?

?

public class Score {

?private int id;
?
?private int chinese;
?
?private int english;
?
?private Userinfo userinfo;
???
?public Userinfo getUserinfo() {
??return userinfo;
?}

?public void setUserinfo(Userinfo userinfo) {
??this.userinfo = userinfo;
?}

?public int getChinese() {
??return chinese;
?}

?public void setChinese(int chinese) {
??this.chinese = chinese;
?}

?public int getEnglish() {
??return english;
?}

?public void setEnglish(int english) {
??this.english = english;
?}

?public int getId() {
??return id;
?}

?public void setId(int id) {
??this.id = id;
?}

}

sqlmap.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="UserInfo" >


<typeAlias alias="user" type="com.entity.Userinfo"/>
<typeAlias alias="score" type="com.entity.Score"/>

? <insert id="abatorgenerated_insert" parameterClass="com.entity.Userinfo" >
???? <selectKey resultClass="int" type="post" keyProperty="id" >??
?????????? select @@IDENTITY as value??
??? </selectKey>
??? insert into UserInfo (userName, pwd, age)
??????????????? values (#userName:VARCHAR#, #pwd:VARCHAR#, #age:INTEGER#)
? </insert>
?
??? <resultMap id="UserinfoResult" class="user" >
??? <result column="id" property="id"? />
??? <result column="userName" property="userName" jdbcType="VARCHAR" />
??? <result column="pwd" property="pwd"? />
??? <result column="age" property="age" />
??? <result property="socresList"? column="id" select="getScoreByUserId"/><!--?一對多關(guān)系體現(xiàn) -->
??? </resultMap>
?
?? <resultMap id="s" class="score"??? >
?? <result property="id" column="id"/>
?? <result property="chinese" column="chinese"/>
?? <result property="english" column="english"/>
?? <result property="userinfo" column="userId" select="getUserById"/><!--?多對一關(guān)系體現(xiàn) -->

?? </resultMap>
??
?? <select id="getScoreByUserId" parameterClass="int"? resultMap="s">
?? select * from score where userId=#id#
?? </select>
??
?? <select id="getUserById" resultClass="user" parameterClass="int">
?? select * from userinfo where id=#userId#
?? </select>
??
?? <select id="getScore" resultMap="s">
?? select * from score
?? </select>
??
?? <select id="getUserInfo" resultMap="UserinfoResult">
?? select * from userinfo
?? </select>
?
</sqlMap>

?

Test類:

?

?List list = mapClient.queryForList("getUserInfo");//查詢用戶列表
???if (list.size() > 0) {
????
????//取第一個(gè)用戶
????Userinfo userinfo = (Userinfo) list.get(0);
????System.out.println("用戶:" + userinfo.getUserName());
????
????//取該用戶的所有語文成績
????for (Score score : userinfo.getSocresList()) {

?????System.out.println("語文:" + score.getChinese());
????}
???} else
????System.out.println("沒有查到任何用戶!");
???
???//多對一體現(xiàn)
???List list2=mapClient.queryForList("getScore");
???if (list2.size()>0) {
????
????Score score=(Score)list2.get(0);
????System.out.println(score.getUserinfo().getUserName()+" 的語文成績是:"+score.getChinese());
???}
???else{
????System.out.println("無記錄!");
???}

?

完畢!

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/zhangqifeng/archive/2009/06/06/1497811.html

總結(jié)

以上是生活随笔為你收集整理的IBatis初体验2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。