(Mybatis)整合后原生Dao的实现

整合的具体内容和步骤:请看上一篇

步骤一:在ApplicationContext.xml 配置文件中添加,

<!-- 配置原生Dao实现
注意: class必须指定Dao实现类的全路径名称
-->
<bean id="userDao" class="com.jadan.dao.UserDaoImpl">
	<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>

 

步骤二:接口和实现类

     UserDao.java:

package com.jadan.dao;

import java.util.List;
import com.jadan.pojo.User;

public interface UserDao {
	// 通过id查用户
	public User findUserById(Integer id);
	
	// 通过用户名查询用户
	public List<User> findUserByUsername(String username);
	
	// 插入用户数据
	public void insertUser(User user);
	
	// 更改数据
	public void updateUserById(User user);
	
	// 删除数据
	public void delUserById(Integer id);
}

 

     UserDaoImpl.java:

package com.jadan.dao;

import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import com.jadan.pojo.User;

public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {
	// 通过id查询用户
	public User findUserById(Integer id) {
		// sqlSession是线程不安全的,所以它的最佳使用范围在方法体内
		SqlSession openSession = this.getSqlSession();
		User user = openSession.selectOne("test.findUserById", id);
		// 整合后会话归spring管理,所以不需要手动关闭
//		openSession.close();
		return user;
	}

	// 通过用户名查询用户
	public List<User> findUserByUsername(String username) {
		SqlSession openSession = this.getSqlSession();
		List<User> list = openSession.selectList("test.findUserByUsername", username);
		return list;
	}

	// 插入用户数据
	public void insertUser(User user) {
		SqlSession openSession = this.getSqlSession();
		openSession.insert("test.insertUser", user);
		// 记得提交事务
		openSession.commit();
	}

	// 更改用户数据
	public void updateUserById(User user) {
		SqlSession openSession = this.getSqlSession();
		openSession.update("test.updateUserById", user);
		openSession.commit();
	}
	
	// 删除用户
	public void delUserById(Integer id) {
		SqlSession openSession = this.getSqlSession();
		openSession.delete("test.delUserById", id);
		openSession.commit();
	}
}

 

步骤三:测试文件

     UserDaoTest.java:

package com.jadan.test;

import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.jadan.dao.UserDao;
import com.jadan.pojo.User;

public class UserDaoTest {
	private ApplicationContext applicationContext;
	
	// 在所有测试文件之前执行 
	@Before
	public void setUp() throws Exception {
		String configLocation = "ApplicationContext.xml";
		applicationContext = new ClassPathXmlApplicationContext(configLocation);
	}
	
	@Test
	public void testFindUserById() throws Exception {
		// 获取UserDao对象,getBean中的字符串是在ApplicationContext.xml中声明中
		UserDao userDao = (UserDao) applicationContext.getBean("userDao");
		
		User user = userDao.findUserById(1);
		System.out.println(user);
	}
}

 

下一篇:整合后Mapper接口代理实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mybatis-Plus 是 Mybatis 的增强工具,在 Mybatis 的基础上,提供了更加便捷的操作方式和更加强大的功能。使用 Mybatis-Plus 替换 DAO 层可以极大地提高开发效率和代码质量。 以下是使用 Mybatis-Plus 替换 DAO 层的步骤: 1. 添加依赖 在 pom.xml 文件中添加 Mybatis-Plus 的依赖: ```xml <!-- Mybatis-Plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.0</version> </dependency> ``` 2. 配置 Mybatis-Plus 在 application.yml 文件中配置 Mybatis-Plus: ```yaml mybatis-plus: # mapper 文件位置 mapper-locations: classpath:/mapper/**/*.xml # 实体类扫描路径 typeAliasesPackage: com.example.entity ``` 3. 创建实体类 使用 Mybatis-Plus 需要创建实体类,并且实体类需要继承 BaseMapper 接口。例如: ```java public interface UserMapper extends BaseMapper<User> { } ``` 4. 使用 Mybatis-Plus 进行 CRUD 操作 使用 Mybatis-Plus 进行 CRUD 操作非常简单,只需要在 Service 层中调用相应的方法即可。例如: ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User getUserById(Long id) { return userMapper.selectById(id); } @Override public List<User> getUserList() { return userMapper.selectList(null); } @Override public int addUser(User user) { return userMapper.insert(user); } @Override public int updateUser(User user) { return userMapper.updateById(user); } @Override public int deleteUser(Long id) { return userMapper.deleteById(id); } } ``` 以上就是使用 Mybatis-Plus 替换 DAO 层的步骤,使用 Mybatis-Plus 可以极大地简化 DAO 层的开发,提高代码质量和开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值