这段时间有空,学习了一些技术,以前都是用Mybatis去实现持久层,里面的有一些方法不是很方便,并且配置很麻烦,
这个时候,我找到Mybatis-plus这个技术也是Mbatis不过是他的增强版本,加了很多的功能,可以更方便的去操作数据库
官网的地址:http://mp.baomidou.com/
官网上面的Mybatis-puls与Spring mvc集成的demo:https://gitee.com/baomidou/mybatisplus-spring-mvc
下载来就可以跑起来,里面的CRUD实例都是可以的
这个是官方文档写好的这个是实现的一种方式,这个是使用了Mybatis-plus中的特性不需要去写sql,已经帮我们去实现了sql写的部分
只需要在DAO层继承 BaseMapper接口 和在Service层继承IService接口就可以使用Mybatis-plus提供的方法
注解实现:
基本的CRUD我们可以不需要去手写sql,复杂的我们还是手写一点比较好,虽然Mybatis-plus提供了拼接的方法,但是不好,一不小心就会出现问题,所以我们使用注解去实现sql执行操作:
@Component public interface UserMapper extends SuperMapper<User> { /** * 查询所有: * @return */ @Select("SELECT * FROM user") public List<User> findAll(); /** * 查询数据: * @param userId * @return */ @Select("SELECT * FROM user WHERE id=#{userId}") public User findOne(int userId); /** * 添加: * @param user */ @Insert("INSERT INTO user(name,password) VALUES(#{name},#{password})") public void createUser(User user); /** * 修改: * @param user */ @Update("UPDATE user SET name=#{name},password=#{password}") public void update(User user); /** * 删除: * @param id */ @Delete("DELETE FROM user WHERE id=#{id}") public void delete(int id);
这个就是在DAO层使用注解去操作数据库
XML实现:
Mybatis-puls也提供了我们使用xml的方式去操作数据库
<resultMap id="userResult" type="com.baomidou.springmvc.model.system.User"> <id property="id" column="id"></id> <result property="name" column="name"></result> <result property="password" column="password"></result> </resultMap> <!-- 通用查询结果列--> <sql id="Base_Column_List"> id, name, age </sql> <select id="findAll" resultMap="userResult"> SELECT * FROM user </select> <insert id="insert" useGeneratedKeys="true" keyProperty="id" parameterType="com.baomidou.springmvc.model.system.User"> INSERT INTO user(name,password) values(#{name},#{password}) </insert> <update id="update" parameterType="com.baomidou.springmvc.model.system.User"> UPDATE user SET name=#{name} ,password=#{password} WHERE id=#{id}; </update> <delete id="delete" parameterType="int"> DELETE FROM user WHERE id=#{id} </delete>
这个3中方式都是可行的,看需求和喜好去适当的选择那种方式去用那个中方法,并且Mybatis-plus中有许多的插件可以用,在项目中这些插件已经足够我们使用的了,感兴趣的可以去官网学习。