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 ...
随机推荐
- Ubuntu 系统的常用快捷键
Ubuntu操作基本快捷键 ibus-setup :设置系统输入法 scp filename username@serverIp:/home/xxx/xxx/filename 回车输入该usern ...
- Leetcode0006--ZigZag Conversion
[转载请注明]https://www.cnblogs.com/igoslly/p/9017638.html 来看一下题目: The string "PAYPALISHIRING" ...
- win32窗口映射(部分)
先理解一下“窗口”与“视区”的概念.“窗口”是逻辑坐标下的矩形区域,“视区”是设备坐标系下的区域.根据“窗口”和“视区”的大小可以确定x方向和y方向的比例因子. 例子如下: VOID OnPaint( ...
- redis集群——RPLR简笔(Redis+PostgreSQL+Linux(centos7)+RabbitMQ)
使用的是centos7. 1.下载最新redis源码,解压(2016-05-12最新版本为3.2.0,3.0及以上才有官方集群) 2.进入源码根目录(此目录下的redis-stable目录),找到ut ...
- java攻城狮之路--复习JDBC(数据库连接池 : C3P0、DBCP)
复习数据库连接池 : C3P0.DBCP 1.数据库连接池技术的优点: •资源重用: 由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销.在减少系统消耗的基础上,另一方面也增 ...
- hibernate工作流程、session
hibernate是对jdbc的封装,不建议直接使用jdbc的connection操作数据库,而是通过session操作数据库.session可以理解为操作数据库的对象. session与connec ...
- Sping——使用注解创建切面
为讲解例子,我们首先定义一个Performance接口: package aoptest; public interface Performance { public void perform(); ...
- 可以用作javascript异步模式的函数写法
1. 回调函数 f1(); f2(); function f1(callback) { setTimeout(function() { // f1的任务代码 callback(); }, 1000); ...
- Java面向对象多态
Java面向对象多态 7.2对象 7.2.1创建对象 对象是类的实例 类的名称 对象名称 = new 类的名称(); 7.3继承 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域 ...
- 【转载】IDEA:XML配置提示URI is not registered
在idea开发中,遇到xml提示URI is not registered....其实是idea找不到约束文件,下面讲解一下如何解决这一个问题吧. 现的问题是,xml文件右边有提示,提示内容为:URI ...