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 List
findUserAll() { 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文件添加
junit
junit
test
在UserDao右键点击创建junit测试类,路径选择到/mybatis01/src/test/java
完成对上先写的方法测试
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() {		List
findUserAll = userDao.findUserAll(); for (User user : findUserAll) { System.out.println(user.toString()); } } }

转载地址:https://kevin.blog.csdn.net/article/details/78683177 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:SSM项目从零开始到入门008-mybatis传递多个参数问题
下一篇:单点登录实现

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月26日 06时42分15秒