参考文献https://mybatis.org/mybatis-3/zh/getting-started.html
1、namespace
<!--namespace=绑定一个对应的Dao/Mapper接口--> 如<mapper namespace="com.qin.dao.UserDaoMapper">第一步 编写接口
public interface UserDaoMapper { User getUserById(int id); }第二步在对应的xml文件的mapper中编写SQL语句
<select id="getUserList" resultMap="User"> select *from user </select>id:对象接口中的方法名 resultMap:对应查询的返回值类型
第三步测试
public class UserDaoTest { @Test public void getUserLike(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); List<User> userList = mapper.getUserList(); for (User user : userList) { System.out.println(user); } sqlSession.close(); } }第一步 写接口的方法
User getUserById(int id);第二步在对应的xml文件的mapper中编写SQL语句
<select id="getUserById" resultType="User"> select * from user where id=#{id} </select>第三步测试
@Test public void getUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); User userById = mapper.getUserById(1); System.out.println(userById); sqlSession.close(); }第一步 写接口
Inset返回值为int类型 传入一个实体类
//insert一个用户 int addUser(User user);第二步 在对应的Mapper文件中编写SQL语句
//在Insert中返回值类型可以用写
<insert id="addUser" parameterType="User"> insert into user (id, name, pwd) values (#{id},#{name},#{pwd} ); </insert>第三步 写测试
@Test public void addUser(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user = new User(); user.setId(4); user.setName("刘德华"); user.setPwd("12345"); int i = mapper.addUser(user); if (i>0){ System.out.println("添加成功"); } sqlSession.close(); }第一步 写接口
int updateUser(User user);第二步在对应的xml文件的mapper中编写SQL语句
<update id="updateUser" parameterType="com.qin.pojo.User"> update user set name=#{name},pwd=#{pwd} where id = #{id} ; </update>第三步 写测试
@Test public void update(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user= new User(2, "wangwu", "111"); int i = mapper.updateUser(user); sqlSession.commit(); }第一步 写接口
int deleteUser(int id);第二步在对应的xml文件的mapper中编写SQL语句
<delete id="deleteUser" parameterType="int"> delete from user where id = #{id}; </delete> @Test public void Delete(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); int i = mapper.deleteUser(1); sqlSession.commit(); sqlSession.close(); }假设,我们的实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用Map!
//万能的Map int addUser2(Map<String,Object> map); <!--对象中的属性,可以直接取出来 传递map的key--> <insert id="addUser" parameterType="map"> insert into mybatis.user (id, pwd) values (#{userid},#{passWord}); </insert> @Test public void addUser2(){ SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); Map<String, Object> map = new HashMap<String, Object>(); map.put("userid",5); map.put("passWord","2222333"); mapper.addUser2(map); sqlSession.close(); } Map传递参数,直接在sql中取出key即可! 【parameterType="map"】对象传递参数,直接在sql中取对象的属性即可!【parameterType=“Object”】
只有一个基本类型参数的情况下,可以直接在sql中取到!
多个参数用Map,**或者注解!