当前位置: 首页 > news >正文

自己网站做优化的有权利卖么百度客服人工服务

自己网站做优化的有权利卖么,百度客服人工服务,千锋教育可靠吗,做网站开发钱【图书介绍】《SpringSpring MVCMyBatis从零开始学(视频教学版)(第3版)》-CSDN博客 《SpringSpring MVCMyBatis从零开始学(视频教学版)(第3版)》(杨章伟,刘祥淼)【摘要 书评 试读】- 京东图书 …

【图书介绍】《Spring+Spring MVC+MyBatis从零开始学(视频教学版)(第3版)》-CSDN博客

《Spring+Spring MVC+MyBatis从零开始学(视频教学版)(第3版)》(杨章伟,刘祥淼)【摘要 书评 试读】- 京东图书

MyBatis入门之一对一关联关系(示例)-CSDN博客

在实际应用中,应用更多的关联关系是一对多(或多对一)。例如,一个班级有多个学生,即多个学生属于一个班级。使用MyBatis是怎么处理这种一对多关联关系的呢?在本书第7章所讲解的<resultMap>元素中包含一个<collection>子元素,MyBatis就是通过该元素来处理一对多关联关系的。<collection>子元素的属性大部分与<collection>元素相同,但其还包含一个特殊属性—ofType。ofType属性与javaType属性对应,用于指定实体对象中集合类属性所包含的元素类型。

<collection>元素可以参考如下两种示例进行配置,具体代码如下:

<!--方式一:嵌套查询-->
<collection property="studentList" column="id" ofType="com.ssm.po.Student"select= "com.ssm.mapper.StudentMapper.selectStudent"/><!--方式二:嵌套结果-->
<collection property="studentList" ofType="com.ssm.po.Student"><id property="id" column="student_id"/><result property="username" column="username"/>
</collection>

【示例9-2】在了解了MyBatis处理一对多关联关系的元素和方式后,接下来以班级和学生之间的这种一对多关联关系为例,详细讲解如何在MyBatis中处理一对多关联关系,具体步骤如下。

 在db_mybatis数据库中创建两个数据表:tb_banji和tb_student,同时在表中预先插入几条数据,执行的SQL语句如下所示:

# 创建一个名称为tb_banji的表(暂时添加少量字段)
CREATE TABLE tb_banji(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32)
);
#插入两条数据
INSERT INTO tb_banji VALUES(1,'16软件技术1班');
INSERT INTO tb_banji VALUES(2,'16软件技术2班');
# 创建一个名称为tb_student的表(暂时添加少量字段)
CREATE TABLE tb_student(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(32),
sex CHAR(1),
banji_id INT ,
FOREIGN KEY (banji_id) REFERENCES tb_banji(id)
);
#插入3条数据
INSERT INTO tb_student VALUES(1,'孙淼','m',1);
INSERT INTO tb_student VALUES(2,'刘梦奕','f',1);
INSERT INTO tb_student VALUES(3,'无为','m',2);

 在com.ssm.po包中创建持久化类:班级类Banji和学生类Student,并在两个类中定义相关属性和方法,如文件9.7和文件9.8所示。

文件9.7  Banji.java

01	package com.ssm.po;
02	import java.util.List;
03	//班级类
04	public class Banji {
05		private Integer id;
06		private String name;
07		private List<Student> studentList;
08		public Integer getId() {
09			return id;
10		}
11		public void setId(Integer id) {
12			this.id = id;
13		}
14		public String getName() {
15			return name;
16		}
17		public void setName(String name) {
18			this.name = name;
19		}
20		public List<Student> getStudentList() {
21			return studentList;
22		}
23		public void setStudentList(List<Student> studentList) {
24			this.studentList = studentList;
25		}
26		public String toString() {
27			return "Banji [id=" + id + ", name=" + name + ", studentList=" + studentList + "]";
28		}
29	}

文件9.8  Student.java

01	package com.ssm.po;
02	//学生类
03	public class Student {
04		private Integer id;
05		private String name;
06		private String sex;
07		public Integer getId() {
08			return id;
09		}
10		public void setId(Integer id) {
11			this.id = id;
12		}
13		public String getName() {
14			return name;
15		}
16		public void setName(String name) {
17			this.name = name;
18		}
19		public String getSex() {
20			return sex;
21		}
22		public void setSex(String sex) {
23			this.sex = sex;
24		}
25		public String toString() {
26			return "Student [id="+ id +", name="+ name + ", sex="+ sex +"]";
27		}	
28	}

 在com.ssm.mapper包中创建班级实体映射文件BanjiMapper.xml,并在文件中编写一对多关联映射查询的配置,如文件9.9所示。

