MyBatis -- 对表进行增删改查(基于注解的实现)
1、MyBatis对数据库表进行增/删/改/查
前一篇使用基于XML的方式实现对数据库的增/删/改/查
以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查
1.1 首先须要定义映射sql的接口。代码例如以下:
package org.guus.inter; import java.util.List; import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.guus.bean.User; /**
*
* @描写叙述:定义sql映射的接口,使用注解指明方法要运行的SQL
* @author Guus
* @date 2015年8月7日
*/
public interface UserMapperInterface { //使用@Insert注解指明add方法要运行的SQL
@Insert("insert into users(name, age) values(#{name}, #{age})")
public int add(User user); //使用@Delete注解指明deleteById方法要运行的SQL
@Delete("delete from users where id=#{id}")
public int deleteById(int id); //使用@Update注解指明update方法要运行的SQL
@Update("update users set name=#{name},age=#{age} where id=#{id}")
public int update(User user); //使用@Select注解指明getById方法要运行的SQL
@Select("select * from users where id=#{id}")
public User getById(int id); //使用@Select注解指明getAll方法要运行的SQL
@Select("select * from users")
public List<User> getAll();
}
1.2 接着须要在mybatis-config.xml配置文件里注冊这个接口。详细例如以下:
<? 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">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="2015" />
</dataSource>
</environment>
</environments> <mappers>
<!-- 注冊userMapper.xml文件, userMapper.xml位于org.guus.mapping这个包下,
所以resource写成org/guus/mapping/userMapper.xml -->
<mapper resource="org/guus/mapping/userMapper.xml" />
<!-- 注冊UserMapper映射接口-->
<mapper class="org.guus.inter.UserMapperInterface"/>
</mappers> </configuration>
1.3 以下我们编写測试类进行測试 ,測试类中用的SessionUtil是一个获取Session的工具类,详细见:MyBatis
-- 对表进行增删改查(基于XML的实现)
package org.guus.test; import java.io.IOException;
import java.util.List; import org.apache.ibatis.session.SqlSession;
import org.guus.bean.User;
import org.guus.inter.UserMapperInterface;
import org.guus.utils.SessionUtil;
import org.junit.Test; /**
*
* @描写叙述:測试MyBatis的CURD操作 -- 基于注解
* @author Guus
* @date 2015年8月7日
*/
public class TestCURD2 { @Test
public void Add() throws IOException{
SqlSession sqlSession = SessionUtil.getSqlSession(true); //true代表自己主动提交事务
//得到UserMapperI接口的实现类对象,UserMapperI接口的实现类对象由sqlSession.getMapper(UserMapperI.class)动态构建出来
UserMapperInterface mapper = sqlSession.getMapper(UserMapperInterface.class);
User user = new User();
user.setName("Guus3");
user.setAge(3);
//运行插入操作
int retResult = mapper.add(user);
//使用SqlSession运行完SQL之后须要关闭SqlSession
sqlSession.close();
System.out.println("Add操作返回值----> "+retResult);
} @Test
public void Update() throws IOException{
SqlSession sqlSession = SessionUtil.getSqlSession(true);
UserMapperInterface mapper = sqlSession.getMapper(UserMapperInterface.class);
User user = new User();
user.setId(3);
user.setName("Guus333");
user.setAge(4);
//运行改动操作
int retResult = mapper.update(user);
sqlSession.close();
System.out.println("Update操作返回值----> "+retResult);
} @Test
public void Delete() throws IOException{
SqlSession sqlSession = SessionUtil.getSqlSession(true);
UserMapperInterface mapper = sqlSession.getMapper(UserMapperInterface.class);
//运行删除操作
int retResult = mapper.deleteById(2);
sqlSession.close();
System.out.println("Delete操作返回值----> "+retResult);
} @Test
public void GetAll() throws IOException{
SqlSession sqlSession = SessionUtil.getSqlSession();
UserMapperInterface mapper = sqlSession.getMapper(UserMapperInterface.class);
//运行查询操作。将查询结果自己主动封装成List<User>返回
List<User> lstUsers = mapper.getAll();
sqlSession.close();
System.out.println("GetAll操作返回值----> "+lstUsers);
}
}
1.4 測试结果:
MyBatis -- 对表进行增删改查(基于注解的实现)的更多相关文章
- MyBatis简单的增删改查以及简单的分页查询实现
MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...
- Mybatis入门之增删改查
Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...
- Mybatis实现简单增删改查
Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...
- 基于SSM之Mybatis接口实现增删改查(CRUD)功能
国庆已过,要安心的学习了. SSM框架以前做过基本的了解,相比于ssh它更为优秀. 现基于JAVA应用程序用Mybatis接口简单的实现CRUD功能: 基本结构: (PS:其实这个就是用的Mapper ...
- mybatis中的增删改查操作
在这一个部分,主要进行增删改查的示例书写. 增删改查可以基于xml的,也可以基于注解的方式. 一:对单条数据的查询 1.目录结构 这个使得目录更加清晰 2.User.java 这个使用以前的user表 ...
- SpringMVC,MyBatis商品的增删改查
一.需求 商品的增删改查 二.工程结构 三.代码 1.Mapper层 (1) ItemsMapperCustom.java package com.tony.ssm.mapper; import ja ...
- SpringBoot2+Druid+MyBatis+MySql实现增删改查
1.配置pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...
- Mybatis的简单增删改查
刚开始学习Mybatis可以先看下官方文档,MyBatis是支持定制化SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis避免了几乎所有的JDBC代码和手工设置参数以及抽取结果集.MyBat ...
- ztree使用系列三(ztree与springmvc+spring+mybatis整合实现增删改查)
在springmvc+spring+mybatis里整合ztree实现增删改查,上一篇已经写了demo,以下就仅仅贴出各层实现功能的代码: Jsp页面实现功能的js代码例如以下: <script ...
随机推荐
- 使用Jquery.form.js ajax表单提交插件弹出下载提示框
现象: 使用jquery的from做ajax表单提交的时候,后台处理完毕返回json字符串,此时浏览器提示下载一个json文件而不是在success里面继续解析该json对象. 具体的原因: 浏览器兼 ...
- [ SCOI 2008 ] 着色方案
\(\\\) \(Description\) 给出\(K\)种颜料各自的个数\(C_i\),每一个颜料只够涂一个格子,求将颜料用完,涂一排格子,每个格子只能涂一次的条件下,相邻两个格子的颜色互不相同的 ...
- debounce还是throttle(去抖和节流)
debounce 去抖 我的理解很简单,比方说window.onscroll会疯狂触发handler,此时给它一个debounce(handler, delayTime). 就是不管你延时时间内触发了 ...
- html5——全屏滚动
鼠标滚轮 window.onmousewheel=function(){}; 基本描述 1.我们使用插件fullpage,为了更好的兼容性 2.动画效果是在滚动到这一屏时触发的,此时给当前屏幕加cur ...
- java 操作clob
之前在学校的时候做的都是练习,小儿科,遇到的情况完全都在自己的设想范围内.最近老是遇到字段溢出的情况,但是varchar2好像最长也只有4000个字符.所以不得不另辟蹊径,就找上了clob字段. pa ...
- Oracle、Db2、SqlServer、MySQL 数据库插入当前系统时间
做易买网项目,由于对数据库插入系统时间不了解,常常遇到的问题: 1.java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配.原因:由于获取系统时间类型不对,应为sy ...
- OpenCV3 Java 机器学习使用方法汇总
原文链接:OpenCV3 Java 机器学习使用方法汇总 前言 按道理来说,C++版本的OpenCV训练的版本XML文件,在java中可以无缝使用.但要注意OpenCV本身的版本问题.从2.4 到3 ...
- Linux 通过cksum 来判断文件是否是相同
1. 最近scp部署文件时 发现日期会发生变化 (刚查了下 可以使用 -p 命令进行处理) 会变成部署时的日期. 不好判断文件倒是有没有部署 2. 最简单的办法 我mount了 补丁服务器 到lin ...
- 国密SSL证书免费试用申请指南
沃通提供国密SSL证书免费申请试用服务,一次申请可同时签发SM2/RSA双算法证书,试用周期1个月,用于测试国密SM2 SSL证书的运行效果和SM2/RSA双证书部署效果. 试用产品:SM2/RSA双 ...
- sysbench测试阿里云CPU
参考 https://wiki.mikejung.biz/Benchmarking 买了一个1核的ECS,测试一下CPU性能 第一次是只用1个thread去跑 [root@iZwz9fy718twfi ...