namespace

namesapce中的包名需与Dao/Mapper接口的包名一致

SELCET

选择,查询语句

  • id:对应namespace中的方法;
  • resultType:Sql语句执行的返回值(Class);
  • parameterType:参数类型;

INSERT&UPDATE&DELETE

编写步骤

  1. 编写接口
    // 根据ID查询用户
User getUserById(int id); // Insert User
int addUser(User user); // Delete User By ID
int delUser(int id); // Update User
int updateUser(User user);
  1. 编写mapper中的sql语句
    <!--根据ID查询用户-->
<select id="getUserById" parameterType="int" resultType="cn.iris.pojo.User">
SELECT * FROM user WHERE id = #{id}
</select> <!--添加用户
对象中的属性可直接取出()无需调用方法-->
<insert id="addUser" parameterType="cn.iris.pojo.User">
INSERT INTO user(id, name, pwd) VALUES (#{id},#{name},#{pwd})
</insert> <!--根据ID删除用户-->
<delete id="delUser" parameterType="int">
DELETE FROM user WHERE id=#{id}
</delete> <!--根据ID更新用户信息-->
<update id="updateUser" parameterType="cn.iris.pojo.User">
UPDATE user SET name=#{name},pwd=#{pwd} WHERE id=#{id}
</update>
  1. 测试
    @Test
public void getUserByIdTest() {
SqlSession sqlSession = MybatisUtils.getSqlSession(); UserMapper mapper = sqlSession.getMapper(UserMapper.class); User user = mapper.getUserById(1);
System.out.println(user); sqlSession.close();
}
@Test
public void addUserTest(){略}
@Test
public void updateUserTest(){略}
@Test
public void deleteUserTest(){略}

所有增删改操作均需要提交事务(sqlsession.commit)!!!

排错指南

  • namespace 包名用'.'
<!--绑定对应的Dao/Mapper接口-->
<mapper namespace="cn.iris.dao.UserMapper">
  • Mybatis配置文件
    <mappers>
<mapper resource="cn/iris/dao/userMapper.xml"/>
</mappers>

模糊查询

  • Java代码执行时带上通配符(xml中#{}识别为变量,防止sql注入)
List<User> userList = mapper.getUserListLike("%艾%");
  • sql拼接中加入通配符
SELECT * FROM user WHERE name like "%"+#{value}+"%";

最新文章

  1. 最新官方WIN10系统32位,64位系统ghost版下载
  2. IIS7.0发布Web服务器0002
  3. 关于三层架构与MVC的一些理解
  4. scala 的内部类
  5. IOS VFL屏幕自适应
  6. Redis自定义动态字符串(sds)模块(二)
  7. hdu----(1402)A * B Problem Plus(FFT模板)
  8. java常量池
  9. CSS发抖
  10. linux--centos服务器配置
  11. 第五节,TensorFlow编程基础案例-session使用(上)
  12. PAT 1037 在霍格沃茨找零钱(20)(代码+思路)
  13. [转载]Docker 完全指南
  14. PAT甲1077 Kuchiguse【字符串】【暴力】【Hash】【二分】
  15. LightOj 1118 - Incredible Molecules(两圆的交集面积)
  16. Goroutines vs Threads
  17. 安装/卸载 修改Config
  18. Android开发之线性布局详解(布局权重)
  19. 【Python + Mysql】之用pymysql库连接Mysql数据库并进行增删改查操作
  20. 「一入 Java 深似海 」系列课程

热门文章

  1. 解决“与 Microsoft Exchange 的连接不可用,Outlook 必须联机或已连接才能完成此操作”
  2. ubuntu开机卡在/dev/sda* clean
  3. github push pull error port 443: Timed out
  4. UV贴图类型
  5. keycloak~自定义SPI的注入与扩展
  6. Mybatis学习(8)动态sql语句
  7. Vue | 路由守卫面试常考
  8. ARTS第二周
  9. 根据序列号查IP
  10. 环境变量PATH还原方法