文件9.9  BanjiMapper.xml

01	<?xml version="1.0" encoding="UTF-8"?>
02	<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
03		"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
04	<mapper namespace="com.ssm.mapper.BanjiMapper">
05		<!--一对多:查看某一班级及其关联的学生信息
06		注意:若关联查询出的列名相同,默认使用前者,所以需要使用别名区分  -->
07		<select id="findBanjiWithStudent" parameterType="Integer"
08			   resultMap="BanjiWithStudentResult">
09			select b.*,s.id as student_id,s.name as sname,s.sex
10				from tb_banji b,tb_student s
11				where b.id=s.banji_id and b.id=#{id}
12		</select>
13		<resultMap type="Banji" id="BanjiWithStudentResult">
14			<id property="id" column="id" />
15			<result property="name" column="name" />
16			<!--一对多关联映射:collection
17			ofType表示属性集合中元素的类型List<Student>属性,即Student类-->
18			<collection property="studentList" ofType="Student">
19				<id property="id" column="student_id" />
20				<result property="name" column="sname" />
21				<result property="sex" column="sex" />
22			</collection>
23		</resultMap>
24	</mapper>

在文件9.9中,使用MyBatis嵌套结果的方式定义了一个根据班级id查询班级及其关联的学生信息的 select语句。因为返回的班级对象中包含Student集合对象属性,所以需要手动编写结果映射信息。

 将映射文件BanjiMapper.xml的路径配置到核心配置文件mybatis-config.xml中,其代码如下所示:

<mapper resource="com/ssm/mapper/BanjiMapper.xml" />

 在测试类MyBatisAssociatedTest中编写测试方法findBanjiTest()。

@Test
public void findBanjiTest(){SqlSession sqlSession = MybatisUtils.getSession();//查询班级id为1的班级信息(及其关联的学生集合信息)Banji banji=
sqlSession.selectOne("com.ssm.mapper.BanjiMapper.findBanjiWithStudent",1);System.out.println(banji.toString());sqlSession.close();		
}

执行方法后,控制台输出结果如图9.2所示。使用MyBatis嵌套结果的方式查询出了班级及其关联的学生集合信息。这就是MyBatis一对多的关联查询。

图9.2  运行结果

注意:上述示例从班级的角度出发,班级与学生之间是一对多的关联关系,但如果从单个学生的角度出发,一个学生只能属于一个班级,即一对一的关联关系。

http://www.wangmingla.cn/news/63067.html

相关文章:

  • 上海培训网站建设环球军事网最新消息
  • 广东 网站经营性备案查询网站域名
  • 团队展示网站电商培训机构
  • 网站增加域名备案电商运营转行后悔了
  • 用jsp实现网站开发的流程人民日报新闻消息
  • 百度搜索网站介绍域名注册需要多少钱
  • angular做门户网站网站关键词排名优化价格
  • 做传销网站后果严重吗网站推广优化排名
  • 保定seo关键词优化外包当阳seo外包
  • 升级的网站显示什么广州优化防控措施
  • 网站的二级目录怎么做国内永久免费云服务器
  • 建立官方网站多少钱semi final
  • 郑州网站推广价短视频新媒体推广
  • 项目计划书ai生成百度seo公司哪家好一点
  • 建设电商网站成都做网络推广的公司有哪些
  • 网站url抖音搜索排名优化
  • 能做网站的网站超能搜索引擎系统网站
  • wordpress 事件日历关键词优化的五个步骤
  • 文登做网站sem和seo
  • 成都营销型网站建设网络营销广告案例
  • 烟台网站建设网站谷歌搜索引擎优化seo
  • 网站开发与设计培训的就业前景怎么做百度网页
  • 网站开发绝杀技西安网站维护
  • 中介做哪些网站软文营销的特点
  • 方案协调会税务建设网站网络营销工资一般多少
  • wordpress建站免费教程企业seo网站推广
  • 开源php cms太原seo外包公司
  • 做网站百度还是阿里巴巴好google搜索优化方法
  • php网站开发程序员怎么优化关键词排名优化
  • 淮北哪有做网站的百度上搜索关键词如何在首页