mybatis 支持注解 sql 语句,如:
package com.iandtop.jxy.mapper;
import com.iandtop.saas.smartpark.vo.UserVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @author andyzhao
*/
@Mapper
public interface LoginMapper {
@Select("select count(*) from sm_user")
Integer retrieveAllCount() throws RuntimeException;
@Select("select * from sm_user WHERE user_password = #{password} and user_code = #{code}")
List<UserVO> retrieveByCodeAndPwd(@Param("code") String code, @Param("password") String password) throws RuntimeException;
@Select("select * from sm_user WHERE user_code = #{code}")
List<UserVO> retrieveByCode(@Param("code") String code) throws RuntimeException;
@Select("SELECT * FROM SM_USER WHERE pk_user = #{pk_user}")
UserVO findByPK(@Param("pk_user") String pk_user);
}
但是常用的还是 xml 方式,比如:
<?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.iandtop.jxy.mapper.LoginMapper">
<select id="retrieveAllCount" resultType="java.lang.Integer">
select count(*) from sm_user
</select>
<select id="retrieveByCodeAndPwd" resultType="com.iandtop.saas.smartpark.vo.UserVO">
select * from sm_user WHERE user_password = #{password} and user_code = #{code}
</select>
<select id="retrieveByCode" resultType="com.iandtop.saas.smartpark.vo.UserVO">
select * from sm_user WHERE user_code = #{code}
</select>
</mapper>
到底选哪一种呢?我选 xml:
- 首先官方也是推荐使用 xml
- 注解方式拼接动态 sql 功能有限
- java 又和 sql 搞到一起了感觉很不爽
网上有说“按需使用",大致意思就是说如果”复杂“就用 xml,剩下的就用注解。那为什么这么复杂,干嘛不干脆用 xml 就得了?
网上有说“注解和 xml 的一起使用”,大致就是一个工程一会用注解一会用 xml。那为什么这么复杂,干嘛不干脆用 xml 就得了?
总结:
- 注解也许有很多优点,但是哪位同胞可以好心告诉我下?
- Java 各个框架太多,能简洁干嘛要复杂?我就奇了怪了。如果整天只是满脑子的各种框架的使用和配置方法那真是弱爆了。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于