一:
Mybatis:是一个持久层的框架,之前叫做ibatis。
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。
MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。
MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
二:
1.新建一个maven工程
2.配置依赖
<dependencies> <!-- 添加MySQL数据库驱动依赖包. --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.30</version> </dependency> <!-- 添加mybatis依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <!--log4j--> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>
3.导入jdbc.properties 和log4j.properties
4.新建mybatis-config.xml(mybatis配置)文件,并且复制如下内容
<?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> <!-- 加载属性文件 --> <properties resource="jdbc.properties"></properties> <!-- 和spring整合后 environments配置将废除 --> <environments default="development"> <environment id="development"> <!-- 使用jdbc事务管理,事务控制由mybatis --> <transactionManager type="JDBC" /> <!-- 数据库连接池,由mybatis管理 --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> </environments> <!-- 加载配置文件 --> <mappers> <mapper resource="xxxxxxxx" /> </mappers> </configuration>
5.编写 mapper接口 && mapper.xml(可以理解为mapper.xml是mapper接口的实现类)
<?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="接口地址"> </mapper>
6.编写测试类
InputStream cof = Resources.getResourceAsStream("mybatis-config.xml"); // 创建会话工厂 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(cof); SqlSession sqlSession = sqlSessionFactory.openSession(); XXX mapper = sqlSession.getMapper(XXX.class);
三:
mapper配置文件的三种方式:
<!-- 第一种方式:通过resource指定 --> <!--<mapper resource="com/dy/dao/userDao.xml" /> --> <!-- 第二种方式, 通过class指定接口,进而将接口与对应的xml文件形成映射关系 不过,使用这种方式必须保证 接口与mapper文件同名(不区分大小写), 我这儿接口是UserDao,那么意味着mapper文件为UserDao.xml --> <!-- <mapper class="com.dy.dao.UserDao"/> --> <!-- 第三种方式,直接指定包,自动扫描,与方法二同理 --> //常用 <!-- <package name="com.dy.dao"/> -->
四:增删查改
<select id="方法名字" parameterType="参数类型(可忽略)" resultType="返回类型"> sql </select> <delete id="方法名字" parameterType="参数类型(可忽略)"> sql </delete> <update id="方法名字" parameterType="参数类型(可忽略)"> sql </update> <insert id="方法名字" parameterType="参数类型(可忽略)" keyProperty="注入id属性(可忽略)" useGeneratedKeys="true(可忽略)"> sql </insert>
五:别名配置
<typeAliases> <!--配置单个--> <typeAlias alias="xxx" type="xxx"/> <!--配置多个--> <package name="包名"/> </typeAliases>