UserMapper接口

public interface UserMapper {//获取全部用户List<User> getUserList();//根据ID查询用户User getUserById(int id);//插入一个用户int addUser(User user);//使用map类型插入用户,不需要知道类型int addUser2(Map<String,Object> map);//修改用户int updateUser(User user);//删除一个用户int deleteUser(int id);
}

User实体类

public class User {private int id;private String name;private String pwd;public User() {}public User(int id, String name, String pwd) {this.id = id;this.name = name;this.pwd = pwd;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPwd() {return pwd;}public void setPwd(String pwd) {this.pwd = pwd;}@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", pwd='" + pwd + '\'' +'}';}
}

userMapper.xml

<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace绑定一个对应的Dao/Mapper接口-->
<mapper namespace="com.zhbit.dao.UserMapper"><!--select查询语句 id为方法的名字--><select id="getUserList" resultType="com.zhbit.pojo.User">select * from mybatis.user</select><select id="getUserById" parameterType="int" resultType="com.zhbit.pojo.User">select * from mybatis.user where id = #{id}</select><insert id="addUser" parameterType="com.zhbit.pojo.User">insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd})</insert><!--通过map来传递参数,values后面的参数名字可以自定义了--><insert id="addUser2" parameterType="map">insert into mybatis.user (id,name,pwd) values (#{userId},#{userName},#{passWord})</insert><update id="updateUser" parameterType="com.zhbit.pojo.User">update mybatis.user set name = #{name},pwd=#{pwd}  where id=#{id} ;</update><delete id="deleteUser" parameterType="int">delete from mybatis.user where id = #{id}</delete>
</mapper>

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/mybatis?userSSL=true&amp;userUnicode=true&amp;chartacterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value="123456"/></dataSource></environment></environments><mappers><mapper resource="com/zhbit/dao/userMapper.xml"/></mappers>
</configuration>

MybatisUtils.class

public class MybatisUtils {private static SqlSessionFactory sqlSessionFactory;static{//使用mybatis第一步:获取sqlSessionFactory对象try {String resource="mybatis-config.xml";InputStream inputStream = null;inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {e.printStackTrace();}}//有了sqlSeesionFactory之后,就可以从factory中获取sqlSession实例了//sqlSession完全包含了面向数据库执行SQL命令所需的所有方法public static SqlSession getSqlSession(){return sqlSessionFactory.openSession();}
}

UserMapperTest.class

public class UserMapperTest {@Testpublic void test(){//第一步:获取SqlSession对象try (SqlSession sqlSession = MybatisUtils.getSqlSession()) {//执行SQLUserMapper userMapper = sqlSession.getMapper(UserMapper.class);List<User> userList = userMapper.getUserList();for (User user : userList) {System.out.println(user);}//关闭SqlSession//sqlSession.close();}}@Testpublic void getUserById(){try(SqlSession sqlSession =MybatisUtils.getSqlSession()){//执行SQLUserMapper userMapper = sqlSession.getMapper(UserMapper.class);User user = userMapper.getUserById(1);System.out.println(user);}}@Testpublic void addUser(){try(SqlSession sqlSession =MybatisUtils.getSqlSession()){//执行SQLUserMapper userMapper = sqlSession.getMapper(UserMapper.class);userMapper.addUser(new User(4,"小绿","123"));//提交事务sqlSession.commit();}}@Testpublic void addUser2(){try(SqlSession sqlSession = MybatisUtils.getSqlSession()){UserMapper mapper = sqlSession.getMapper(UserMapper.class);Map<String,Object> map = new HashMap<String,Object>();map.put("userId",4);map.put("userName","小灰");map.put("passWord","123456");mapper.addUser2(map);sqlSession.commit();}}@Testpublic void updateUser(){SqlSession sqlSession=MybatisUtils.getSqlSession();try{//执行SQLUserMapper userMapper = sqlSession.getMapper(UserMapper.class);userMapper.updateUser(new User(4,"小黑","456"));//提交事务sqlSession.commit();}catch(Exception e){e.printStackTrace();}finally{sqlSession.close();}}@Testpublic void deteleUser(){try (SqlSession sqlSession = MybatisUtils.getSqlSession()) {UserMapper userMapper = sqlSession.getMapper(UserMapper.class);userMapper.deleteUser(4);sqlSession.commit();}}
}

mybatis的CUID相关推荐

