这2种方法的区别:1、添加接口 2、运用接口来实现

其他的都一样

添加接口

  1. //接口的名字和xml的名字一样,这样xml中的namespace就不用改
  2. public interface UserMapper {
  3. //接口名的方法名一定要和xml中的id名一样
  4. public int count();
  5.  
  6. public void add(User user);
  7.  
  8. public void update(User user);
  9.  
  10. public void delete(User user);
  11.  
  12. public List<User> getUserList();
  13. }

添加接口的测试类也很简单(看下注释的差别)

  1. public class UserDaoByMapper {
  2. private Logger logger = Logger.getLogger(UserDaoTest.class);
  3. //count
  4. @Test
  5. public void countTest() {
  6. SqlSession sqlSession = null;
  7. int count = 0;
  8. try {
  9. sqlSession = MyBatisUtil.createSqlSession();
  10. // count = sqlSession.selectOne("cn.bdqn.dao.UserMapper.count");
  11. //有接口后,用这个
  12. count = sqlSession.getMapper(UserMapper.class).count();
  13. logger.debug("count==="+count);
  14. } catch (Exception e) {
  15. // TODO: handle exception
  16. sqlSession.rollback();
  17. }finally{
  18. MyBatisUtil.closeSqlSession(sqlSession);
  19. }
  20. }
  21.  
  22. //add
  23. @Test
  24. public void addTest(){
  25. SqlSession sqlSession = null;
  26. try {
  27. User user = new User();
  28. user.setUserCode("aaaa");
  29. user.setUserName("bbbbb");
  30. sqlSession = MyBatisUtil.createSqlSession();
  31. // sqlSession.insert("cn.bdqn.dao.UserMapper.add",user);
  32. sqlSession.getMapper(UserMapper.class).add(user);
  33. sqlSession.commit();
  34. } catch (Exception e) {
  35. // TODO: handle exception
  36. e.printStackTrace();
  37. sqlSession.rollback();
  38. }finally{
  39. MyBatisUtil.closeSqlSession(sqlSession);
  40. }
  41. }
  42. //修改
  43. @Test
  44. public void updateTest(){
  45. SqlSession sqlSession = null;
  46. try {
  47. User user = new User();
  48. user.setId(12);
  49. user.setUserCode("改1111");
  50. user.setUserName("改2222");
  51. sqlSession = MyBatisUtil.createSqlSession();
  52. // sqlSession.update("cn.bdqn.dao.UserMapper.update",user);
  53. sqlSession.getMapper(UserMapper.class).update(user);
  54. sqlSession.commit();
  55. } catch (Exception e) {
  56. // TODO: handle exception
  57. e.printStackTrace();
  58. sqlSession.rollback();
  59. }finally{
  60. MyBatisUtil.closeSqlSession(sqlSession);
  61. }
  62. }
  63. //删除
  64. @Test
  65. public void deleteTest(){
  66. SqlSession sqlSession = null;
  67. try {
  68. User user = new User();
  69. user.setId(12);
  70. sqlSession = MyBatisUtil.createSqlSession();
  71. // sqlSession.delete("cn.bdqn.dao.UserMapper.delete",user);
  72. sqlSession.getMapper(UserMapper.class).delete(user);
  73. sqlSession.commit();
  74. } catch (Exception e) {
  75. // TODO: handle exception
  76. e.printStackTrace();
  77. sqlSession.rollback();
  78. }finally{
  79. MyBatisUtil.closeSqlSession(sqlSession);
  80. }
  81. }
  82.  
  83. //查询
  84. @Test
  85. public void getUserListTest(){
  86. SqlSession sqlSession = null;
  87. try {
  88. List<User> userList = new ArrayList<User>();
  89. sqlSession = MyBatisUtil.createSqlSession();
  90. // userList = sqlSession.selectList("cn.bdqn.dao.UserMapper.getUserList");
  91. userList = sqlSession.getMapper(UserMapper.class).getUserList();
  92. for(User user:userList){
  93. logger.debug("user的id==="+user.getId());
  94. }
  95. } catch (Exception e) {
  96. // TODO: handle exception
  97. e.printStackTrace();
  98. sqlSession.rollback();
  99. }finally{
  100. MyBatisUtil.closeSqlSession(sqlSession);
  101. }
  102. }
  103.  
  104. }
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <!-- 如果我要调用mapper文件,就去拿到namespace+id(方法名)的名字就可以访问 -->
  6. <mapper namespace="cn.bdqn.dao.UserMapper">
  7. <!-- id要唯一的,一般是下拉类的方法名 -->
  8. <!-- 返回的是什么类型int -->
  9. <select id="count" resultType="int">
  10. select count(1) from user
  11. </select>
  12. <!-- 增加 -->
  13. <insert id="add" parameterType="User">
  14. insert into user(userCode,userName,userPassword)
  15. values (#{userCode},#{userName},#{userPassword})
  16. </insert>
  17. <!-- 修改 -->
  18. <update id="update" parameterType="User">
  19. update user set userCode=#{userCode},userName=#{userName},
  20. userPassword=#{userPassword} where id=#{id}
  21. </update>
  22. <!-- 删除 -->
  23. <delete id="delete" parameterType="User">
  24. delete from user where id=#{id}
  25. </delete>
  26. <!-- 查询 -->
  27. <select id="getUserList" resultType="User">
  28. select * from user
  29. </select>
  30. </mapper>
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5.  
  6. <!-- 通过这个配置文件完成mybatis与数据库的连接 -->
  7. <configuration>
  8. <!-- 引入 jdbc.properties 文件-->
  9. <properties resource="jdbc.properties"/>
  10. <!-- alias别名 -->
  11. <typeAliases>
  12. <!-- <typeAlias type="cn.bdqn.pojo.User" alias="User"/> -->
  13. <!-- 用这个比较方便,不用一个一个写。包下的就是他的类名 -->
  14. <package name="cn.bdqn.pojo"/>
  15. </typeAliases>
  16.  
  17. <environments default="development">
  18. <environment id="development">
  19. <!--配置事务管理,采用JDBC的事务管理 -->
  20. <transactionManager type="JDBC"></transactionManager>
  21. <!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
  22. <dataSource type="POOLED">
  23. <property name="driver" value="${driver}"/>
  24. <property name="url" value="${url}"/>
  25. <property name="username" value="${username}"/>
  26. <property name="password" value="${password}"/>
  27. </dataSource>
  28. </environment>
  29. </environments>
  30.  
  31. <!-- 将mapper文件加入到配置文件中 将来mapper文件很多所以是mappers -->
  32. <mappers>
  33. <mapper resource="cn/bdqn/dao/UserMapper.xml"/>
  34. </mappers>
  35. </configuration>

myBatis 实现用户表增删查改操作<方法2 加入接口>(最终版)的更多相关文章

  1. myBatis 实现用户表增删查改操作<方法1 没有使用接口的>(最终版)

    在UserMapper.xml中添加增删改查 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP ...

  2. Mybatis基础配置及增删查改操作

    一.简介 平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类. 不仅如此,访问不同的表,还会 ...

  3. SSM框架-MyBatis框架数据库的增删查改操作

    话不多说,在User.xml文件中主要写一下操作数据库的sql语句,增,删,查,改是最常见的数据库操作 User.xml文件下:

  4. PHP与MYSQL结合操作——文章发布系统小项目(实现基本增删查改操作)

    php和mysql在一起几十年了,也是一对老夫老妻了,最近正在对他们的爱情故事进行探讨,并做了一个很简单的小东西——文章发布系统,目的是为了实现mysql对文章的基本增删查改操作 前台展示系统有:文章 ...

  5. 利用dbutils工具实现数据的增删查改操作(dbutis入门)

    一.前期准备 1.安装数据库(如:mysql5.5) 2.安装Eclipse(如:3.4) 3.下载数据库驱动包 4.下载dbutis工具包 5.在Eclipse创建名为 dbutils 的工程并在工 ...

  6. SSH框架的多表查询和增删查改 (方法一)上

    原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>  http://www.cnblogs.com/zhu520/p/7772823.html   因为最近在做Android 练习的 ...

  7. Java连接MySQL数据库及简单的增删查改操作

    主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...

  8. SSH框架的多表查询和增删查改 (方法一)中

    原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>http://www.cnblogs.com/zhu520/p/7774144.html   这边文章是接的刚刚前一遍的基础上敲的  ...

  9. 在Eclipse上实现简单的JDBC增删查改操作

    在Javaweb的学习里,学到了如何完成简单的增删查改操作,在这里撰写一篇文章以便自己整理回忆. 首先要建立一些包和导入一些文件.建一些类.具体框架如图  编写Product类 public clas ...

随机推荐

  1. [原创]JavaScript继承详解

    原文链接:http://www.cnblogs.com/sanshi/archive/2009/07/08/1519036.html 面向对象与基于对象 几乎每个开发人员都有面向对象语言(比如C++. ...

  2. (转)Python实例手册

    原文地址:http://hi.baidu.com/quanzhou722/item/cf4471f8e23d3149932af2a7 实在是太好的资料了,不得不转 python实例手册 #encodi ...

  3. 初次使用C#中的yield

    这几天在Python程序员的微信订阅号中总是见到yield的关键字,才想起来在C#中也是有yield,但是只是知道有,从来没有了解过他的用法,今天有时间就来看看是怎么使用的.刚开始肯定就是搜索一下用法 ...

  4. HBase入库调优

    本文章只针对“微型集群处理大数据”的场景. 场景描述: 硬件:5个节点,每个节点可用硬盘1块(700G.500G等).8核cpu,实验室环境(有时候还要跑其他程序跟你抢占资源),16G内存. 软件:h ...

  5. zoeDylan.ImgChange 图片切换插件

    墨芈深夜发布插件——图片切换 附上下载地址:http://pan.baidu.com/s/17kKF3共享天地/[墨芈 插件]zoeDylan Plugins Code JS (function ($ ...

  6. 编写高质量代码改善C#程序的157个建议[动态数组、循环遍历、对象集合初始化]

    前言   软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类.不管是数组还是集合类,它们都有各自的优缺点.如何使用好集合是我们在开发过程中必须掌握的技巧.不要小看这些技巧,一旦在开 ...

  7. [Json.net]Linq to Json

    引言 上篇学习了json.net的基本知识,这篇学习linq to json. 上篇文章:[Json.net]快速入门 Linq to Json Linq to Json是用来快速操作json对象的, ...

  8. metaspolit 基础

    在kali中使用metasploit,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据库查询exploit和记录了.这一点比bt5要方便很多,所以现在 ...

  9. Beta 分工比例

    组员在Beta版本的分工和个人贡献百分比. 人员 任务完成情况 贡献比 031302331 闹钟,爬取知乎数据,书籍下载,解决bug,帮助队友 25% 031302442 注册登录逻辑,书籍评论评分页 ...

  10. Future模式

    Future模式简介 Future模式有点类似于网上购物,在你购买商品,订单生效之后,你可以去做自己的事情,等待商家通过快递给你送货上门.Future模式就是,当某一程序提交请求,期望得到一个答复.但 ...