MyBatis
文章平均质量分 64
NormalConfidence_Man
这个作者很懒,什么都没留下…
展开
-
【MyBatis】ResultMap结果集映射
之前的例子中,pojo类的属性和数据库表的属性列的名字是一一对应的,这样MyBatis会自动将pojo类的属性和数据库表属性联系起来,但是实际生产环境中,pojo类的属性不一定和数据库表一一对应,这时候需要我们手动建立映射关系。ResultMap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了。我们可以看到,在数据库中密码字段称为pwd,在pojo类中称为password。ResultMap是一个结果集映射,可以将数据库的属性集和pojo类的属性集进行映射。原创 2023-04-10 17:56:23 · 103 阅读 · 0 评论 -
MyBatis的CRUD
虽然dao层中使用的insertUser的参数是一个User对象,但是mybatis在mapper.xml中完成自动匹配,将传入的user对象中的id,name,pws属性和#{id}, #{name}, #{pws}对应起来,从而完成对sql语句的填充。需要注意的是,使用insert、delete、update等语句时,需要使用sqlSession.commit()提交事务才能完成更改。在SQL语句中,可以使用#{parameter}的方式传入参数,参数名字应该和Dao层中的查询函数的参数保持一致。原创 2023-04-08 16:31:33 · 337 阅读 · 0 评论 -
【MyBatis】SqlSessionFactoryBuilder、SqlSessionFactory和SqlSession的关系
SqlSession 的实例不是线程安全的,因此是不能被共享的,所以它的最佳的作用域是请求或方法作用域。绝对不能将 SqlSession 实例的引用放在一个类的静态域,甚至一个类的实例变量也不行。也绝不能将 SqlSession 实例的引用放在任何类型的托管作用域中,比如 Servlet 框架中的 HttpSession。换句话说,每次收到 HTTP 请求,就可以打开一个 SqlSession,返回一个响应后,就关闭它。有很多方法可以做到,最简单的就是使用单例模式或者静态单例模式。原创 2023-04-08 15:15:57 · 163 阅读 · 0 评论 -
【MyBatis】Spring整合MyBatis教程
持久层的对象是为数据进行持久化的层级。数据持久化就是将数据存储到数据库中,存入到数据库的数据称之为持久化数据,与之相对的瞬时数据则是存在内存中的数据,在内存中的数据只要断电就会消失。因此持久层的类和对象需要和数据库中的表和实体对应起来。而MyBatis则是用于完成持久化工作的持久层框架,Dao层则是用于完成持久化工作的层级。原创 2023-04-08 15:00:16 · 381 阅读 · 0 评论