  1. 二、mybatis 多级关联映射配置

    一.目的 1.上一篇写了mybatis基本的CURD,接着上一篇实现一个 多级关联 获取一篇文章以及该文章的所有评论.评论的所有回复 二.三张表 news(文章表)comment(评论表)reply( ...

  2. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  3. MyBatis的插入后获得主键的方式

    需求: 使用MyBatis往MySQL数据库中插入一条记录后,需要返回该条记录的自增主键值. 方法: 在mapper中指定keyProperty属性,示例如下: <insert id=" ...

  4. mybatis使用注解开发

    mybatis使用注解开发 面向接口编程 在之前我们是通过面向对象编程,但是在真正开发的时候我们会选择面向接口编程. 根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的 ...

  5. mybatis ResultMap

    ResultMap 解决属性名和字段的名称不一致的问题. 查询为null的问题 创建java实体类: public class User {private int id; //idprivate St ...

  6. mybatis配置文件解析

    mybatis配置文件解析 mybatis核心配置文件`mybatis-config.xml文件. mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息. 能配置的内容: con ...

  7. mybatis CRUD操作

    mybatis CRUD操作 select select标签是mybatis最常用的标签之一. select语句有很多属性可以详细的配置每一天sql语句. id 命名空间唯一的标识. 接口中的方法名与 ...

  8. java mybatis基础

    java mybatis基础 1.1 什么是mybatis? mybatis是一个优秀的持久层框架. 避免几乎所有的JDBC代码和手动设置参数以及获取结果集的过程. 可以使用简单的xml或者注解来配置 ...

  9. mybatis的资源过滤错误及xml文件编码错误

    mybatis 解决maven项目内资源过滤的问题 写的配置文件无法被导出或者生效的问题. 解决方案: <build><resources><resource>&l ...

最新文章

  1. 计算机利用公式计算实发工资怎么弄,2019新个税Excel计算器公式 助你轻松算出工资...
  2. icaclient citrix
  3. 透过浏览器看HTTP缓存(转)
  4. MySQL常用维护管理工具
  5. VTK修炼之道71:交互与Widget_观察者/命令模式
  6. oauth2.0授权码_OAUTH 2.0授权码授予
  7. python源代码现成重用大全
  8. Kafka Producer源码简述
  9. 【Android】Binder机制
  10. WIN10系统和压缩内存占用磁盘过高的解决方案(亲测有效)
  11. ASP.NET中 CheckBox(复选框)的使用
  12. Spring使用过程中遇到的一些问题
  13. java字符串排序,(不使用sort)
  14. qt 实现、区分鼠标单击,双击事件
  15. 企业级POS收银系统源码(客户端+后台)
  16. python爬取58同城二手房信息
  17. virtualbox win7虚拟机启动exe提示“DX11 could not switch resolution”解决方案
  18. 【摘抄】为什么要学C语言
  19. 冰山理论(理解笔记)
  20. 网站被恶意攻击了改怎么办?如何进行防护呢

热门文章

  1. 进销存软件|云ERP仓库管理系统软件源码开源可扫码
  2. CodeGear2007到CodeGear2009全系列自动破解工具更新到v1.0.0.237
  3. 山科大离散数学期末考试_西安电子科技大学网络与继续教育学院 2019学年上学期 《离散数学》期末考试试题 (......
  4. 圣戈班发布全新本地化生物工艺袋产品
  5. zz--WINCE TCPMP应用四:利用TCPMP插件开发程序
  6. Apache Solr 中文分词
  7. 次世代游戏建模学习,带你轻松认识并掌握!零基础小白必备
  8. 社群运营5招激活杀手锏、5个沟通技巧、5大目的
  9. ADSP-21489的开发详解:VDSP+自己编程写代码开发(1-如何来做21489和21479的开发?简单说两句)
  10. 免费报表XDOC从入门到精通(一)简介