mybatis框架介绍

    技术2026-04-21  13

    Mybatis框架

    mybatis是一个基于java的持久成框架,它内部封装了jdbc,使开发者只需要关注sql本身,而不需要花费精力去处理加载驱动,创建连接,创建statment等繁杂的过程

    orm object relational mapping 对象关系映射

    数据库表和实体类及实体类的属性对应起来让我们可以操作实体类就实现操作数据库表

    他是orm框架是对象关系映射

    <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency>

    mapper环境搭建注意事项

    mybatis的映射文件的位置必须和dao接口的包结构相同映射文件的mapper标签namespace属性的取值必须是dao接口的权限类名映射配置文件的操作配置(select),id 属性的取值必须是dao接口的方法名当我们遵从这些我们开发中无需在写dao的实现类 <build> <resources> <resource> <directory>src/main/resources</directory> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <!-- 是否替换资源中的属性--> <filtering>false</filtering> </resource> </resources> </build>

    需要添加build才可以读取resources下面的xml文件

    https://blog.csdn.net/kubichengxuyuanz/article/details/100989436

    在配置文件传入值需要些parameterType 返回值要写resultType

    #{} ${}区别

    ${} 是字符串拼接#{}占位符 可以防止sql注入

    insert 添加时可以有返回值返回添加的id值

    <insert id="saveUser" parameterType="com.offcn.domain.User"> //属性值 //id的列名 <selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER"> select last_insert_id(); </selectKey> insert into user(username,address,sex,birthday)values (#{username},#{address},#{sex},#{birthday}); </insert> <select id="findByName" parameterType="com.offcn.domain.QueryVo" resultType="com.offcn.domain.User"> select * from user where username like #{user.username} </select>

    如果他需要的数据不是它本身而是那个对象的属性时可以用user.username user是QueryVo的一个属性

    经常用在实际开发中 由多个对象做查询条件看,来实现数据的查询

    解决实体类属性和数据库列名不对应的两种方式

    1,写sql语句的时候用as去起别名

    2,resultMap进行匹配 有id和result属性 id标签里面还有property属性(pojo对象名)和 column属性(数据库字段名)

    Processed: 0.009, SQL: 9