myBatis 简单的增删改查

前面已经讲到用接口的方式编程。这种方式,要注意的一个地方就是。在User.xml 的配置文件中,

mapper namespace="com.fjh.inter.UserMap"

命名空间非常重要,不能有错,必须与我们定义的package 和 接口一致。如果不一致就会出错,
这一章主要在上一讲基于接口编程的基础上完成如下事情:

1. 用 mybatis 查询数据,包括列表
2. 用 mybatis 增加数据.
3. 用 mybatis 更新数据.
4. 用 mybatis 删除数据.

1、返回集合类型

查询数据,前面已经讲过简单的,主要看查询出列表的
查询出列表,也就是返回list, 在我们这个例子中也就是
List , 这种方式返回数据,
需要在User.xml 里面配置返回的类型 resultMap, 注意不是 resultType,
而这个resultMap 所对应的应该是我们自己配置的

<!-- 为了返回list 类型而定义的returnMap -->
<resultMap type="User" id="resultListUser">
<id column="id" property="id" /><result column="userName" property="userName" /><result column="userAge" property="userAge" /><result column="userAddress" property="userAddress" />
</resultMap><!-- 返回list 的select 语句,注意 resultMap 的值是指向前面定义好的 -->
<select id="getUserByname" parameterType="string" resultMap="resultListUser">select * from user where userName like   #{userName}
</select>

在接口类中添加方法:

调用测试

//根据配置文件User.xml中的id去获取相应的sql语句//以接口的形式编程 在配置文件中要修改<mapper namespace="com.fjh.inter.UserMap">
UserMap userManager = (UserMap)sqlSession.getMapper(UserMap.class);
List<User> users = userManager.getUserByname("%" + name + "%");

2、插入新的数据

​ 在 UserMap 接口中增加方法:public void addUser(User user);
​ 在 User.xml 中配置

