mybatis学习总结——入门基础

1、mybatis简介java

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

一、 简化JDBC的开发sql

二、 可以更好的完成ORM(对象关系映射)数据库

2、mybatis原理mybatis

一、经过sqlMapConfig.xml配置开发环境、事务配置文件等app

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

三、建立SqlSessionFactory ,加载sqlMapConfig.xml文件maven

四、建立SqlSession,操做实体类测试

3、入门准备3d

一、建立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);

二、建立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>

4、入门案例

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



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



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



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



5、项目目录




6、映射文件经常使用标签

一、查询语句

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

1)id 为sql的惟一标识

2)resultType为sql返回值类型

3)parameterType为sql传参类型

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

二、插入语句

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

三、更新语句

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

四、删除语句

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

7、扩展

一、别名

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

sqlMapConfig.xml



UserMapperConfig.xml



二、特殊字符

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

<![CDATA[

id < 2

]]>

三、${} 与 #{}区别

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

相关文章
相关标签/搜索