1、CRUD
1.1namespace
namespace中的包名必须和Dao/mapper接口包名统一
1.2select
抉择,查问语句
id:就是对应的namespace中的办法名resultType:Sql语句执行的返回值类型parameterType:参数类型
编写接口
User getUserById(int id);
编写接口对应的Mapper中语句
<select id="getUserById" parameterType="int" resultType="com.aostarit.entity.User"> select * from mybatis.user where id = #{id}</select>
测试:
@Test public void getUserById() { //取得sqlSession对象 SqlSession sqlsession = MybatisUtil.getSqlsession(); //执行SQL UserMapper mapper = sqlsession.getMapper(UserMapper.class); User user = mapper.getUserById(1); System.out.println(user); //敞开sqlSession sqlsession.close(); }
1.3Insert
<!--对象中的属性能够间接取出来 --><insert id="addUser" parameterType="com.aostarit.entity.User"> insert into mybatis.user (id, name, pwd) values (#{id},#{name},#{pwd})</insert>
1.4update
<update id="updateUser" parameterType="com.aostarit.entity.User"> update mybatis.user set name = #{name},pwd = #{pwd} where id = #{id}</update>
1.5delete
<delete id="deleteUser" parameterType="int"> delete from mybatis.user where id = #{id}</delete>
留神点:增删改查须要提交事务
分许谬误:
标签不要匹配谬误:例如:select标签中必须写select语句resources绑定mapper,须要应用门路程序配置文件必须符合规范!NullPointException,没有注册到资源!输入的xml文件中存在中文乱码问题maven资源没有导出问题!mybatis外围配置文件中mapper映射器门路不能带.,须要用/代替
<!--映射器--><mappers> <mapper resource="mapper/UserMapper.xml"/></mappers>
2、Map和含糊查问拓展
2.1假如咱们的实体类、或者数据库中的表、字段或者参数过多,咱们应该思考应用Map!
<insert id="addUserMap" parameterType="map"> insert into mybatis.user (id, name, pwd) values (#{userId},#{userName},#{userPwd})</insert>
public void addUser2() { //取得sqlSession对象 SqlSession sqlsession = MybatisUtil.getSqlsession(); UserMapper mapper = sqlsession.getMapper(UserMapper.class); HashMap<String, Object> userMap = new HashMap<String, Object>(); userMap.put("userId",10); userMap.put("userName","11234"); userMap.put("userPwd","1234343"); int result = mapper.addUserMap(userMap); if(result>0){ System.out.println("插入胜利"); } //提交事务 sqlsession.commit(); //敞开sqlSession sqlsession.close(); }
Map传递参数,间接在sql中取出对象即可
对象传递参数,间接在sql中取对象的属性即可
只有一个根本类型参数的状况下,能够间接在sql取到!
多个参数用Map,或者注解!
2.2含糊查问
1、Java代码执行的时候,传递通配符% %
List<User> userLike = mapper.getUserLike("%李%");
2、在sql拼接中应用通配符!
<select id="getUserLike" resultType="com.aostarit.entity.User"> select * from mybatis.user where name like "%"#{value}"%" </select>