mybatis学习之路----非代理方式的增删改查用法
来源:互联网 发布:比淘宝便宜又好的网站 编辑:程序博客网 时间:2024/06/05 18:52
点滴记载,点滴进步,愿自己更上一层楼。
这里记录的是非代理方式的增删改查用法,代理方式会在以后再写。
废话不多说,进入主题。
项目还是在上篇 mybatis学习之路----框架搭建 的基础上进行
上篇看到查询用的是<select>标签,那么更新,插入,删除用的就是<update><insert><delete>
上代码
User.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- namespace命名空间,有种java package的感觉,sql隔离,这个名字必须唯一并且不能省略不写也不能为空,不过名字倒是可以随意,只要不跟另外一个文件中的名字一样即可--><mapper namespace="test"> <!-- 数据库跟model属性的映射map,如果你定义的model的属性跟数据库的字段名称不完全一样, 并且想让mybatis自动将查询结果封装到model中,这个是必须的, 当然如果你的model中的属性名称跟数据库字段完全一样,那么这里就不需要了。 --> <resultMap id="userMap" type="com.soft.mybatis.model.User"> <id column="id" property="id"/> <result column="username" property="username"/> <result column="password" property="password"/> <result column="create_date" property="createDate"/> </resultMap> <!-- 查询标签,用于放置查询语句,id属性在本映射文件中必须唯一,并且作为该条查询语句的唯一标识,也叫statementid parameterType 输入参数类型,可以为基本类型,包装类型 resultType 返回的结果对象集,可以为基本类型,包装类型 resultMap 上面的<resultMap 的id **** 注意下面的sql的参数的写法,在参数只有一个, 并且是基本类型的情况写 #{id} 可以随意写,写成#{kadksdjf}也没问题--> <select id="findUserById" parameterType="int" resultMap="userMap"> select * from t_user where id=#{id} </select> <!-- 如果你的model中的属性跟数据库表字段对不上,就无法完全将数据库中的数据映射到你的model 这里仅作为跟上面对比用--> <select id="findUserById2" parameterType="int" resultType="com.soft.mybatis.model.User"> select * from t_user where id=#{id} </select> <!-- 查询多条 不需要参数--> <select id="findAllUser" resultMap="userMap"> select * from t_user </select> <!-- 新增用户 insert标签,由于传入参数为一个model,所以sql中的参数必须跟model中的属性一样。 --> <insert id="add" parameterType="com.soft.mybatis.model.User"> INSERT into t_user (username,password,create_date) values(#{username},#{password},#{createDate}) </insert> <!-- 更新用户,由于传入参数为一个model,所以sql中的参数必须跟model中的属性一样。 --> <update id="update" parameterType="com.soft.mybatis.model.User"> update t_user set username=#{username},password=#{password} where id=#{id} </update> <!-- 更新用户,parameterType为基本类型,参数名随意。 --> <delete id="deleteById" parameterType="int"> delete from t_user where id=#{id} </delete></mapper>
user查询接口 UserDao.java
package com.soft.mybatis.dao;import com.soft.mybatis.Util.SqlsessionUtil;import com.soft.mybatis.model.User;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.util.List;/** * Created by xuweiwei on 2017/9/7. */public interface UserDao { /** * 通过id查询信息, * 这个xml中通过resultMap接收 * @param id 表id * @return */ User findUserById(int id); /** * 通过id查询信息, * 这个xml中通过resultType接收 * @param id 表id * @return */ User findUserById2(int id); /** * 查询所有用户信息 * @return */ List<User> findAllUser(); /** * 新增用户信息 * @return */ int add(User user); /** * 更新用户信息 * @return */ int update(User user); /** * 删除用户信息 * @return */ int deleteById(int id);}
实现类 UserDaoImpl.java
package com.soft.mybatis.dao.impl;import com.soft.mybatis.Util.SqlsessionUtil;import com.soft.mybatis.dao.UserDao;import com.soft.mybatis.model.User;import org.apache.ibatis.session.SqlSession;import java.util.List;/** * Created by xuweiwei on 2017/9/7. */public class UserDaoImpl implements UserDao { public User findUserById(int id) { User user = null; SqlSession sqlSession = null; try { sqlSession = SqlsessionUtil.getSqlSession(); user = sqlSession.selectOne("test.findUserById", id); } catch (Exception e) { e.printStackTrace(); } finally { SqlsessionUtil.closeSession(sqlSession); } return user; } public User findUserById2(int id) { User user = null; SqlSession sqlSession = null; try { sqlSession = SqlsessionUtil.getSqlSession(); user = sqlSession.selectOne("test.findUserById2", id); } catch (Exception e) { e.printStackTrace(); } finally { SqlsessionUtil.closeSession(sqlSession); } return user; } public List<User> findAllUser() { SqlSession sqlSession = null; try { sqlSession = SqlsessionUtil.getSqlSession(); return sqlSession.selectList("test.findAllUser"); } catch (Exception e) { e.printStackTrace(); } finally { SqlsessionUtil.closeSession(sqlSession); } return null; } public int update(User user) { SqlSession sqlSession = null; try { sqlSession = SqlsessionUtil.getSqlSession(); int result = sqlSession.insert("test.update",user); // commit sqlSession.commit(); return result; } catch (Exception e) { sqlSession.rollback(); e.printStackTrace(); } finally { SqlsessionUtil.closeSession(sqlSession); } return 0; } public int add(User user) { SqlSession sqlSession = null; try { sqlSession = SqlsessionUtil.getSqlSession(); int result = sqlSession.insert("test.add",user); // commit sqlSession.commit(); return result; } catch (Exception e) { sqlSession.rollback(); e.printStackTrace(); } finally { SqlsessionUtil.closeSession(sqlSession); } return 0; } public int deleteById(int id) { SqlSession sqlSession = null; try { sqlSession = SqlsessionUtil.getSqlSession(); int result = sqlSession.delete("test.deleteById",id); // commit sqlSession.commit(); return result; } catch (Exception e) { sqlSession.rollback(); e.printStackTrace(); } finally { SqlsessionUtil.closeSession(sqlSession); } return 0; }}
完毕,下面开始测试。
测试代码 UserDaoTest.java
package com.soft.mybatis.dao;import com.soft.mybatis.dao.impl.UserDaoImpl;import com.soft.mybatis.model.User;import org.junit.Test;import java.util.Date;import java.util.List;/** * Created by xuweiwei on 2017/9/7. */public class UserDaoTest { private UserDao dao = new UserDaoImpl(); @Test public void findUserById() throws Exception { User user = dao.findUserById(16); System.out.println("findUserById:" + user); } @Test public void findUserById2() throws Exception { User user = dao.findUserById2(16); System.out.println("findUserById2:" + user); } @Test public void findAllUser() throws Exception { List<User> users = dao.findAllUser(); for(User user:users){ System.out.println("findAllUser:" + user); } } @Test public void add() throws Exception { User user = new User(); user.setUsername("ceshi"); user.setPassword("123456"); user.setCreateDate(new Date()); int result = dao.add(user); System.out.println("add:" + result); } @Test public void update() throws Exception { User user = new User(); user.setId(17); user.setUsername("小黄"); user.setPassword("123456"); user.setCreateDate(new Date()); // 先查询出要删除的数据 System.out.println("更新前:" + commonFindUserById(17)); int result = dao.update(user); System.out.println("update:" + result); // 先查询出要删除的数据 System.out.println("更新后:" + commonFindUserById(17)); } @Test public void delete() throws Exception { // 先查询出要删除的数据 System.out.println("删除前:" + commonFindUserById(18)); int result = dao.deleteById(18); System.out.println("delete:" + result); // 先查询出要删除的数据 System.out.println("删除后:" + commonFindUserById(18)); } private User commonFindUserById(int id){ return dao.findUserById(id); }}
测试前数据库数据信息。
findAllUser 测试结果
新增测试结果:
新增数据后数据库信息,框住的为新增的内容
更新结果:
更新执行后数据库数据信息
删除后数据库不在有主键为18的数据
以上就是mybatis的基本的增删改查的用法。
阅读全文
0 0
- mybatis学习之路----非代理方式的增删改查用法
- MyBatis框架学习之增删改查
- 增删改查mybatis用法
- Mybatis学习(五)mybatis环境下以接口的方式进行的增删查改
- mybatis之增删改查
- MyBatis之增删改查
- Mybatis之增删改查
- mybatis的增删查改
- mybatis的增删查改
- Mybatis的增删改查
- mybatis的 增删改查
- mybatis的增删改查
- Mybatis注解方式进行简单的增删改查
- (二)mybatis学习之入门增删改查
- Mybatis学习系列之(二)---crud(即增删改查)
- Mybatis学习之路之Oracle增删改查以及常用函数<二>
- Mybatis学习(3)实现数据的增删改查
- Mybatis入门学习三:实现数据的增删改查
- Unity_2D 滚屏方法_040
- html头文件设置常用之<meta>设置缓存
- HTML标签和CSS个人总结
- 集合类
- 第二次课。Java基础
- mybatis学习之路----非代理方式的增删改查用法
- 【算法题】寻找第K个丑数
- 希尔排序
- 成长记录开博
- 【GIT】基本原理和使用操作
- servlet配置load-on-startup的作用
- Java扫雷之Java类的成员属性生命周期的应用。(成员属性生命周期和对象一致)
- JNI引用溢出导致的重启问题分析
- js中typeof的返回值类型有哪些