SSM项目从零开始到入门007-使用接口完成增删改查操作
发布日期:2021-06-30 16:29:01
浏览次数:3
分类:技术文章
本文共 4763 字,大约阅读时间需要 15 分钟。
使用接口完成增删改查操作
本文将继续前边的例子完成CRUD(增加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)首字母简写)的操作。
CRUD主要被用在描述软件系统中数据库或者持久层的基本操作功能。
在之前的demo例子mybatis测试类里直接调用mapper文件完了一个查询操作,现在我们使用后接口进行方法的定义、
首先新建立dao接口包和接口实现类包以及对应实体的UserDao接口和UserDaoImpl实现类
在接口中定义CRUD的操作方法
package com.jsx.dao;import java.util.List;import com.jsx.pojo.User;public interface UserDao { /** * 添加用户 * @param user */ public void addUser(User user); /** * 根据id删除用户 * @param id */ public void deleteUser(Long id); /** * 更新用户信息 * @param user */ public void updateUserById(User user); /** * 根据用户id返回用户信息 * @param id * @return */ public User findUserById(Long id); /** * 根据用户名和密码返回用户信息 * @param username * @param password * @return */ public User findUserByNameAndPwd(User user); /** * 返回所有用户信息 * @return List*/ public List findUserAll();}
然后去实现类实现接口中定义的方法,由于方法执行需要sqlSession,所以要把sqlSession已构造函数的形式传入
然后实现所有方法
package com.jsx.dao.impl;import java.util.List;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.session.SqlSession;import com.jsx.dao.UserDao;import com.jsx.pojo.User;public class UserDaoImpl implements UserDao{ private SqlSession sqlSession; public UserDaoImpl(SqlSession sqlSession){ this.sqlSession = sqlSession; } @Override public void addUser(User user) { sqlSession.insert("UserMapper.addUser",user); } @Override public void deleteUserById(Long id) { sqlSession.delete("UserMapper.deleteUserById",id); } @Override public void updateUser(User user) { sqlSession.update("UserMapper.updateUser",user); } @Override public User findUserById(Long id) { return sqlSession.selectOne("UserMapper.findUserById", id); } @Override public User findUserByNameAndPwd(User user) { return sqlSession.selectOne("UserMapper.findUserByNameAndPwd",user); } @Override public ListfindUserAll() { return sqlSession.selectList("UserMapper.findUserAll"); }}
在UserMapper配置文件定义接口方法实现的sql语句
INSERT INTO t_user(user_name,password,name,age,sex,birthday,created,updated) VALUES ( #{userName}, #{password}, #{name},#{age}, #{sex}, #{birthday}, NOW(),NOW()); delete from t_user where id = #{id} UPDATE t_user SET user_name = #{userName}, password = #{password}, name = #{name}, age = #{age}, sex = #{sex}, birthday = #{birthday}, updated = NOW() WHERE (id = #{id});
添加junit支持,并创建UserDao的测试类
在pom.xml文件添加
在UserDao右键点击创建junit测试类,路径选择到/mybatis01/src/test/javajunit junit test
完成对上先写的方法测试
package com.jsx.test;import static org.junit.Assert.fail;import java.io.InputStream;import java.util.Date;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Before;import org.junit.Test;import com.jsx.dao.UserDao;import com.jsx.dao.impl.UserDaoImpl;import com.jsx.pojo.User;public class UserDaoTest { SqlSession sqlSession =null; UserDao userDao =null; @Before public void setUp() throws Exception { //mybatis配置文件 String resource = "mybatis-config.xml"; //读取配置文件信息 InputStream is = Resources.getResourceAsStream(resource ); //构件SqlSessionFactory SqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is); //获取sqlSession sqlSession = sf.openSession(); userDao = new UserDaoImpl(sqlSession); } @Test public void testAddUser() { User user = new User(); user.setuserName("dsadsad"); user.setPassword("sadsadsa"); user.setName("1234dsa"); user.setAge(18); user.setSex(2); user.setBirthday(new Date()); userDao.addUser(user); System.out.println(user.toString()); sqlSession.commit(); } @Test public void testDeleteUserById() { userDao.deleteUserById(36l); sqlSession.commit(); } @Test public void testUpdateUser() { User user = userDao.findUserById(37l); user.setName("落尘曦1"); userDao.updateUser(user); sqlSession.commit(); } @Test public void testFindUserById() { User user = userDao.findUserById(26l); System.out.println(user.toString()); } @Test public void testFindUserByNameAndPwd() { User user = new User(); user.setuserName("123"); user.setPassword("123"); user = userDao.findUserByNameAndPwd(user); System.out.println(user.toString()); } @Test public void testFindUserAll() { ListfindUserAll = userDao.findUserAll(); for (User user : findUserAll) { System.out.println(user.toString()); } } }
转载地址:https://kevin.blog.csdn.net/article/details/78683177 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月26日 06时42分15秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Ubuntu更新后终端中字体的颜色全是白色
2019-04-30
vscode git
2019-04-30
基于MATLAB的二进制数字调制与解调信号的仿真——2PSK
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——DSB
2019-04-30
HDU - 1166 敌兵布阵 (树状数组模板题/线段树模板题)
2019-04-30
CodeForces - 456C Boredom (dp)
2019-04-30
CodeForces - 675A Infinite Sequence(简单数论 细节)
2019-04-30
CodeForces - 1042B Vitamins (思维)
2019-04-30
ACM 2013 长沙区域赛 Collision (几何)
2019-04-30
ACM 2014 鞍山区域赛 E - Hatsune Miku (dp)
2019-04-30
反向传播&梯度下降 的直观理解程序(numpy)
2019-04-30
CodeForces - 931B World Cup (思维 模拟)
2019-04-30
ACM 2017 北京区域赛 J-Pangu and Stones(区间dp)
2019-04-30
java常用类 String面试题
2019-04-30
Windows10下的powershell美化教程
2019-04-30
利用ffmpeg合并音频和视频
2019-04-30
select下拉框分组展示插件的使用--(select-mania插件的使用)
2019-04-30