什么是 MyBatis?
MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架。
MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索。
MyBatis 可以使用简单的XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
<?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="com.mybatis.test.IUserOperation"> <!-- select语句 --> <select id="selectUserByID" parameterType="int" resultType="User"> select * from `user` where user.id = #{id} </select> <!-- 定义的resultMap,可以解决类的属性名和数据库列名不一致的问题--> <!-- <resultMap type="User" id="userResultMap"> <id property="id" column="user_id" /> <result property="userName" column="user_userName" /> <result property="userAge" column="user_userAge" /> <result property="userAddress" column="user_userAddress" /> </resultMap> --> <!-- 返回list的select语句,注意 resultMap的值是指向前面定义好的 --> <!-- <select id="selectUsersByName" parameterType="string" resultMap="userResultMap"> select * from user where user.userName = #{userName} </select> --> <select id="selectUsersByName" parameterType="string" resultType="User"> select * from user where user.userName = #{userName} </select> <!--
执行增加操作的SQL语句。
id和parameterType分别与IUserOperation接口中的addUser方法的名字和参数类型一致。 useGeneratedKeys设置为"true"表明要MyBatis获取由数据库自动生成的主键;
keyProperty="id"指定把获取到的主键值注入到User的id属性
-->
<insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id"> insert into user(userName,userAge,userAddress) values(#{userName},#{userAge},#{userAddress}) </insert>
<!-- id:接口方法名 parameterType:参数类型 --> <update id="updateUser" parameterType="User" > update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id} </update>
<!-- id:接口方法名 parameterType:参数类型 --> <delete id="deleteUser" parameterType="int"> delete from user where id=#{id} </delete> </mapper>