mybatis学习总结——入门基础

268 阅读2分钟

一、mybatis简介

MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及结果集的检索。

1、 简化JDBC的开发

2、 能够更好的完成ORM(对象关系映射)

二、mybatis原理

1、通过sqlMapConfig.xml配置开发环境、事务配置文件等

2、通过映射文件UserMapper.xml,将实体类与数据库表字段相关联

3、创建SqlSessionFactory ,加载sqlMapConfig.xml文件

4、创建SqlSession,操作实体类

三、入门准备

1、创建user表

CREATE TABLE user(

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(255),

addrses VARCHAR(255),

age INT

)

INSERT INTO `user` VALUES(NULL, '刘一','北京',28);

INSERT INTO `user` VALUES(NULL, '陈二','上海',32);

INSERT INTO `user` VALUES(NULL, '张三','广州',26);

2、创建maven工程mybatis

配置pom.xml文件,引入mybatis所用的依赖包

<dependencies>

<!--添加mysql驱动程序依赖 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.40</version>

</dependency>

<!--添加junit依赖 -->

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.11</version>

</dependency>

<!--添加mybatis核心依赖 -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.2.8</version>

</dependency>

<!--添加日志包依赖 -->

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.17</version>

</dependency>

</dependencies>

四、入门案例

1、在/mybatis/src/main/resources目录下创建sqlMapConfig.xml文件



2、在/mybatis/src/main/resources/mapper目录下配置UserMapper.xml文件



3、在/mybatis/src/main/java/mybatis/day01/pojo目录下创建User实体类



4、在/mybatis/src/test/java/day01目录下创建Test1.java测试类



五、项目目录




六、映射文件常用标签

1、查询语句

<select id="" resultType="" parameterType=""></select>

1)id 为sql的唯一标识

2)resultType为sql返回值类型

3)parameterType为sql传参类型

注意:属性名和类名必须一致才能完成映射

2、插入语句

<insert id="" parameterType=""></insert>

3、更新语句

<update id="" parameterType=""></update>

4、删除语句

<delete id="" parameterType=""></delete>

七、扩展

1、别名

为简化开发,可以在sqlMapConfig.xml文件中使用typeAliases为需要映射的实体类全路径设置包名

sqlMapConfig.xml



UserMapperConfig.xml



2、特殊字符

xml文件的特殊字符需要用<![CDATA[]]>包起来
如 id < 2 需要写成

<![CDATA[

id < 2

]]>

3、${} 与 #{}区别

推荐使用#{},原因:${}执行底层是Statement ,有sql注入风险,#{}执行底层是PreparedStatement