Mybatis注解CRUD

x33g5p2x  于2021-09-24 转载在 其他  
字(1.4k)|赞(0)|评价(0)|浏览(237)

1、CRUD

我们可以在工具类创建的时候实现自动提交事务!

public class MybatisUtils{
	private static SqlSessionFactory sqlSessionFactory;
	
	static{
		try{
			//使用Mybatis第一步:获取sqlSessionFactory对象
			String resource = "mybatis-config.xml";
			InputStream inputStream = Resources.getResourceAsStream(resource);
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
			
		}catch(IOException e){
			e.printStackTrace();
		}
	
	}

	public static sqlSession getSqlSession(){
		return sqlSessionFactory.openSession(true);
	
	}

}

2.编写接口

public interface UserMapper{
	@Select("select * from user")
	List<User> getUsers();

	@Select("select * from user where id=#{id}")
	User getUserById(@Param("id") int id);
	
	@Insert("insert into user(id,name,pwd) values(#{id},#{name},#{pwd})")
	int addUser(User user);

	@Update("update user set name=#{name},pwd=#{pwd} where id=#{id}")
	int updateUser(User user);

	@Delete(delete from user where id=#{uid})
	int deleteUser(@Param("uid") int id);
}

3.编写核心配置文件

<mappers>
	<mapper class="com.jialidun.dao.UserDao"/>
</mappers>

【注意:我们必须要将接口注册绑定到我们的核心配置文件中!】

关于@Param(“xxx”)注解

  • 基本类型的参数或者String类型,需要加上
  • 引用类型不需要加
  • 如果只有一个基本类型的话,可以忽略,但是建议加上!
  • 我们在SQL中引用的就是@Param(“xxx”)中设定的属性名!

/#{}和${}的区别

- #{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值,自动
进行java类型和jdbc类型转换。
- #{}可以有效防止sql注入。
- #{}可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称。
- ${}表示拼接sql串,通过${}可以将parameterType 传入的内容拼接在sql中且不进行
jdbc类型转换
- ${}可以接收简单类型值或pojo属性值,如果parameterType传输单个简单类型值,${}括号中只能是value。

相关文章

微信公众号

最新文章

更多