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 ...
随机推荐
- Objective-C——关联对象
动态语言 OC是一种动态语言,它的方法,对象的类型都是到运行的时候才能够确定的.所以这就使得OC存在了关联对象这一强大的机制. 关联对象 所谓关联对象,其实就是我们在运行时对一个已存在的对象上面绑定一 ...
- Android studio & SDK的国内有效站点。
SDK.TOOLS的国内有效镜像节点: mirrors.zzu.edu.cn/android/repository/ 网上的地址只写了mirrors.zzu.edu.cn,有误,需要补齐后面的子目录才 ...
- C#——反射动态创建类的实例
“反射”其实就是利用程序集的元数据信息. 反射可以有很多方法,编写程序时请先导入 System.Reflection 命名空间. 若要反射当前项目中的类(即当前项目已经引用它了),可以使用下面的写法. ...
- servlet-请求重定向
package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.ser ...
- WPF中的两个绑定场景
1. 如何在诸如ListBox这样的项中绑定父类数据上下文. <ListBox Grid.Row=" ItemsSource="{Binding Entries}" ...
- HDU_1068_Girls and Boys_二分图匹配
Girls and Boys Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- css nth-child 的应用
最近改视频监控页面,由于窗口比较多,以前是通过计算窗口大小位置来处理页面布局的,其实还是比较麻烦,而且偶尔会有页面位置错乱的现象,虽然只是及其偶尔的现象,但总归是不好. 计算窗口位置的代码: /*监控 ...
- 如何将本地项目上传到gitlab上?
git push后需要输入用户名,密码 这是上传成功显示的页面 打开gitLab项目地址检查代码是否被正确上传 上传前: 上传后 这就完成将项目上传到gitlab了
- chrome浏览器处理本地Ajax跨域
chrome浏览器下 项目开发过程中,用到了Ajax异步请求.若将项目放在本地服务器中,通过localhost访问文件,不会报错.若直接通过file://访问文件就会报错. 报错信息: XMLHttp ...
- 简述cookie ,localStrage,sessionStorage的区别?
1.cookie: 是一个回话跟踪技术,信息存储在用户硬盘,可以做全局变量. 什么是会话:用户进入网站,开始浏览到结束的这样的一个过程,称为一次会话. 会话跟踪技术:浏览器和服务器之间进行多次请求数据 ...