目录
2.1 xxxMapper.xml在核心文件中的配置,有两种方式,推荐包的形式(就是把xxxMapper.xml全都下载这个包下面)
Github : https://github.com/mybatis/mybatis-3
Mybatis入门必看文档: mmybatis – MyBatis 3 | 入门
数据持久化
why? 持久化
Dao层,service层,Controller层
综上所述:记得利用try catch 在 finally中 执行 sqlsession.close()
如果我们操作的数据库字段多,比较容易混淆,可以使用map 来实现 操作如下
// 万能的map 接口 public int addUser2(Map<String,Object> map);
//此时#{} 里面的内容就是 String 所代替的内容 赋值的时候设置好value值与其对应 value的类型与数据库中的 字段类型对应 <insert id="addUser2" parameterType="map"> insert into user(id,passwd) values(#{userId},#{password}) </insert>
@Test public void testMapAddUser(){ SqlSession sqlSession = SqlSessionUtils.getSqlSession(); UserDaoMapper mapper = sqlSession.getMapper(UserDaoMapper.class); Map<String,Object> map =new HashMap<>(); map.put("userId",7); map.put("password",999999); int i = mapper.addUser2(map); System.out.println(i); sqlSession.commit(); sqlSession.close(); }
注意:environments 标签内 可以配置多个环境 也就是数据库 需要哪一个只需要修改DEFAULT属性即可 。
11.Mybatis核心配置文件之<settings></settings>_羊肉串学爪哇的博客-CSDN博客
常用的
MapperRegistry 注册绑定我们的Mapper文件:
生命周期和作用域, 是至关重要的 因为措施的使用会导致严重的后果
SqlsessinFactoryBuilder
SqlsessinFactory
Sqlsessin
数据库:
实体类:
查询的password 为null 说明字段名不匹配
解决办法:
- <select id="getUserById" resultType="com.qiku.pojo.User">
- select id,username,passwd as password
- from user where id=#{id}
- </select>
resultMap 映射( column 是数据库中的字段 而property 是实体类中的字段 一样的其实可以不用映射比如 id 和name)
- <resultMap id="UserMap" type="user">
- <id column="id" property="id"></id>
- <result column="username" property="username"></result>
- <result column="passwd" property="password"></result>
- </resultMap>
-
- <select id="getUserById" resultMap="UserMap">
- select *
- from user where id=#{id}
- </select>
如果一个数据库操作,出现了日常,日志就是最好的助手 以前用debug 现在就用日志工厂
- <settings>
- <!-- 日志工厂注意 大小写和 空格 任意出错都用不了-->
- <setting name="logImpl" value="STDOUT_LOGGING"/>
- </settings>