Mybatis curd操作
2017-07-29 11:57
274 查看
创建(create) 更新 (update) 读取(read) 删除(delete) 称作curd操作
curd定义了用于处理数据库的基本原子操作
curd操作放在Dao层下,文档中Mapper XML files(SQL映射XML文件)写的很详细,可以查看文档编写。
查询单条返回:
DAO层:
测试:
查询所有
DAO层
测试
插入更新删除:
DAO层:
测试:
调试记载:
1 .参数用#{}接收来拼接sql语句
2 .插入更新等语句成功会返回一个大于0的int数据(影响的条数),返回0说明没有成功,影响条数为0
3 .插入更新删除在数据库中被认为是事务,JDBC默认自动提交,但是Mybatis需要手动提交
4 .在上面DAO代码中
会发现把update改成insert,delete改成insert都可以,阅读sqlSession源码发现delete insert都是调用了update方法,来一个user,首先看有没有这个id,有就做修改,没有就插入,所以不会报错。但是最好还是更新就写update,以免增加阅读代码的难度。
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,以免增加阅读代码的难度。
相关文章推荐
- Mybatis实现数据CURD操作实例--续
- MyBatis配置及实现CURD操作
- mybatis的基础curd操作
- mybatis对单表的CURD操作(第一步)
- mybatis 基础curd操作
- MyBatis--单表的CURD操作(原始dao方式)
- mybatis基于MybatisUtil工具类,完成CURD操作
- SSM框架day02-MyBatis——021对单表的CURD操作-环境搭建
- SSM框架day02-MyBatis——027——对单表的CURD操作-根据id查询
- mybatis的基础curd操作
- SSM框架day02-MyBatis——022对单表的CURD操作-获取新插入数据的id
- SSM框架day02-MyBatis——028——对表单的CURD操作-模糊查询
- SSM框架day02-MyBatis——023——对单表的CURD操作-删除
- MyBatis 配置及实现 CURD 操作
- SSM框架day02-MyBatis——024——对单表的CURD操作-修改
- SSM框架day02-MyBatis——025——对单表的CURD操作-查询所有
- 4000 SSM框架day02-MyBatis——030——对单表的CURD操作-map封装
- Mybatis实现数据CURD操作实例
- SSM框架day02-MyBatis——026——对单表的CURD操作-查询所有结果是Map
- SSM框架day02-MyBatis——031、033——对单表的CURD操作-复合条件查询-遗留问题及解决办法