MyBatis快速入门(4)
- 格式:pdf
- 大小:929.35 KB
- 文档页数:5
mybatis入门到精通以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活。
性能也比hibernate 好。
而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记。
后来项目结束了,我也没写总结文档。
已经过去好久了。
但最近突然又对这个ORM 工具感兴趣。
因为接下来自己的项目中很有可能采用这个ORM工具。
所以在此重新温习了一下mybatis, 因此就有了这个系列的mybatis 教程.什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs (Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.orm工具的基本思想无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:1. 从配置文件(通常是XML配置文件中)得到sessionfactory.2. 由sessionfactory 产生session3. 在session 中完成对数据的增删改查和事务提交等.4. 在用完之后关闭session 。
\5. 在java 对象和数据库之间有做mapping 的配置文件,也通常是xml 文件。
mybatis实战教程(mybatis in action)之一:开发环境搭建mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。
这些软件工具均可以到各自的官方网站上下载。
首先建立一个名字为MyBaits 的dynamic web project1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。
mybatis入门教程MyBatis是一种开源的持久层框架,它可以帮助我们简化数据库操作的过程。
本教程将介绍如何使用MyBatis进行基本的数据访问操作。
第一步:创建数据库和表首先,我们需要创建一个数据库和一个表来存储数据。
假设我们创建了一个名为"mybatis_demo"的数据库,并在其中创建了一个名为"users"的表,该表包含id、name和age三个字段。
第二步:引入MyBatis依赖在使用MyBatis之前,我们需要在项目的pom.xml文件中引入MyBatis的依赖。
可以在Maven仓库中找到最新的MyBatis版本,并将其添加到pom.xml文件中。
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency>第三步:创建数据源配置文件在src/main/resources目录下创建一个名为"mybatis-config.xml"的文件,并在其中配置数据源信息。
以下是一个示例配置:<?xml version="1.0" encoding="UTF-8"?><configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="url"value="jdbc:mysql://localhost:3306/mybatis_demo"/><property name="username" value="root"/></dataSource></environment></environments><mappers><!-- 这里可以配置Mapper接口所在的包 --></mappers></configuration>注意:在实际项目中,我们通常会将数据库连接信息配置在外部的配置文件中,而不是直接写在mybatis-config.xml文件中。
Mybatis 知识点什么是 MybatisMybatis 是一个开源的持久层框架,它提供了一个可以自定义 SQL 映射的方式,以及可以很方便地进行数据库查询和操作的功能。
相比于传统的 ORM 框架,Mybatis 更加灵活,适用于复杂的 SQL 查询和自定义 SQL 语句的情况。
Mybatis 的优点1.灵活性:Mybatis 允许开发者自定义 SQL 映射,可以根据需要编写任意复杂的 SQL 查询语句,更加灵活地操作数据库。
2.性能优化:Mybatis 提供了多种性能优化的手段,比如查询缓存和预编译语句等,可以减少数据库的访问次数,提高系统性能。
3.易于集成:Mybatis 与 Spring 框架完美集成,可以很方便地与 SpringBoot 一起使用,简化开发流程。
Mybatis 的基本使用1. 引入依赖在 Maven 项目的 pom.xml 文件中,添加以下依赖:<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version></dependency>2. 配置数据源在 application.properties 文件中配置数据源信息:spring.datasource.url=jdbc:mysql://localhost:3306/mydbername=rootspring.datasource.password=1234563. 创建实体类和 Mapper 接口创建与数据库表对应的实体类和对应的 Mapper 接口,如下所示:public class User {private Long id;private String name;private Integer age;// 省略 getter 和 setter 方法}public interface UserMapper {List<User> getAllUsers();User getUserById(Long id);void addUser(User user);void updateUser(User user);void deleteUser(Long id);}4. 编写 SQL 映射文件在 resources 目录下创建一个 sqlmap 目录,并在该目录下编写 XML 格式的 SQL 映射文件,如下所示:<!-- UserMapper.xml --><mapper namespace="erMapper"><select id="getAllUsers" resultType="er">SELECT * FROM user;</select><select id="getUserById" resultType="er">SELECT * FROM user WHERE id = #{id};</select><insert id="addUser">INSERT INTO user(name, age) VALUES(#{name}, #{age});</insert><update id="updateUser">UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id};</update><delete id="deleteUser">DELETE FROM user WHERE id = #{id};</delete></mapper>5. 配置 Mybatis在 application.properties 文件中配置 Mybatis 相关的配置项,如下所示:mybatis.mapper-locations=classpath*:sqlmap/**/*.xmlmybatis.configuration.map-underscore-to-camel-case=true6. 注入 Mapper在需要使用 Mapper 的地方进行注入,并调用相应的方法即可:@Servicepublic class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic List<User> getAllUsers() {return userMapper.getAllUsers();}// 省略其他方法实现}Mybatis 高级特性动态 SQLMybatis 提供了动态 SQL 的支持,可以根据不同的条件生成不同的 SQL 语句,实现更加灵活的查询。
导入依赖包前面介绍了MyBatis 的相关知识,现在来介绍一下如何和Spring 进行集成。
MyBatis 和Spring 的集成工作是由MyBatis 团队完成的。
所以我们首先要先引入MyBatis 和Spring的集成依赖包。
这里我用的是Gradle ,如果使用其他构建工具,将下面的语句改为相应的。
1 compile group: 'org.mybatis', name: 'mybatis-spring', version: '1.3.1' 声明Spring Bean集成包中包含了org.mybatis.spring.SqlSessionFactoryBean 类,这是一个工厂类,可以方便的创建MyBatis 的SqlSessionFactory 。
所有属性均可以通过该类进行设置。
如果希望使用传统的XML 配置的话,也可以直接设置configLocation 属性为MyBatis 配置文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <!--MyBatis 的SqlSessionFactory--><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="configuration.xml"/> </bean><!--数据源--><bean id="dataSource"class="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource"> <property name="user" value="root"/><property name="password" value="12345678"/><property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="useSSL" value="false"/></bean>事务管理MyBatis 是一个轻量级的框架,没有自己的事务管理器。
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。
MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
二、mybatis快速入门2.1、准备开发环境1、创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示:2、添加相应的jar包【mybatis】mybatis-3.1.1.jar【MYSQL驱动包】mysql-connector-java-5.1.7-bin.jar3、创建数据库和表,针对MySQL数据库SQL脚本如下:1createdatabase mybatis;2use mybatis;3CREATETABLE users(id INTPRIMARYKEY AUTO_INCREMENT, NAME VARCHAR(20), age INT);4INSERTINTO users(NAME, age) VALUES('孤傲苍狼', 27);5INSERTINTO users(NAME, age) VALUES('白虎神皇', 27);将SQL脚本在MySQL数据库中执行,完成创建数据库和表的操作,如下:到此,前期的开发环境准备工作全部完成。
2.2、使用MyBatis查询表中的数据1、添加Mybatis的配置文件conf.xml在src目录下创建一个conf.xml文件,如下图所示:conf.xml文件中的内容如下:1<?xml version="1.0" encoding="UTF-8"?>2<!DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd">3<configuration>4<environments default="development">5<environment id="development">6<transactionManager type="JDBC"/>7<!-- 配置数据库连接信息 -->8<dataSource type="POOLED">9<property name="driver" value="com.mysql.jdbc.Driver"/>10<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> 11<property name="username" value="root"/>12<property name="password" value="XDP"/>13</dataSource>14</environment>15</environments>1617</configuration>2、定义表所对应的实体类,如下图所示:User类的代码如下:1package me.gacl.domain;23/**4 *@author gacl5 * users表所对应的实体类6*/7publicclass User {89//实体类的属性和表的字段名称一一对应10privateint id;11private String name;12privateint age;1314publicint getId() {15return id;16 }1718publicvoid setId(int id) {19this.id = id;20 }2122public String getName() {23return name;24 }2526publicvoid setName(String name) { = name;28 }2930publicint getAge() {31return age;32 }3334publicvoid setAge(int age) {35this.age = age;36 }3738 @Override39public String toString() {40return "User [id=" + id + ", name=" + name + ", age=" + age + "]";41 }42 }3、定义操作users表的sql映射文件userMapper.xml创建一个me.gacl.mapping包,专门用于存放sql映射文件,在包中创建一个userMapper.xml文件,如下图所示:userMapper.xml文件的内容如下:1<?xml version="1.0" encoding="UTF-8" ?>2<!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd">3<!-- 为这个mapper指定一个唯一的namespace,namespace的值习惯上设置成包名+sql映射文件名,这样就能够保证namespace的值是唯一的4例如namespace="erMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除后缀)5-->6<mapper namespace="erMapper">7<!-- 在select标签中编写查询的SQL语句,设置select标签的id属性为getUser,id属性值必须是唯一的,不能够重复8使用parameterType属性指明查询时使用的参数类型,resultType属性指明查询返回的结果集类型9resultType="er"就表示将查询结果封装成一个User类的对象返回10 User类就是users表所对应的实体类11-->12<!--13根据id查询得到一个user对象14-->15<select id="getUser"parameterType="int"16resultType="er">17 select * from users where id=#{id}18</select>19</mapper>4、在conf.xml文件中注册userMapper.xml文件1<?xml version="1.0" encoding="UTF-8"?>2<!DOCTYPE configuration PUBLIC "-////DTD Config 3.0//EN" "/dtd/mybatis-3-config.dtd">3<configuration>4<environments default="development">5<environment id="development">6<transactionManager type="JDBC"/>7<!-- 配置数据库连接信息 -->8<dataSource type="POOLED">9<property name="driver" value="com.mysql.jdbc.Driver"/>10<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> 11<property name="username" value="root"/>12<property name="password" value="XDP"/>13</dataSource>14</environment>15</environments>1617<mappers>18<!-- 注册userMapper.xml文件,19 userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml-->20<mapper resource="me/gacl/mapping/userMapper.xml"/>21</mappers>2223</configuration>5、编写测试代码:执行定义的select语句创建一个Test1类,编写如下的测试代码:package me.gacl.test;import java.io.IOException;import java.io.InputStream;import java.io.Reader;import er;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;publicclass Test1 {publicstaticvoid main(String[] args) throws IOException {//mybatis的配置文件String resource = "conf.xml";//使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)InputStream is =Test1.class.getClassLoader().getResourceAsStream(resource);//构建sqlSession的工厂SqlSessionFactorysessionFactory =new SqlSessionFactoryBuilder().build(is);//使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)//Reader reader = Resources.getResourceAsReader(resource); //构建sqlSession的工厂//SqlSessionFactorysessionFactory = new SqlSessionFactoryBuilder().build(reader);//创建能执行映射文件中sql的sqlSessionSqlSession session = sessionFactory.openSession();/*** 映射sql的标识字符串,* erMapper是userMapper.xml文件中mapper标签的namespace属性的值,* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL*/String statement = "erMapper.getUser";//映射sql的标识字符串//执行查询返回一个唯一user对象的sqlUser user = session.selectOne(statement, 1);System.out.println(user);}}。
Mybatis⼊门教程之新增、更新、删除功能说了Mybatis的框架搭建和简单查询,这次我们来说⼀说⽤Mybatis进⾏基本的增删改操作; ⼀、 插⼊⼀条数据1、⾸先编写USER.XML(表的xml)使⽤insert元素,元素写在mapper中:<insert id="insertitem" parameterType="er">INSERT INTO user(username,birthday,sex,address) VALUES(#{username},#{ birthday},#{sex},#{address})</insert>注意:这⾥的parameterType使⽤了实体对象的类型。
因为#{}和${}可以接收pojo数据,可以使⽤OGNL解析出pojo的属性值;如:#{username}为获取pojo中username的属性值,切记使⽤实体对象类型,在⼤括号中要保持数据⼀致;2、在运⾏java⽂件中的代码(MybatisFrist.java中):@Testpublic void start3(){SqlSession session = sqlsessionfactory.openSession();//打开SqlSessionUser user = new User();//创建实体对象user.setUsername("mylydg");user.setSex("1");user.setBirthday(new Date());session.insert("test.insertUser", user);//执⾏插⼊mit();//提交事务session.close();//关闭连接}以上便是基本的数据插⼊操作,使⽤对象来操作Mybatis进⾏插⼊;PS:拓展(如何获得插⼊数据的主键返回)?看如下代码操作:1.1、在insert元素中使⽤selectKey元素<insert id="insertitem" parameterType="er"><!-- 1、语句select LAST_INSERT_ID()为查找最后插⼊元素的id2、order属性表⽰相对insert语句在什么时候执⾏,有两个参数"AFTER"之后和"BEFORE"之前3、resultType属性表⽰返回值的类型4、keyProperty表⽰返回到的属性,切记要与insert中的parameterType类型的值相同,它会把值返回给parameterType对象--><selectKey order="AFTER" resultType="int" keyProperty="id">select LAST_INSERT_ID()</selectKey>1.2、在运⾏java⽂件中的代码(MybatisFrist.java中)直接通过之前传⼊的对象的user.Id获得即可@Testpublic void start3(){SqlSession session = sqlsessionfactory.openSession();//打开SqlSessionUser user = new User();//创建实体对象user.setUsername("mylydg");user.setSex("1");user.setBirthday(new Date());session.insert("test.insertUser", user);//执⾏插⼊mit();//提交事务session.close();//关闭连接System.out.println("the id ="+user.getId());//获得主键并打印}⼆、更新数据操作1、在表xml(user.xml,写在mapper中):<update id="update" parameterType="er">update user set username = #{username},sex = #{sex},birthday = #{birthday},address = #{address} where id=#{id}</update>2、在运⾏java⽂件中的代码(MybatisFrist.java中):@Testpublic void update(){//通过⼯⼚类打开数据接⼝SqlSession sqlsession = sqlsessionfactory.openSession();//设置接收对象User user = new User();;user.setUsername("mylydg");user.setSex("1");user.setBirthday(new Date());user.setAddress("the address");user.setId(27);try {//查询数据selectOne为查询⼀条的⽅法第⼀个参数是user.xml中的namespace.id;第⼆个参数是user配置⽂件中的#{id}sqlsession.update("test.update", user);mit();} catch (Exception e) {// TODO: handle exception}finally{sqlsession.close();//读完要关闭sqlsession}System.out.println("the id ="+user.getId());//打印输出}运⾏⽅法后,则可以更新指定id的⼀条数据三、删除⼀条数据的操作1、在表xml⽂件(user.xml,写在mapper中):<delete id="delete" parameterType="int">delete from user where id = #{id}</delete>2、在运⾏java⽂件中的代码(MybatisFrist.java中):@Testpublic void delete(){//通过⼯⼚类打开数据接⼝SqlSession sqlsession = sqlsessionfactory.openSession();try {//查询数据selectOne为查询⼀条的⽅法第⼀个参数是user.xml中的namespace.id;第⼆个参数是user配置⽂件中的#{id}sqlsession.delete("test.delete", 27);mit();} catch (Exception e) {// TODO: handle exception}finally{sqlsession.close();//读完要关闭sqlsession}运⾏⽅法后便可以删除指定id的⼀条数据。
MyBatis简介MyBatis 是支持普通SQL 查询,存储过程和高级映射的优秀持久层框架。
MyBatis 消除了几乎所有的JDBC 代码和参数的手工设置以及结果集的检索。
MyBatis 使用简单的XML 或注解用于配置和原始映射,将接口和Java 的POJOs(Plan Old Java Objects,普通的Java 对象)映射成数据库中的记录。
MyBatis的前身是IBatis,也是一个使用很广的持久化框架。
和hibernate对比,MyBatis 更基础,要求使用者自己控制的东西更多。
mybatis完成了基本的一些ORM概念,但是没有Hibernate那么完善。
要使用mybatis,程序员的关注点更集中于SQL和数据库结构设计。
mybatis没有hibernate使用起来那么面向对象,所以,在使用mybatis的时候,hibernate的一些思想和设计需要改变。
MyBatis的好处:更底层,对性能控制更有优势。
HelloWorld既然Mybatis也是一种ORM框架,所以,肯定也有两类配置文件。
第一类,用来配置MyBatis环境,比如数据库连接等。
第二类,用来配置对象到数据库表的映射。
在MyBatis 中,不光要配置对象到数据库表的映射,包括对应的SQL,也需要自己来完成(相当于自己来完成hibernate生成对象CRUDsql的过程要自己来完成)。
在学习mybatis的过程当中,要对比着hibernate来思考,可以更容易的理解。
而且,mybatis在ibatis的基础上面,更多的吸收了标准ORM的一些思想,所以,在API的设计上面和Hibernate还是有相似的地方,可以辅助学习。
首先任意创建一个对象User:package cd.itcast.mybatis.domain;public class User {private Long id;private String name;private Date hireDate;//getter & setter}下面就使用Mybatis完成对这个对象的CRUD的测试。
第一章用MyBatis实现增删查改第一步下载打开http://mybatis.github.io/看这里使劲点它!跳转到这个页面再使劲点它就会跳转到github仓库,看到这个界面注意:这里只是mybatis的一些发表信息,点一下它终于来到这个下载地方了,特么的好累动一下你的手指,滚动到最下方点它转到到这里看,出来了吧,找的我那么辛苦,当时恨不得点烂它!解压出来,进去看到第二步搭建和配置这个目录结构就对了,用MyEclipse创建一个Web Project,把mybatis-3.2.8.jar拷贝粘贴到自己创建的MyEclipse项目中的lib下(不知道哪里是MyEclipse项目的lib文件夹的人建议转行别写代码了),我的结构是这样的为什么里面还多了一个mysql-connector-java-5.1.6-bin.jar呢?它是干嘛用的呢?我顺手拷贝进去的,看到这个mysql的jdbc驱动大家应该明白我要测试用的数据库是mysql,自己随意,用什么数据库就拷贝什么驱动。
MyBatis里面是没有的,网上多得是,自己要什么驱动就去下载什么驱动。
可以动手了动手去src下创建3个包,我是这样子的我个人比较喜欢收缩着看,比较简洁,看这里点它- Package Presentation – Hierarchial,就变成这样这样命名有自己的含义,我打算inter包专门放接口(Interface),model包放Bean,test包放测试类。
创建一个叫mybatis的数据库,在里面创建一个表叫user,表user的结构如下懒人请复制:CREATE TABLE IF NOT EXISTS `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`userName` varchar(50) DEFAULT NULL,`userAge` int(11) DEFAULT NULL,`userAddress` varchar(200) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ; 顺便弄写数据进去INSERT INTO `user` (`id`, `userName`, `userAge`, `userAddress`) VALUES (1, '余小龙', 10, '人民广场'),(3, 'lisiwei', 80, '中山大学南方学院123'),(5, '麦家潮', 20, '中国'),(6, '周杰伦', 30, '北京');在包model下创建一个User类,根据数据库表在类中创建相应的成员变量,如下:private int id;private String userName;private String userAge;private String userAddress;右击鼠标——Source——Generate Getter and Setter点全选——OK,变成这样子创建完User类,接下来在同一个包(model)下创建一个User.xml文件,填以下内容:头部的声明代码太麻烦?懒人请复制<!DOCTYPE mapper PUBLIC"-////DTD Mapper 3.0//EN" "/dtd/mybatis-3-mapper.dtd">接下来,定义一个查询方法,根据用户ID查询User表中的某一条记录,在<mapper></mapper>里面写<select>标签是MyBatis的查询标签,id=”selectUserById”随便改,但是,要记住哦,等下会用到的parameterType是参数类型的意思,resultType是结果类型的意思,把查询的结果封装成一个User对象,有人问过我,为什么我经常在一些表名两边加上反冒号`,如:,知道的请跳过以下内容:在mysql中,有些关键字是不能用的,例如order、database、table等等,我在表名user两端加上`,作用就是告诉mysql,我写这个user不是想要调用mysql关键字,这个user仅仅代表我自己定义的数据库表名,mysql的关键字太多,我不能确定user是不是其中之一,不想去查,所以加上``了事,那么mysql 就不管user是不是mysql关键字,就算不小心user真的是关键字,也当user 不起作用,忽略它。
MyBatis学习文档创建时间:2014-09-12一、什么是mabatisMyBatis 是支持普通SQL 查询,存储过程和高级映射的优秀持久层框架。
MyBatis 消除了几乎所有的JDBC 代码和参数的手工设置以及结果集的检索。
MyBatis 使用简单的XML或注解用于配置和原始映射,将接口和Java 的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录。
二、mybatis入门2、创建项目目录层次:3、创建数据源(configuration.xml)4、创建实体类:User.java5、创建dao 接口、可以说是Mapper 接口:UserMapper6、创建dao的实现不同于hibernarte的此处的实现为一个xml文件,也就是7、编写测试类二、mybatis介绍1、mybatis执行过程每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心,执行过程为:(1)获得SqlSessionFactory实例:通过SqlSessionFactoryBuilder对象来获得,从XML配置文件构建SqlSessionFactory。
(2)获得SqlSession:通过SqlSessionFactory实例的openSession方法(3)调用映射语句:在命名空间”,定义了名为findUserById的映射语句,可以通过两中方式调用映射语句:在命名空间”,定义了名为findUserById的映射语句,可以通过两中方式调用映射语句:第一种方式:这里推荐第二种,第二种方式有很多优点,首先它不是基于文字的,那就更安全了。
第二,如果你的IDE有代码补全功能,那么你可以利用它来操纵已映射的SQL 语句。
第三,不需要强制类型转换,同时BlogMapper 接口可以保持简洁,返回值类型很安全(参数类型也很安全)。
2、XML 映射配置文件(Configuration.xml)(1)properties:声明全局属性,其中的属性就可以在整个配置文件中使用,使用可替换的属性来实现动态配置(2)settings:这些是极其重要的调整,它们会修改MyBatis 在运行时的行为方式·(3)typeAliases:类型别名是为Java 类型命名一个短的名字User user = (User)sqlSession.selectOne("", 6);特别注意:对于普通的Java 类型,有许多内建的类型别名。
Mybatis知识点汇总MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。
MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs (Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
以下是MyBatis的主要知识点汇总:1.基础概念:o SQL映射文件:MyBatis使用SQL映射文件(或称为Mapper文件)来定义SQL语句,每个映射文件对应数据库中的一张表。
o映射器:映射器是MyBatis的核心,它负责将方法调用映射到SQL语句,并且将结果集映射回Java对象。
o注解:MyBatis支持使用注解来配置SQL语句,这可以减少XML 配置的使用。
2.配置:o mybatis-config.xml:这是MyBatis的主配置文件,其中包含了数据源、事务管理器等信息。
o别名:MyBatis中可以使用别名来简化全限定类名,如使用别名可以使代码更简洁易读。
o配置元素:包括<settings>、<typeAliases>、<environments>等元素。
3.SQL映射:o select:用于执行查询语句,并返回结果集。
o insert:用于插入新的记录。
o update:用于更新已存在的记录。
o delete:用于删除记录。
4.结果映射:o resultMap:用于定义结果集的映射规则,可以将结果集的列映射到Java对象的属性。
o association:用于定义复合主键或是关联其他表的数据。
o collection:用于表示一个对象中有多个集合属性。
5.动态SQL:o if:用于判断条件是否满足,根据条件来决定是否执行某段SQL 语句。
o choose/when/otherwise:类似于Java中的switch语句,根据条件选择执行不同的SQL语句。