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两种方式. 在使用的过程中一 ...
随机推荐
- UART, SPI, IIC的详解及三者的区别和联系
UART.SPI.IIC是经常用到的几个数据传输标准,下面分别总结一下: UART(Universal Asynchronous Receive Transmitter):也就是我们经常所说的串口,基 ...
- OpenCV——Brisk特征检测、匹配与对象查找
检测并绘制特征点: #include <opencv2/opencv.hpp> #include <opencv2/xfeatures2d.hpp> #include < ...
- vector,deque,list的区别和使用
vector: 表示一段连续的内存区域,每个元素被顺序存储在这段内存中,对vector的随机访问效率很高,但对非末尾元素的插入和删除则效率非常低. deque: 也表示N段连续的内存区域组成,但与ve ...
- Jredis的使用范例
简单使用 public class JedisTest { private static final Logger LOGGER = LoggerFactory.getLogger(JedisTest ...
- PRML1-引言
本系列是根据<pattern recognition and machine learning>一书写的,算是读书笔记?算是吧.因为是从自己角度出发,所以其实很大程度上自己看得懂,估计别人 ...
- 生成定长随机数-可做3des密钥
3DES加解密需要密钥支持,要求为8的倍数,一般会使用32位的字母数字随机字符串作为密钥. 下面这个工具类,可用做key值的生成,详见下方代码: package test; import java.u ...
- 20155338《网络对抗》Exp3 免杀原理与实践
20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.v ...
- SVD(奇异值分解)Python实现
注:在<SVD(奇异值分解)小结 >中分享了SVD原理,但其中只是利用了numpy.linalg.svd函数应用了它,并没有提到如何自己编写代码实现它,在这里,我再分享一下如何自已写一个S ...
- DynamicDataDisplay 实时曲线图的使用和沿轴移动的效果
原文:DynamicDataDisplay 实时曲线图的使用和沿轴移动的效果 由于项目需要,最近在找关于绘制实时曲线图的文章,但看了很多自己实现的话太慢,所以使用了第三方控件来实现(由 ...
- PostgreSQL杂记页
磨砺技术珠矶,践行数据之道,追求卓越价值 luckyjackgao@gmail.com 返回顶级页:PostgreSQL索引页 此页,记录其他数据库,linux以及各种点滴事项 1--数据库设计 1 ...