mybatis开发之mapper接口开发(无需实现类)
2023年7月24日发(作者:)
mybatis开发之mapper接⼝开发(⽆需实现类)前⾔:接上⼀篇(),前⾯不变,对映射⽂件进⾏修改,另⼀种实现mapper接⼝开发的⽅式⼀.改变之处参照上⼀篇对配置,本篇配置如下(在config⽬录下创建⼀个mapper⽂件夹,创建⽂件): and sex = #{} and username LIKE CONCAT(CONCAT('%', #{me}), '%') id=#{item_id} -- 将插⼊的最后⼀条数据的主键返回给要插⼊的对象user中,此⽅法只对主键⾃增有效 SELECT LAST_INSERT_ID() INSERT INTO USER(username,password,sex,address) VALUES (#{username},#{password},#{sex},#{address}) DELETE FROM USER WHERE username = #{username} DELETE FROM USER WHERE id = #{id} UPDATE USER SET username=#{username},password=#{password},sex=#{sex},address=#{address} WHERE id=#{id} 当然这个⽂件需要在⽂件中引⼊ ⼆.mapper接⼝ public interface UserDaoMapper { /** * 根据id查询User表记录 * @param id * @return * @throws Exception */ public User findUserById(int id) throws Exception; /** * 根据名称查询 * @param name * @return * @throws Exception */ public List findUserByName(String name)throws Exception; /** * 通过扩展的po类添加扩展查询条件来查询更多的信息(更多的信息以另外扩展的po类来接收) * @param userQueryVo * @return * @throws Exception */ public List findUserList(UserQueryVo userQueryVo)throws Exception; /** * 综合信息查询出总数 * @param userQueryVo * @return * @throws Exception */ public int findUserCount(UserQueryVo userQueryVo)throws Exception; /** * 向User表添加记录 * @param user * @throws Exception */ public void insertUser(User user) throws Exception; /** * 删除user表中的记录 * @param name * @throws Exception */ public void deleteUserByName(String name) throws Exception; /** * 删除user表中的记录 * @param id * @throws Exception */ public void deleteUserById(int id) throws Exception; /** * 更新user表中的记录 * @param user * @throws Exception */ public void updateUser(User user)throws Exception;}三.测试使⽤junit来测试,idea需要下载junit插件,使⽤⽅法:在接⼝的java⽂件界⾯快捷键 alt+insert 弹出创建test类,注意这⾥⾯要选择创建@before/setUp()⽅法,因为在测试之前需要创建出SqlSessionFactory的实例,进⽽使⽤它创建SqlSession,由于SqlSession是线程不安全的,所以我们可以在⽅法体内创建SqlSession.测试类如下public class UserDaoMapperTest { private SqlSessionFactory sqlSessionFactory; @Before public void setUp() throws Exception { String resource = ""; InputStream inputStream = ourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); }@Test public void findUserById() throws Exception { SqlSession sqlSession = ssion(); UserDaoMapper mapper = per(); User user = erById(1); n(user); }}总结:使⽤mapper代理开发,就是在映射⽂件()中的namespace配置为mapper接⼝的全路径名.映射⽂件的配置有很多⼩的知识点,⽐如占位符是#{},也可以是${},但可能引起sql注⼊.还有复⽤sql语句等等⼩知识点,配置⽂件中写的也很详细了.mybatis框架的特点就是sql语句需要我们⾃⼰去写,它的优点就是在⾃动将参数信息映射成对应的类,这样相较于纯粹的jdbc开发就不需要再去写prepsredstatement设置参数,都是⽤映射来完成.
发布者:admin,转转请注明出处:http://www.yc00.com/news/1690193430a312439.html
评论列表(0条)