mybatis之注解方式实现
* 使用mybatis举例,使用注解方式实现
* 不需要针对UserMapperI接口去编写具体的实现类代码,这个具体的实现类由MyBatis帮我们动态构建出来,我们只需要直接拿来使用即可。
* 1、导入jar包:mybatis和mysql-connector
* 2、mybatis配置文件:mybatis-config.xml,加载Mapper接口路径
* 3、编写JavaBean类:UserBean
* 4、编写执行sql接口
* 5、编写测试类进行测试 mybatis-config-zhujie.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>
<!--从外部配置文件导入jdbc信息-->
<properties resource="jdbc.properties"></properties> <environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<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> <!--指定映射资源文件-->
<mappers>
<mapper class="zhujie.UserMapperInterface"></mapper> </mappers>
</configuration>
UserMapperInterface.java
package zhujie; import bean.UserSalary;
import first.UserBean;
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 java.util.List; /*
* 使用mybatis举例,使用注解方式实现
* 不需要针对UserMapperI接口去编写具体的实现类代码,这个具体的实现类由MyBatis帮我们动态构建出来,我们只需要直接拿来使用即可。
* 1、导入jar包:mybatis和mysql-connector
* 2、mybatis配置文件:mybatis-config.xml,加载Mapper接口路径
* 3、编写JavaBean类:UserBean
* 4、编写执行sql接口
* 5、编写测试类进行测试,自动实例化,调用方法
* */
public interface UserMapperInterface { // UserBean
@Select("select * from user where id = #{id}")
public UserBean selectOneUser(int id); @Select("select * from user")
public List<UserBean> selectAllUser(); @Insert("insert into user (id, name, age) values (#{id} ,#{name}, #{age})")
public int insertUser(UserBean userBean); @Update("update user set name=#{name} where id=#{id}")
public int updateUser(UserBean userBean); @Delete("delete from user where id=#{id}")
public int deleteById(int id); @Delete("delete from user where id=#{id}")
public int deleteByUserBean(UserBean userBean); // 使用User和Salary表联合查询
@Select("select u.id, u.name, u.age, s.salary from user u, salary s where u.name = s.name and u.name = #{name}")
public UserSalary selectOneUserSalary(String name); }
TestZhuJie.java
package zhujie; import bean.UserSalary;
import first.UserBean;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; import java.io.IOException;
import java.io.InputStream;
import java.util.List; /*
* 使用mybatis举例,使用注解方式实现
* 不需要针对UserMapperI接口去编写具体的实现类代码,这个具体的实现类由MyBatis帮我们动态构建出来,我们只需要直接拿来使用即可。
* 1、导入jar包:mybatis和mysql-connector
* 2、mybatis配置文件:mybatis-config.xml,加载Mapper接口路径
* 3、编写JavaBean类:UserBean
* 4、编写执行sql接口
* 5、编写测试类进行测试
* */
public class TestZhuJie {
String resource = "mybatis-config-zhujie.xml";
SqlSessionFactory sqlSessionFactory = null;
SqlSession session = null; @Before
public void before() {
// System.out.println("Before");
try {
InputStream inputStream = Resources.getResourceAsStream(resource);
// 创建工厂
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建session对象
session = sqlSessionFactory.openSession(); } catch (IOException e) {
e.printStackTrace();
}
} @After
public void close() {
session.close();
// System.out.println("After");
} @Test
public void testSelectOneUser() {
// 接口自动实例化
UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
// 执行sql
UserBean userBean = userMapperInterface.selectOneUser(1);
System.out.println(userBean);
} // 批量查询
@Test
public void testSelectAllUser() {
// 接口自动实例化
UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
// 执行sql
List<UserBean> listUserBean = userMapperInterface.selectAllUser();
System.out.println("记录个数:" + listUserBean.size());
System.out.println(listUserBean);
} @Ignore
@Test
public void testInsertUser() {
UserBean userBean = new UserBean("CoCo2", "50");
UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
int n = userMapperInterface.insertUser(userBean);
// 提交
session.commit();
System.out.println("插入数据成功:" + userBean);
} @Ignore
@Test
public void testUpdateUser() {
UserBean userBean = new UserBean(2, "Tom44", "40");
UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
userMapperInterface.updateUser(userBean);
session.commit();
System.out.println("修改数据成功:" + userBean);
} @Ignore
@Test
public void testDeleteUser() {
UserBean userBean = new UserBean(15, "XXX", "40");
UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
int n = userMapperInterface.deleteByUserBean(userBean);
session.commit();
System.out.println("删除数据成功:" + userBean);
System.out.println("操作成功记录数:" + n);
} @Test
public void testSelectOneUserSalary() {
// 接口自动实例化
UserMapperInterface userMapperInterface = session.getMapper(UserMapperInterface.class);
// 执行sql
UserSalary userSalary = userMapperInterface.selectOneUserSalary("Tom");
System.out.println(userSalary);
} }
mybatis之注解方式实现的更多相关文章
- SpringBoot入门教程(四)MyBatis generator 注解方式和xml方式
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...
- MyBatis通过注解方式批量添加、修改、删除
唯能极于情,故能极于剑 注: 本文转载于:CodeCow · 程序牛 的个人博客:http://www.codecow.cn/ 一.数据库实体DO public class User implemen ...
- SpringBoot系列-整合Mybatis(注解方式)
目录 一.常用注解说明 二.实战 三.测试 四.注意事项 上一篇文章<SpringBoot系列-整合Mybatis(XML配置方式)>介绍了XML配置方式整合的过程,本文介绍下Spring ...
- MyBatis使用注解方式实现CRUD操作
一.使用注解后就不需要写SysGroupDaoMapper.xml 只需要在Dao的抽象方法前加上相应的注解就可以. package cn.mg39.ssm01.dao; import java.ut ...
- Mybatis通过注解方式实现批量插入数据库 及 常见的坑
原文地址:http://f0rb.iteye.com/blog/1207384 MyBatis中通过xml文件配置数据库批量操作的文章很多,比如这篇http://www.cnblogs.com/xcc ...
- Mybatis通过注解方式实现批量插入数据库
原文地址:http://f0rb.iteye.com/blog/1207384 MyBatis中通过xml文件配置数据库批量操作的文章很多,比如这篇http://www.cnblogs.com/xcc ...
- springboot整合mybatis之注解方式
1. 创建maven项目,工程目录如下图 2. 在pom.xml文件中添加mybatis依赖. 3. 创建实体类,并生成construct方法,getter和setter方法.同时在数据库中创建对应的 ...
- MyBatis 接口注解方式代替mapper.xml
https://blog.csdn.net/m0_38068812/article/details/86566929 spring boot(8)-mybatis三种动态sql 或者 这个 1. 代 ...
- 【spring boot】14.spring boot集成mybatis,注解方式OR映射文件方式AND pagehelper分页插件【Mybatis】pagehelper分页插件分页查询无效解决方法
spring boot集成mybatis,集成使用mybatis拖沓了好久,今天终于可以补起来了. 本篇源码中,同时使用了Spring data JPA 和 Mybatis两种方式. 在使用的过程中一 ...
随机推荐
- OpenCV——阈值化
上述五种结合CV_THRESH_OTSU(自适应阈值),写成:THRESH_BINARY | CV_THRESH_OTSU
- PAT A1004 Counting Leaves (30 分)——树,DFS,BFS
A family hierarchy is usually presented by a pedigree tree. Your job is to count those family member ...
- SQL 字符串分割表函数
--字符串分割表函数 ) ) declare @i int; declare @count int; ); ); declare @Index int; )) declare @rowID int; ...
- Java中的单利模式介绍
单利模式:本来是不准备写的,但是最近发现好多公司面试时都会或多或少的提到单利模式,因此今天把单利模式拉出来说说. 定义:只包含一个被称为单例类的特殊类.通过单例模式可以保证系统中一个类只有一个实例而且 ...
- P2331 [SCOI2005]最大子矩阵
题目描述 这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大.注意:选出的k个子矩阵不能相互重叠. 输入输出格式 输入格式: 第一行为n,m,k(1≤n≤100,1≤m≤2 ...
- W25Q128BV W25Q128FV W25Q128JV 什么区别?
W25Q128BV W25Q128FV W25Q128JV 什么区别? 官网没有找到 BV 的相关信息, 倒是有 FV,FW,JV,JW 信息..2019年1月19日19:09:55 F ...
- 从0开始学golang--2.1--如何去爬园子的数据
20天过去了,才开始写...主要还是因为自己懒吧.之前一边上班一边也有挤时间练习golang,可是写博客却老是不能行动,跑步也没跑了.突然的就懈怠了快一个月.可能也和开始玩the elder scro ...
- WPF的Style的TargetType不同写法的异同
原文:WPF的Style的TargetType不同写法的异同 <Style TargetType="TextBlock"> <Setter Property=&q ...
- POJ1035&&POJ3080&&POJ1936
字符串处理专题,很早就写好了然而忘记写blog了 1035 题意:给你一些单词作为字典.然后让你查找一些单词.对于每个单词,如果在字典中就输出它.否则输出所有它通过删除||增加||替换一个字符能得到的 ...
- 【HNOI2017】礼物
题面 题解 显然两个手环只需要一个的亮度增加\(c \in [-m, m]\)和原题是等价的. 于是可以写成这样一个公式: \[ \sum_{i = 1} ^ n(x_i - y_{i+k} + c) ...