MyBatis3
博文目录
MyBatis是一款持久层框架,原名叫ibatis;
摘自官网的简介:
MyBatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。 MyBatis消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。 MyBatis使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plan Old Java Objects,普通的 Java对象)映射成数据库中的记录。
MyBatis核心组件:
SqlSessionFactory:类似Hibernate中的SessionFactory
SqlSession:类似Hibernate中的Session
Mapper:类似之前写的DAO
Config file:配置信息
MyBatis的基本使用全程实录:
1,新建一个java project---mybatis
2,导入MyBatis的jar包
---mybatis-3.0.5.jar
---把压缩包中的optional文件夹中的jar包也添进去,说不定用的着
---连接数据库,千万不要忘记这个包:
---sql.jar(根据具体数据库导),我用的是mysql
3,配置MyBatis的配置文件,类似Hibernate连数据库的*cfg.xml
---名称随便起,我起名叫:mybatis.xml,放到src中
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 配置MyBatis的环境,可以配置多个环境,每个环境包括事务管理器,数据源等信息,default表示当前使用哪一个环境(开发环境) --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///log"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> <enviroment id="test"> <!-- test开发环境 --> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///test"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </enviroment> </environments> </configuration>
4,构建我们的POJO,仍然使用只有id,username,password的t_user表
package com.cn.pojo; public class User { private Integer id; private String username; private String password; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
5,在com.cn.mapper包中创建POJO的映射文件UserMapper.xml
注:在MyBatis中,mapper配置文件相当于之前的DAO包中的UserDao的功能,只不过换了种格式表示;
<?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就是一个类,类中具有若干个方法 --> <mapper namespace="com.cn.mapper.UserMapper"> <!-- 相当于DAO中的方法,id是方法名,parameterType参数类型,resultType返回类型 关于resultType有两种形式: 1,直接写完全限定名:resultType="com.cn.pojo.User" 2,在主配置文件配置别名:请看mybatis.xml中的typeAliases标签内配置格式 select标签:查询 #{id}:表示匹配的参数名,方法中提供的参数名 --> <select id="findById" parameterType="int" resultType="User"> select id,username,password from t_user where id = #{id} </select> </mapper>
6,在mybatis.xml中添加对User别名的配置及对UserMapper.xml的关联
注:在mybatis.xml配置文件中,标签是有顺序要求的,标签按下面的顺序排列:
properties,settings,typeAliases,typeHandlers,objectFactory,objectWrapperFactory,plugins,environments,mappers
如果不按这个配置会报错:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 配置返回类型的别名alias --> <typeAliases> <typeAlias type="com.cn.pojo.User" alias="User"/> </typeAliases> <!-- 配置MyBatis的环境,可以配置多个环境,每个环境包括事务管理器,数据源等信息,default表示当前使用哪一个环境(开发环境) --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///log"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!-- 配置MyBatis的POJO映射文件,‘/’代表文件层级 --> <mappers> <mapper resource="com/cn/mapper/UserMapper.xml"/> </mappers> </configuration>
7,编写测试类,执行测试查询
package com.cn.test; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.cn.pojo.User; public class MyBatis { public static void main(String[] args) throws Exception { //读取mybatis的配置文件 Reader reader=Resources.getResourceAsReader("mybatis.xml"); //获取mybatis的SqlSessionFactory对象 SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(reader); //获取SqlSession,这里用来执行对数据库的操 SqlSession session=factory.openSession(); //selectOne方法第一个参数是mapper类中的方法的完全限定定义,第二个参数表示传入的参数 User user=(User) session.selectOne("com.cn.mapper.UserMapper.findById", 1); System.out.println(user.getUsername()); session.close();//关闭连接 } }
至此我们已经会使用MyBatis了!!基本架构就是这么简单。
相关推荐
1. **MyBatis简介** MyBatis是由Clinton Begin创建的开源项目,它是一个基于Java的持久层框架,消除了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis提供了动态SQL、映射文件和Java接口,使得数据库操作...
在本文中,我们将深入探讨"Mybatis-Plus入门第二天讲义1"所涵盖的知识点,主要涉及ActiveRecord模式、Mybatis-Plus的基本操作以及如何在Java中使用这些概念。 首先,我们来理解什么是ActiveRecord。ActiveRecord是...
这个压缩包文件“学习mybatis_plus的基础使用.rar”显然是一个关于如何入门和使用Mybatis Plus的学习资源,适合初学者或者想要了解Mybatis Plus基本功能的开发者。 1. **Mybatis Plus概述**:Mybatis Plus在Mybatis...
本篇文章将带你轻松入门Mybatis,了解其基本配置和使用方法。 首先,我们来看如何创建SqlSessionFactory,它是Mybatis的核心组件,用于管理SqlSession并构建对象映射关系。SqlSessionFactory的创建有两种方式: 1....
作为一个入门指南,我们将深入探讨Mybatis的基本概念、配置、映射文件、动态SQL以及如何在实际项目中使用它。 1. **Mybatis概述** Mybatis是由Google Code托管(现已迁移至GitHub)的开源项目,由Clinton Begin...
Springboot整合Mybatis MyBatis 的前身是 Apache 的开源项目 iBatis。MyBatis 几乎可以代替 JDBC,是一个支持普通 SQL 查询,存储过程和高级映射的...可以帮助读者轻松掌握代码的内容,快速入门,持续深化,举一反三。
这个入门小demo是学习MyBatis的一个良好起点,通过它,我们可以快速理解MyBatis的基本操作和核心概念。 首先,让我们深入了解MyBatis的配置文件。在MyBatis中,主配置文件(通常命名为`mybatis-config.xml`)包含了...
本文将深入探讨 MyBatis-Plus 的核心特性,并指导如何快速入门,帮助开发者快速上手。 1. **无侵入性**: MyBatis-Plus 不改变原有 MyBatis 的架构,只需添加依赖,即可轻松集成。这意味着,如果你已经熟悉 ...
MyBatis 是一款深受开发者喜爱的持久层框架,它...通过配置SqlSessionFactoryBuilder和SqlSession,开发者可以轻松地集成MyBatis到项目中,提高开发效率。在快速入门MyBatis时,理解并掌握这些核心概念是非常重要的。
本教程通过"spring_mybatis.rar"压缩包,将详细讲解如何将Spring和MyBatis整合,实现数据库的增删改查操作,适合初学者入门。 首先,我们需要理解Spring和MyBatis的整合原理。Spring通过SqlSessionFactoryBean和...
**1、MyBatis简介** MyBatis起源于Apache的一个开源项目iBatis,在2010年由Apache Software Foundation迁移到Google Code并更名为MyBatis。之后在2013年11月,该项目迁移至GitHub进行维护。 MyBatis是一个优秀的...
3、Mybatis入门实例 Mybatis的入门通常从创建配置文件开始,包括mybatis-config.xml,其中包含了数据源、环境配置、映射器等信息。接着,创建Mapper接口和对应的XML映射文件,定义SQL语句和结果映射。通过...
【MyBatis 3.5.5 参考文档1】是关于MyBatis框架的一个详细指南,旨在帮助开发者理解和使用这个持久层框架。MyBatis允许开发者自定义SQL、存储过程,并提供了高级映射功能,简化了JDBC的繁琐工作,如参数设置和结果集...
1. **MyBatis 基础**:MyBatis 是一个基于 Java 的持久层框架,它的核心是 SQL 映射文件,通过 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 对象)映射成数据库中...
1. **动态SQL**:MyBatis3的一个显著特点就是支持动态SQL,这意味着开发者可以在SQL语句中使用条件判断,极大地提高了代码的灵活性和可读性。例如,你可以根据条件选择性地包含或排除某些WHERE子句。 2. **注解支持...
通过Eclipse的插件支持,我们可以轻松地配置和管理这些依赖关系,使得代码更加模块化。 Eclipse作为Java开发的主流IDE,提供了丰富的功能来支持Spring框架的开发。例如,Spring Tool Suite (STS) 是Eclipse的一个...
在mybatis-guice中,可以轻松地通过Guice的依赖注入机制获取Mapper实例,简化了Mapper的使用流程。 #### 6. @Transactional注解 ##### 6.1 引言 mybatis-guice支持使用`@Transactional`注解来简化事务管理。 ###...
2. **易于集成**:MyBatis可以轻松地与Spring等框架进行集成,使得在大型项目中使用更为方便。 3. **灵活的SQL语法**:MyBatis支持动态SQL,可以通过if、foreach等标签来构造复杂的SQL语句,提高了代码的可维护性。 ...