<!--执行增加操作的SQL语句。id和parameterType  分别与UserMap接口中的addUser方法的名字和  参数类型一致。以#{name}的形式引用User参数  的name属性,MyBatis将使用反射读取User参数  的此属性。#{userName}中userName大小写敏感。引用其他  的gender等属性与此一致。useGeneratedKeys设置  为"true"表明要MyBatis获取由数据库自动生成的主  键;keyProperty="id"指定把获取到的主键值注入  到Student的id属性--> <insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id"> insert into user(userName,userAge,userAddress)  values(#{userName},#{userAge},#{userAddress})  </insert>
测试调用
SqlSession sqlSession = sqlSessionFactory.openSession();       try {//根据配置文件User.xml中的id去获取相应的sql语句//以接口的形式编程 在配置文件中要修改<mapper namespace="com.fjh.inter.UserMap">UserMap userManager = (UserMap)sqlSession.getMapper(UserMap.class);userManager.addUser(user);//sqlSession.commit() 一定要提交事务sqlSession.commit();//添加之后显示所有的用户getUsers();} catch (Exception e) {e.printStackTrace();}

注意关于主键的生成方式,oracle没有自动生成策略那么应该使用
test_squ.nextval 序列的名字

<insert id="insertAuthor" parameterType="domain.blog.Author"> <selectKey keyProperty="id" resultType="int" order="BEFORE"> select test_squ.nextval from dual </selectKey> insert into user(userName,userAge,userAddress)  values(#{userName},#{userAge},#{userAddress})
</insert>

3、修改数据

在接口中定义方法:updateUser();

修改User.xml

   <!--修改数据--><update id="updateUser" parameterType="User">update user set userName=#{userName},userAge=#{userAge},userAddress=#{userAddress} where id=#{id}</update>

测试:

/**修改用户@param user**/static void updateUser(User user){SqlSession sqlSession = sqlSessionFactory.openSession();        try {//根据配置文件User.xml中的id去获取相应的sql语句//以接口的形式编程 在配置文件中要修改<mapper namespace="com.kaka.inter.UserMap">UserMap userManager = (UserMap)sqlSession.getMapper(UserMap.class);userManager.updateUser(user);sqlSession.commit();getUsers();} catch (Exception e) {e.printStackTrace();}
}

4、删除用户

在UserMap接口中定义方法 public void deleteUser(int id);方法的名和User.xm中定义的update节点中id要一样

 <delete id="deleteUser" parameterType="int">delete from user where id=#{id}</delete>
SqlSession sqlSession = sqlSessionFactory.openSession();        try {//根据配置文件User.xml中的id去获取相应的sql语句//以接口的形式编程 在配置文件中要修改<mapper namespace="com.kaka.inter.UserMap">UserMap userManager = (UserMap)sqlSession.getMapper(UserMap.class);userManager.deleteUser(id);sqlSession.commit();getUsers();} catch (Exception e) {e.printStackTrace();}

myBatis 简单的增删改查相关推荐

  1. MyBatis简单的增删改查

    POM.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...

  2. MyBatis学习--简单的增删改查

    jdbc程序 在学习MyBatis的时候先简单了解下JDBC编程的方式,我们以一个简单的查询为例,使用JDBC编程,如下: 1 Public static void main(String[] arg ...

  3. mybatis复习02,简单的增删改查,@Param注解多个参数,resultType与resultMap的区别,#{}预编译参数

    mybatis复习02,简单的增删改查 创建数据表 user_info 在项目中创建数据表对应的实体类 UserInfo.java 在pom.xml文件中引入依赖 创建核心配置文件mybatis-co ...

  4. mybatis学习4之使用注解开发实现简单的增删改查

    前言 使用注解完成简单的增删改查操作 本质:反射机制的体现 原理:动态代理 一.需要注意什么 1.注解在接口上实现 2.需要在核心配置文件上绑定接口,使用类绑定或者包绑定时,接口和它的Mapper配置 ...

  5. html单页面js完成表数据库自动生成带注释的java实体类和简单的增删改查sql

    支持Mysql和Oracle,mybatis和ibatis可选.功能主要还是字符串的拼凑完成的,把用把表信息复制过来或者增加后台,就可以生成简单的增删改查了 临时体验点这里 我也不知道地址什么时候失效 ...

  6. SpringMVC_实现简单的增删改查

    实现简单的增删改查 1:创建User的javabean package com.doaoao.bean; public class User {private String name;private ...

  7. Mybatis基础:增删改查、模糊查询、多条件查询

    Mybatis基础:增删改查.模糊查询.多条件查询http://www.bieryun.com/3132.html 1.新建测试数据库,根据实体类属性创建 2.实体类 [java] view plai ...

  8. php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例

    本文实例讲述了PHP实现对xml进行简单的增删改查(CRUD)操作.分享给大家供大家参考,具体如下: 假如有下面xml文件: 55.8 56 40 339 如何使用php对它进行CRUD?其实像这种简 ...

  9. 使用 NodeJS+Express+MySQL 实现简单的增删改查

    关于node.js暂时记录如下,以后有时间一定学习 文章来自简书,作者:sprint,2016-07 使用 Node.js + Express+MySQL 实现简单的增删改查 https://www. ...

最新文章

  1. Apache启用mod_expires模块
  2. 【51CTO学院三周年】51cto学院的大数据培训之心路历程
  3. (转)OpenCV版本的摄像机标定
  4. during怎么念_during是什么意思_during的翻译_音标_读音_用法_例句_爱词霸在线词典...
  5. OpenCV SFM模块安装
  6. LeetCode每日打卡 - 汉明距离总和
  7. 时间序列的预处理之纯随机性检验
  8. 子元素div高度不确定时父div高度如何自适应
  9. php取到的时间总是差8小时的解决方法
  10. win10原版操作系统安装过程【超详细】
  11. Linux安全模块(LSM)学习——简单的LSM demo(1)
  12. 基于SpringBoot下使用分布式文件存储FastDFS
  13. 神威超级计算机机械知识,神威超级计算机的计算能力有多强?
  14. 悬赏任务h5系统源码接单发单平台支持游戏试玩签到
  15. 错误代码: SEC_ERROR_REUSED_ISSUER_AND_SERIAL(解决办法)
  16. UE4学习(一)C++编程官方文档解读
  17. html5标题标语,五一活动标语(精选30句)
  18. YOLOV8-gradcam 热力图可视化 即插即用 不需要对源码做任何修改!
  19. wifi性能测试(精简)
  20. 新高考计算机学业水平考试,解密新高考——学业水平考试

热门文章

  1. ai2022 3d怎么贴图,自学Illustrator 2022 mac版,ai2022 3d功能实际应用
  2. Java教程:Java字符串拼接(连接)
  3. 2.2 HOST主桥
  4. SDUT 2020 Summer Team Contest 2nd(for 19) BDJ题解
  5. 【数据库必备知识】玩转表及其数据
  6. 这五款电脑黑科技软件 个个都值得安装
  7. word表格美化技巧:如何统一改变表格的样式2+续表制作
  8. RS485(Modbus RTU)工业RFID读写器CK-FR03-A01与PLC三菱FX5U的通讯操作说明
  9. 大数据技术——VMbox的安装和网络配置
  10. 非常罕见的真功夫--少林vs跆拳道