(四)MyBaits使用Map实现插入和查询
当数据库中的表字段过多的时候,考虑使用Map的方式进行插入。
-
环境
使用了MyBatisUtils类封装MyBatis功能,MyBatisUtils类在笔记(二)中
-
实现
-
insert
Mybatis-config.xml文件不变
UserMapper.xml增加以下代码
<insert id="insert2" parameterType="map"> insert into mybatis.user values(#{idd},#{namee},#{pwdd}) </insert>
测试代码
@Test public void test(){ //获取session对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); Map<String,Object> map = new HashMap<String,Object>(); map.put("idd",10); map.put("namee","zhang"); map.put("pwdd","28373"); int res = userMapper.insert2(map); if(res>0) System.out.println("succeed"); sqlSession.commit(); sqlSession.close(); }
测试结果,插入成功!
-
Select
-
Mybatis-config.xml文件不变
-
UserMapper.xml增加以下代码
<select id="getUserById2" parameterType="map" resultType="top.zhang.pojo.User"> select * from user where id=#{userid} and name=#{username} </select>
-
测试代码
@Test public void test(){ //获取session对象 SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); Map<String,Object> map = new HashMap<String,Object>(); map.put("userid",10); map.put("username","zhang"); User user = userMapper.getUserById2(map); System.out.println(user.toString()); sqlSession.commit(); sqlSession.close(); }
-
查询成功
-
-