myBatis 实现用户表增删查改操作<方法2 加入接口>(最终版)
这2种方法的区别:1、添加接口 2、运用接口来实现
其他的都一样
添加接口
- //接口的名字和xml的名字一样,这样xml中的namespace就不用改
- public interface UserMapper {
- //接口名的方法名一定要和xml中的id名一样
- public int count();
- public void add(User user);
- public void update(User user);
- public void delete(User user);
- public List<User> getUserList();
- }
添加接口的测试类也很简单(看下注释的差别)
- public class UserDaoByMapper {
- private Logger logger = Logger.getLogger(UserDaoTest.class);
- //count
- @Test
- public void countTest() {
- SqlSession sqlSession = null;
- int count = 0;
- try {
- sqlSession = MyBatisUtil.createSqlSession();
- // count = sqlSession.selectOne("cn.bdqn.dao.UserMapper.count");
- //有接口后,用这个
- count = sqlSession.getMapper(UserMapper.class).count();
- logger.debug("count==="+count);
- } catch (Exception e) {
- // TODO: handle exception
- sqlSession.rollback();
- }finally{
- MyBatisUtil.closeSqlSession(sqlSession);
- }
- }
- //add
- @Test
- public void addTest(){
- SqlSession sqlSession = null;
- try {
- User user = new User();
- user.setUserCode("aaaa");
- user.setUserName("bbbbb");
- sqlSession = MyBatisUtil.createSqlSession();
- // sqlSession.insert("cn.bdqn.dao.UserMapper.add",user);
- sqlSession.getMapper(UserMapper.class).add(user);
- sqlSession.commit();
- } catch (Exception e) {
- // TODO: handle exception
- e.printStackTrace();
- sqlSession.rollback();
- }finally{
- MyBatisUtil.closeSqlSession(sqlSession);
- }
- }
- //修改
- @Test
- public void updateTest(){
- SqlSession sqlSession = null;
- try {
- User user = new User();
- user.setId(12);
- user.setUserCode("改1111");
- user.setUserName("改2222");
- sqlSession = MyBatisUtil.createSqlSession();
- // sqlSession.update("cn.bdqn.dao.UserMapper.update",user);
- sqlSession.getMapper(UserMapper.class).update(user);
- sqlSession.commit();
- } catch (Exception e) {
- // TODO: handle exception
- e.printStackTrace();
- sqlSession.rollback();
- }finally{
- MyBatisUtil.closeSqlSession(sqlSession);
- }
- }
- //删除
- @Test
- public void deleteTest(){
- SqlSession sqlSession = null;
- try {
- User user = new User();
- user.setId(12);
- sqlSession = MyBatisUtil.createSqlSession();
- // sqlSession.delete("cn.bdqn.dao.UserMapper.delete",user);
- sqlSession.getMapper(UserMapper.class).delete(user);
- sqlSession.commit();
- } catch (Exception e) {
- // TODO: handle exception
- e.printStackTrace();
- sqlSession.rollback();
- }finally{
- MyBatisUtil.closeSqlSession(sqlSession);
- }
- }
- //查询
- @Test
- public void getUserListTest(){
- SqlSession sqlSession = null;
- try {
- List<User> userList = new ArrayList<User>();
- sqlSession = MyBatisUtil.createSqlSession();
- // userList = sqlSession.selectList("cn.bdqn.dao.UserMapper.getUserList");
- userList = sqlSession.getMapper(UserMapper.class).getUserList();
- for(User user:userList){
- logger.debug("user的id==="+user.getId());
- }
- } catch (Exception e) {
- // TODO: handle exception
- e.printStackTrace();
- sqlSession.rollback();
- }finally{
- MyBatisUtil.closeSqlSession(sqlSession);
- }
- }
- }
- <?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">
- <!-- 如果我要调用mapper文件,就去拿到namespace+id(方法名)的名字就可以访问 -->
- <mapper namespace="cn.bdqn.dao.UserMapper">
- <!-- id要唯一的,一般是下拉类的方法名 -->
- <!-- 返回的是什么类型int -->
- <select id="count" resultType="int">
- select count(1) from user
- </select>
- <!-- 增加 -->
- <insert id="add" parameterType="User">
- insert into user(userCode,userName,userPassword)
- values (#{userCode},#{userName},#{userPassword})
- </insert>
- <!-- 修改 -->
- <update id="update" parameterType="User">
- update user set userCode=#{userCode},userName=#{userName},
- userPassword=#{userPassword} where id=#{id}
- </update>
- <!-- 删除 -->
- <delete id="delete" parameterType="User">
- delete from user where id=#{id}
- </delete>
- <!-- 查询 -->
- <select id="getUserList" resultType="User">
- select * from user
- </select>
- </mapper>
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE configuration
- PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
- "http://mybatis.org/dtd/mybatis-3-config.dtd">
- <!-- 通过这个配置文件完成mybatis与数据库的连接 -->
- <configuration>
- <!-- 引入 jdbc.properties 文件-->
- <properties resource="jdbc.properties"/>
- <!-- alias别名 -->
- <typeAliases>
- <!-- <typeAlias type="cn.bdqn.pojo.User" alias="User"/> -->
- <!-- 用这个比较方便,不用一个一个写。包下的就是他的类名 -->
- <package name="cn.bdqn.pojo"/>
- </typeAliases>
- <environments default="development">
- <environment id="development">
- <!--配置事务管理,采用JDBC的事务管理 -->
- <transactionManager type="JDBC"></transactionManager>
- <!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
- <dataSource type="POOLED">
- <property name="driver" value="${driver}"/>
- <property name="url" value="${url}"/>
- <property name="username" value="${username}"/>
- <property name="password" value="${password}"/>
- </dataSource>
- </environment>
- </environments>
- <!-- 将mapper文件加入到配置文件中 将来mapper文件很多所以是mappers -->
- <mappers>
- <mapper resource="cn/bdqn/dao/UserMapper.xml"/>
- </mappers>
- </configuration>
myBatis 实现用户表增删查改操作<方法2 加入接口>(最终版)的更多相关文章
- myBatis 实现用户表增删查改操作<方法1 没有使用接口的>(最终版)
在UserMapper.xml中添加增删改查 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP ...
- Mybatis基础配置及增删查改操作
一.简介 平时我们都用JDBC访问数据库,除了需要自己写SQL之外,还必须操作Connection, Statement, ResultSet 这些其实只是手段的辅助类. 不仅如此,访问不同的表,还会 ...
- SSM框架-MyBatis框架数据库的增删查改操作
话不多说,在User.xml文件中主要写一下操作数据库的sql语句,增,删,查,改是最常见的数据库操作 User.xml文件下:
- PHP与MYSQL结合操作——文章发布系统小项目(实现基本增删查改操作)
php和mysql在一起几十年了,也是一对老夫老妻了,最近正在对他们的爱情故事进行探讨,并做了一个很简单的小东西——文章发布系统,目的是为了实现mysql对文章的基本增删查改操作 前台展示系统有:文章 ...
- 利用dbutils工具实现数据的增删查改操作(dbutis入门)
一.前期准备 1.安装数据库(如:mysql5.5) 2.安装Eclipse(如:3.4) 3.下载数据库驱动包 4.下载dbutis工具包 5.在Eclipse创建名为 dbutils 的工程并在工 ...
- SSH框架的多表查询和增删查改 (方法一)上
原创作品,允许转载,转载时请务必标明作者信息和声明本文章==> http://www.cnblogs.com/zhu520/p/7772823.html 因为最近在做Android 练习的 ...
- Java连接MySQL数据库及简单的增删查改操作
主要摘自 https://www.cnblogs.com/town123/p/8336244.html https://www.runoob.com/java/java-mysql-connect.h ...
- SSH框架的多表查询和增删查改 (方法一)中
原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>http://www.cnblogs.com/zhu520/p/7774144.html 这边文章是接的刚刚前一遍的基础上敲的 ...
- 在Eclipse上实现简单的JDBC增删查改操作
在Javaweb的学习里,学到了如何完成简单的增删查改操作,在这里撰写一篇文章以便自己整理回忆. 首先要建立一些包和导入一些文件.建一些类.具体框架如图 编写Product类 public clas ...
随机推荐
- [原创]JavaScript继承详解
原文链接:http://www.cnblogs.com/sanshi/archive/2009/07/08/1519036.html 面向对象与基于对象 几乎每个开发人员都有面向对象语言(比如C++. ...
- (转)Python实例手册
原文地址:http://hi.baidu.com/quanzhou722/item/cf4471f8e23d3149932af2a7 实在是太好的资料了,不得不转 python实例手册 #encodi ...
- 初次使用C#中的yield
这几天在Python程序员的微信订阅号中总是见到yield的关键字,才想起来在C#中也是有yield,但是只是知道有,从来没有了解过他的用法,今天有时间就来看看是怎么使用的.刚开始肯定就是搜索一下用法 ...
- HBase入库调优
本文章只针对“微型集群处理大数据”的场景. 场景描述: 硬件:5个节点,每个节点可用硬盘1块(700G.500G等).8核cpu,实验室环境(有时候还要跑其他程序跟你抢占资源),16G内存. 软件:h ...
- zoeDylan.ImgChange 图片切换插件
墨芈深夜发布插件——图片切换 附上下载地址:http://pan.baidu.com/s/17kKF3共享天地/[墨芈 插件]zoeDylan Plugins Code JS (function ($ ...
- 编写高质量代码改善C#程序的157个建议[动态数组、循环遍历、对象集合初始化]
前言 软件开发过程中,不可避免会用到集合,C#中的集合表现为数组和若干集合类.不管是数组还是集合类,它们都有各自的优缺点.如何使用好集合是我们在开发过程中必须掌握的技巧.不要小看这些技巧,一旦在开 ...
- [Json.net]Linq to Json
引言 上篇学习了json.net的基本知识,这篇学习linq to json. 上篇文章:[Json.net]快速入门 Linq to Json Linq to Json是用来快速操作json对象的, ...
- metaspolit 基础
在kali中使用metasploit,需要先开启PostgreSQL数据库服务和metasploit服务,然后就可以完整的利用msf数据库查询exploit和记录了.这一点比bt5要方便很多,所以现在 ...
- Beta 分工比例
组员在Beta版本的分工和个人贡献百分比. 人员 任务完成情况 贡献比 031302331 闹钟,爬取知乎数据,书籍下载,解决bug,帮助队友 25% 031302442 注册登录逻辑,书籍评论评分页 ...
- Future模式
Future模式简介 Future模式有点类似于网上购物,在你购买商品,订单生效之后,你可以去做自己的事情,等待商家通过快递给你送货上门.Future模式就是,当某一程序提交请求,期望得到一个答复.但 ...