1、MyBatis简介1.1、什么是MyBatisMyBatis是一款优秀的持久层框架MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的过程MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的实体类【PlainOldJavaObjects,普通的Java对象】映射成数据库中的记录。MyBatis本是apache的一个开源项目ibatis,2010年这个项目由apache迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github.Mybatis官方文档:http://www.mybatis.org/mybatis-
核心配置文件mybatis-config.xml系统核心配置文件MyBatis的配置文件包含了会深深影响MyBatis行为的设置和属性信息。能配置的内容如下:configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理器)dataSource(数据源)databaseIdProvider(数据库厂商标识)mappers(映射
核心配置文件mybatis-config.xml系统核心配置文件MyBatis的配置文件包含了会深深影响MyBatis行为的设置和属性信息。能配置的内容如下:configuration(配置)properties(属性)settings(设置)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境配置)environment(环境变量)transactionManager(事务管理器)dataSource(数据源)databaseIdProvider(数据库厂商标识)mappers(映射
多对一的处理多对一的理解:多个学生对应一个老师如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师!1、数据库设计 CREATETABLE`teacher`(`id`INT(10)NOTNULL,`name`VARCHAR(30)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=INNODBDEFAULTCHARSET=utf8;INSERTINTOteacher(`id`,`name`)VALUES(1,'吴老师');CREATETABLE`student`(`id`INT(10)NOTNULL,`name`VARCHAR(30)DEFAULTNULL,`
多对一的处理多对一的理解:多个学生对应一个老师如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师!1、数据库设计 CREATETABLE`teacher`(`id`INT(10)NOTNULL,`name`VARCHAR(30)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=INNODBDEFAULTCHARSET=utf8;INSERTINTOteacher(`id`,`name`)VALUES(1,'吴老师');CREATETABLE`student`(`id`INT(10)NOTNULL,`name`VARCHAR(30)DEFAULTNULL,`
官方文档:https://mybatis.org/mybatis-3/zh/dynamic-sql.html1、介绍什么是动态SQL:动态SQL指的是根据不同的查询条件,生成不同的Sql语句官网描述:MyBatis的强大特性之一便是它的动态SQL。如果你有使用JDBC或其它类似框架的经验,你就能体会到根据不同条件拼接SQL语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态SQL这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态SQL并非一件易事,但正是MyBatis提供了可以被用在任意SQL映射语句中的强大的动态SQL语言得以改进这种情形。动态SQL
官方文档:https://mybatis.org/mybatis-3/zh/dynamic-sql.html1、介绍什么是动态SQL:动态SQL指的是根据不同的查询条件,生成不同的Sql语句官网描述:MyBatis的强大特性之一便是它的动态SQL。如果你有使用JDBC或其它类似框架的经验,你就能体会到根据不同条件拼接SQL语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态SQL这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态SQL并非一件易事,但正是MyBatis提供了可以被用在任意SQL映射语句中的强大的动态SQL语言得以改进这种情形。动态SQL
现在我们就开始更加深入的学习了,今天我们要学习的是多对一的处理。在正式开始之前我们需要做一些准备工作。一、在数据库建立两张新的表并插入数据CREATETABLE`teacher`(`id`INT(10)NOTNULL,`name`VARCHAR(30)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=INNODBDEFAULTCHARSET=utf8INSERTINTO`teacher`(`id`,`name`)VALUES(1,'刘老师');CREATETABLE`student`(`id`INT(10)NOTNULL,`name`VARCHAR(30)DEFAULTN
现在我们就开始更加深入的学习了,今天我们要学习的是多对一的处理。在正式开始之前我们需要做一些准备工作。一、在数据库建立两张新的表并插入数据CREATETABLE`teacher`(`id`INT(10)NOTNULL,`name`VARCHAR(30)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=INNODBDEFAULTCHARSET=utf8INSERTINTO`teacher`(`id`,`name`)VALUES(1,'刘老师');CREATETABLE`student`(`id`INT(10)NOTNULL,`name`VARCHAR(30)DEFAULTN
上一篇我们学习了多对一的处理,这次我们来学习一对多的处理。一对多的处理与多对一的处理差别不大,只是有一些细微的地方需要注意。我们还是先做准备工作,其他部分与多对一的准备工作相同,仅实体类构建需要做出改变。一、修改实体类Student类:packagecom.jms.pojo;publicclassStudent{privateintid;privateStringname;privateinttid;publicStudent(){}publicStudent(intid,Stringname,inttid){this.id=id;this.name=name;this.tid=tid;}pu