CREATETABLEuser(
id BIGINTPRIMARYKEYAUTO_INCREMENT,
name VARCHAR(255)NOTNULL,
email VARCHAR(255)UNIQUENOTNULL);CREATETABLEorder(
id BIGINTPRIMARYKEYAUTO_INCREMENT,
user_id BIGINT,
amount DECIMAL(10,2)NOTNULL,FOREIGNKEY(user_id)REFERENCESuser(id));
3. 实体类(User.java & Order.java)
// User.javapublicclassUser{privateLong id;privateString name;privateString email;// Getters and Setters}// Order.javapublicclassOrder{privateLong id;privateLong userId;privateBigDecimal amount;// Getters and Setters}
importorg.apache.ibatis.annotations.*;importjava.util.List;publicinterfaceUserMapper{// === 基础CRUD ===@Insert("INSERT INTO user (name, email) VALUES (#{name}, #{email})")@Options(useGeneratedKeys =true, keyProperty ="id")voidinsertUser(User user);// 新增用户@Select("SELECT * FROM user WHERE id = #{id}")UserselectUserById(Long id);// 根据ID查询@Update("UPDATE user SET name = #{name}, email = #{email} WHERE id = #{id}")voidupdateUser(User user);// 更新用户@Delete("DELETE FROM user WHERE id = #{id}")voiddeleteUser(Long id);// 删除用户// === 动态SQL ===@Select("SELECT * FROM user WHERE name LIKE CONCAT('%', #{keyword}, '%')")List<User>searchUsersByName(@Param("keyword")String keyword);// 模糊查询// === 关联查询 ===@Results({@Result(id =true, column ="id", property ="id"),@Result(column ="name", property ="name"),@Result(column ="email", property ="email"),@Result(property ="orders",
column ="id",
javaType =List.class,
many =@Many(select ="com.example.mapper.OrderMapper.selectOrdersByUserId"))})@Select("SELECT * FROM user WHERE id = #{id}")UserselectUserWithOrders(Long id);// 通过ID查询用户及其订单// === 分页 ===@Select("SELECT * FROM user LIMIT #{offset}, #{limit}")List<User>selectUsersByPage(@Param("offset")int offset,@Param("limit")int limit
);// === 事务管理 ===@Insert("INSERT INTO user (name, email) VALUES (#{name}, #{email})")@SelectKey(statement ="SELECT LAST_INSERT_ID()", keyProperty ="id",
before =false, resultType =Long.class)voidinsertWithTransaction(User user);// 带事务的插入}