您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
03-mybatis注解开发-注解完成基本的crud
发布时间:2025-02-03 09:57:18编辑:雪饮阅读()
-
接续上篇,只不过这次不用UserMapper.xml而是采取注解的方式,所以将之前的resources/sp29/mapper/UserMapper.xml删除就行了。实际连resources/sp29/删除都是可以的。
然后我们之前的sqlMapConfig.xml中将配置接口扫描所在的接口所在的包,因为我们将为接口进行注解。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties"/>
<typeAliases>
<typeAlias type="sp29.domain.User" alias="user"/>
</typeAliases>
<typeHandlers>
<typeHandler handler="sp29.handler.DateTypeHandler"/>
</typeHandlers>
<environments default="developement">
<environment id="developement">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--加载映射关系-->
<mappers>
<!--指定接口所在的包-->
<package name="sp29.dao"/>
</mappers>
</configuration>
然后我们的UserMapper.java这个接口中将原本在UserMapper.xml中的sql都对应注解过来。
package sp29.dao;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import sp29.domain.User;
import java.util.List;
public interface UserMapper {
@Select("select * from user")
public List<User> findAll();
@Select("select * from user where id=#{id}")
public User findById(int id);
@Delete("delete from user where id=#{id}")
public void delete(int id);
@Update("update user set username=#{username},password=#{password} where id=#{id}")
public void update(User user);
@Insert("insert into user values(#{id},#{username},#{password},'','',#{birthday})")
public void save(User user);
}
然后之前的测试类MapperTest.java保持不变:
package sp29;
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 sp29.dao.UserMapper;
import sp29.domain.User;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MapperTest {
private UserMapper mapper;
@Before
public void before() throws IOException{
InputStream resourceAsStream= Resources.getResourceAsStream("sqlMapConfig.xml");
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourceAsStream);
SqlSession sqlSession=sqlSessionFactory.openSession(true);
mapper=sqlSession.getMapper(UserMapper.class);
}
@Test
public void testSave(){
User user=new User();
user.setUsername("kasumi");
user.setPassword("abc");
mapper.save(user);
}
@Test
public void testUpdate(){
User user=new User();
user.setId(17);
user.setUsername("kasumi");
user.setPassword("456");
mapper.update(user);
}
@Test
public void testDelete(){
mapper.delete(17);
}
@Test
public void testFindById(){
User user=mapper.findById(1);
System.out.println(user);
}
@Test
public void testFindAll(){
List<User> userList=mapper.findAll();
for (User user:userList) {
System.out.println(user);
}
}
}
再次进行crud测试即可。
关键字词:mybatis,注解