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

做网站选云服务器内核/网站推广的全过程

做网站选云服务器内核,网站推广的全过程,做网站的投入,dwcc网页制作教程数据库中一对多通常使用主外键关联,外键应该在多方,即多方维护关系。 下面举一个简单实例来看看MyBatis怎么处理一对多的关系。 1.创建一个项目,导入所需jar包,导入db.properties配置文件,导入log4j.properties配置文件…

数据库中一对多通常使用主外键关联,外键应该在多方,即多方维护关系。

下面举一个简单实例来看看MyBatis怎么处理一对多的关系。

1.创建一个项目,导入所需jar包,导入db.properties配置文件,导入log4j.properties配置文件

2.创建一个数据库,在里面创建两张表

 

-- Table structure for `t_clazz`
-- ----------------------------
DROP TABLE IF EXISTS `t_clazz`;
CREATE TABLE `t_clazz` (`id` int(11) NOT NULL,`code` varchar(18) NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of t_clazz
-- ----------------------------
INSERT INTO `t_clazz` VALUES ('1', '一班');
INSERT INTO `t_clazz` VALUES ('2', '二班');

 

 

 

-- Table structure for `t_student`
-- ----------------------------
DROP TABLE IF EXISTS `t_student`;
CREATE TABLE `t_student` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(18) NOT NULL,`sex` varchar(3) NOT NULL,`age` int(11) NOT NULL,`cid` int(11) NOT NULL,PRIMARY KEY (`id`),KEY `cid` (`cid`),CONSTRAINT `cid` FOREIGN KEY (`cid`) REFERENCES `t_clazz` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;-- ----------------------------
-- Records of t_student
-- ----------------------------
INSERT INTO `t_student` VALUES ('1', '张三', '', '11', '1');
INSERT INTO `t_student` VALUES ('2', '李四', '', '12', '2');
INSERT INTO `t_student` VALUES ('3', '小红', '', '13', '1');

3.编写对应的实体类

public class Student {private Integer id;private String name;private String sex;private Integer age;//关联的clazz对象private Clazz clazz;
public class Clazz {private Integer id;private String code;//关联的student集合private List<Student> students;

4.编写对应的SQL映射文件

ClazzMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dj.mapper.ClazzMapper"><select id="selectClazzById" parameterType="int" resultMap="clazzResultMap">select * from t_clazz where id =#{id}</select><resultMap type="com.dj.domain.Clazz" id="clazzResultMap"><id property="id" column="id"/><resultproperty="code" column="code"/><!--property表示返回类型Clazz的属性studentscolumn表示将id作为参数进行之后的查询fetchtype表示懒加载javaType表示属性对应的类型 ofType表示集合当中的类型--><collection property="students" column="id" fetchType="lazy" javaType="ArrayList" ofType="com.dj.domain.Student" select="com.dj.mapper.StudentMapper.selectStudentByClazzId"><id property="id" column="id"/><resultproperty="name" column="name"/><resultproperty="sex" column="sex"/><resultproperty="age" column="age"/></collection></resultMap></mapper>

StudentMapper.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- namespace指用户自定义的命名空间 -->
<mapper namespace="com.dj.mapper.StudentMapper"><select id="selectStudentByClazzId" parameterType="int" resultType="com.dj.domain.Student">select * from t_student where cid=#{id}</select>
</mapper>

5.编写mybatis-config.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 引入 外部db.properties文件--><properties resource="db.properties"/><!-- 指定 MyBatis 所用日志的具体实现--><settings><setting name="logImpl" value="log4j"/></settings><!-- 环境配置 --><environments default="mysql"><environment id="mysql"><!-- 指定事务类型 --><transactionManager type="JDBC"/><!--  dataSource指数据源配置,POOLED是JDBC连接对象的数据源连接池的实现。 --><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments><!-- SQL映射文件位置 --><mappers><mapper resource="com/dj/mapper/StudentMapper.xml"/><mapper resource="com/dj/mapper/ClazzMapper.xml"/></mappers></configuration>

6.mybatis建议通过mapper接口的代理对象访问mybatis,该对象关联了一个sqlsession对象,开发者可以通过该对象直接调用方法操作数据库。

注意: mapper接口对象的类名必须和之前的mapper.xml的namespace一致,方法名和参数名及返回类型也要与mapper.xml的配置一致。

public interface ClazzMapper {//根据id查询班级信息Clazz selectClazzById(int id);}

7.测试

public class OneToManyTest {public static void main(String[] args) throws Exception {InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession = sqlSessionFactory.openSession();//获得mapper接口的代理对象ClazzMapper mapper = sqlSession.getMapper(ClazzMapper.class);//调用接口中的方法Clazz clazz = mapper.selectClazzById(1);List<Student> students = clazz.getStudents();for (Student student : students) {System.out.println(student);}}}

在控制台可以看到如下结果:

 

测试成功。

 

转载于:https://www.cnblogs.com/dj-blog/p/7566964.html

http://www.lbrq.cn/news/754561.html

相关文章:

  • 深圳市土方建设网站/运营培训班
  • 商洛做网站多少钱/长沙seo排名优化公司
  • 网站建设面试对策/深圳seo外包
  • 淘宝客做连接网站吗/长春百度推广公司
  • 网站维护怎么收费/seo成都培训
  • 网站推广的最终目的是什么/搜狗引擎
  • 任丘网站制作公司/自媒体平台注册入口官网
  • 专业做网站平台/吉林seo技术交流
  • 网络建站东北/网站 软件
  • 可以通过哪些网站注册域名/关键词优化上海
  • 网站开发培训机构/成都网站建设方案推广
  • 网站建设优化的作用/企业seo推广
  • 找合伙人的网站做淘宝/中国做网站的公司排名
  • 太原网站建设电话/百度搜索引擎优化详解
  • WordPress推荐版本/长沙网站seo方法
  • 杭州网站建设公司哪家好/seo资源咨询
  • 桥南做网站/企业建站用什么好
  • 济宁做网站的公司/网络营销公司好不好
  • 建设网站实施条件/个人永久免费自助建站
  • 怎么制作手机网站/qq群推广链接
  • 做网站建设要学多久/福州百度seo排名软件
  • 网站开发续签/刚刚刚刚刚刚刚刚刚刚刚刚刚刚刚
  • 网站开发组/石家庄网站建设培训
  • 网站内容/网络推广渠道和方法
  • 单产品网站建设/互联网营销方案
  • 咸宁网站建设/网络推广运营优化
  • 免费建网站的网站/广东河源最新疫情
  • 手机怎么做淘客网站/seo常用优化技巧
  • 网站建设学校培训/网页优化包括什么
  • 北京企业建站团队/微信小程序开发零基础入门
  • 链表OJ题讲解---试金石含金量
  • 奈飞工厂 —— 算法优化实战推荐
  • VScode 使用遇到的问题
  • SpringCloud学习
  • 微信小程序 拖拽签章
  • CPU、内存、存储:生信分析任务的服务器配置精要