Mybatis curd操作
来源:互联网 发布:js文件md5 编辑:程序博客网 时间:2024/06/06 03:28
创建(create) 更新 (update) 读取(read) 删除(delete) 称作curd操作
curd定义了用于处理数据库的基本原子操作
curd操作放在Dao层下,文档中Mapper XML files(SQL映射XML文件)写的很详细,可以查看文档编写。
查询单条返回:
<select id="selectUser" parameterType="int" resultType="cn.sxt.entity.User"> select * from User where id = #{id} </select>
DAO层:
public User getUser(int id) throws IOException{ SqlSession sqlSession=MyBatisUtil.getSqlSession(); User user= sqlSession.selectOne("cn.sxt.entity.UserMapper.selectUser",id); sqlSession.close(); return user; }
测试:
UserDao userDao=new UserDao();System.out.println(userDao.getUser(1));
查询所有
<select id="selectAll" resultType="cn.sxt.entity.User"> select * from User </select>
DAO层
public List<User> getAll() throws IOException{ SqlSession sqlSession=MyBatisUtil.getSqlSession(); List<User> list= sqlSession.selectList("cn.sxt.entity.UserMapper.selectAll"); sqlSession.close(); return list; }
测试
UserDao userDao=new UserDao();List<User> list=userDao.getAll(); for(User u:list) System.out.println(u);
插入更新删除:
<insert id="addUser" parameterType="cn.sxt.entity.User" useGeneratedKeys="true" > insert into User(name,pwd) values (#{name},#{pwd}) </insert> <update id="updateUser" parameterType="cn.sxt.entity.User" > update user set name=#{name},pwd=#{pwd} where id=#{id} </update> <delete id="deleteUser" > delete from user where id=#{id} </delete>
DAO层:
public int add(User user) throws IOException{ SqlSession sqlSession=MyBatisUtil.getSqlSession(); int result=sqlSession.insert("cn.sxt.entity.UserMapper.addUser",user); sqlSession.commit(); sqlSession.close(); return result; } public int update(User user) throws IOException{ SqlSession sqlSession=MyBatisUtil.getSqlSession(); int result=sqlSession.update("cn.sxt.entity.UserMapper.updateUser",user); sqlSession.commit(); sqlSession.close(); return result; } public int delete(int id) throws IOException{ SqlSession sqlSession=MyBatisUtil.getSqlSession(); int result=sqlSession.update("cn.sxt.entity.UserMapper.deleteUser",id); sqlSession.commit(); sqlSession.close(); return result; }
测试:
UserDao userDao=new UserDao();// 插入// User user=new User();// user.setName("张三");// user.setPwd("1111");// System.out.println(userDao.add(user));// 更新// User user=userDao.getUser(10);// user.setPwd("222");// System.out.println(userDao.update(user));// 删除// System.out.println(userDao.delete(8));
调试记载:
1 .参数用#{}接收来拼接sql语句
2 .插入更新等语句成功会返回一个大于0的int数据(影响的条数),返回0说明没有成功,影响条数为0
3 .插入更新删除在数据库中被认为是事务,JDBC默认自动提交,但是Mybatis需要手动提交
sqlSession.commit();
4 .在上面DAO代码中
sqlSession.update("cn.sxt.entity.UserMapper.updateUser",user);
会发现把update改成insert,delete改成insert都可以,阅读sqlSession源码发现delete insert都是调用了update方法,来一个user,首先看有没有这个id,有就做修改,没有就插入,所以不会报错。但是最好还是更新就写update,以免增加阅读代码的难度。
阅读全文
0 0
- Mybatis curd操作
- mybatis的基础curd操作
- MyBatis配置及实现CURD操作
- MyBatis 配置及实现 CURD 操作
- Mybatis实现数据CURD操作实例
- Mybatis实现数据CURD操作实例--续
- mybatis curd
- MyBatis--单表的CURD操作(原始dao方式)
- mybatis对单表的CURD操作(第一步)
- mybatis入门之CURD
- mybatis 实现 curd总结
- ThinkPHP 之 curd 操作
- thinkphp数据库操作CURD
- curd实体操作
- mongoDB的CURD操作
- Yii createCommand CURD操作
- wordpress数据库CURD操作
- thinkphp CURD操作
- android上传图片过大处理
- 手把手教你一小时搭建个人网站
- Linux系统ftp文件服务器的安装
- java基础知识小小结
- Protobuf 的 proto3 与 proto2 的区别
- Mybatis curd操作
- 基于优先级的抢占式调度
- Spring源码阅读之-BeanFactory(一)
- NETGEAR路由器登录不上 重新获取ip
- 大数阶乘
- HashTable详细介绍(一)
- VxWorks时间片轮转调度
- <span> 与<div>的区别
- 集合 (一个容器) 存储数据