mybatis的纯注解开发中使用到的注解,mybatis注解开发动态sql

  mybatis的纯注解开发中使用到的注解,mybatis注解开发动态sql

  

目录

米巴提斯注解开发单表操作米巴蒂斯的常用注解米巴蒂斯的增删改查注解开发总结常用注解配置映射关系练习项目代码

 

  

Mybatis注解开发单表操作

 

  

MyBatis的常用注解

米巴提斯也可以使用注解开发方式,这样我们就可以减少编写制图人映射文件了。我们先围绕一些基本的令人厌恶的东西来学习,再学习复杂映射多表操作。

 

  注解说明@插入实现新增@更新实现更新@删除实现删除@选择实现查询@结果实现结果集封装@结果可以与@结果一起使用,封装多个结果集@一个实现一对一结果集封装@许多实现一对多结果集封

  

MyBatis的增删改查

我们完成简单的学生表的增删改查的操作

 

  步骤一:创建制图人接口

  公共接口学生映射器{ //查询全部@Select(SELECT * FROM student )公共抽象列表学生select all();//新增操作@ Insert( Insert INTO Student VALUES(# { id }、#{name}、# { age }))public abstract Integer Insert(Student stu);//修改操作@ Update( Update Student SET name=# { name },age=#{age}其中id=#{id} )公共抽象整数更新(学生stu);//删除操作@ Delete(从id=# { id } 的学生中删除)公共抽象整数删除(整数id);}步骤二:测试类

  公共类Test 01 { @ Test public void selectAll()抛出异常{ //1。加载核心配置文件InputStream是=资源。getresourceasstream( mybatisconfig。XML’);//2.获取使用工厂对象SqlSessionFactory SqlSessionFactory=new SqlSessionFactory builder().构建(是);//3.通过工厂对象获取使用对象SQL会话SQL会话=sqlsessionfactory。打开会话(true);//4.获取学生地图接口的实现类对象学生映射器映射器=SQL会话。获取映射器(学生映射器。类);//5.调用实现类对象中的方法,接收结果列出学生列表=映射器。select all();//6.处理结果对于(学生学生:列表){ System.out.println(学生);} //7.释放资源SQL会话。close();是。close();} @测试公共void insert()抛出异常{ //1。加载核心配置文件InputStream是=资源。getresourceasstream( mybatisconfig。XML’);//2.获取使用工厂对象SqlSessionFactory SqlSessionFactory=new SqlSessionFactory builder().构建(是);//3.通过工厂对象获取使用对象SQL会话SQL会话=sqlsessionfactory。打开会话(true);//4.获取斯图登

  tMapper接口的实现类对象 StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); //5.调用实现类对象中的方法,接收结果 Student stu = new Student(4,"赵六",26); Integer result = mapper.insert(stu); //6.处理结果 System.out.println(result); //7.释放资源 sqlSession.close(); is.close(); } @Test public void update() throws Exception{ //1.加载核心配置文件 InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml"); //2.获取SqlSession工厂对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //3.通过工厂对象获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(true); //4.获取StudentMapper接口的实现类对象 StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); //5.调用实现类对象中的方法,接收结果 Student stu = new Student(4,"赵六",36); Integer result = mapper.update(stu); //6.处理结果 System.out.println(result); //7.释放资源 sqlSession.close(); is.close(); } @Test public void delete() throws Exception{ //1.加载核心配置文件 InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml"); //2.获取SqlSession工厂对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //3.通过工厂对象获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(true); //4.获取StudentMapper接口的实现类对象 StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); //5.调用实现类对象中的方法,接收结果 Integer result = mapper.delete(4); //6.处理结果 System.out.println(result); //7.释放资源 sqlSession.close(); is.close(); }}例如运行test1结果如下:

  

 

  注意:

  修改MyBatis的核心配置文件,我们使用了注解替代的映射文件,所以我们只需要加载使用了注解的Mapper接口即可

  

<mappers> <!--扫描使用注解的类--> <mapper class="com.yyl.mapper.UserMapper"></mapper></mappers>

或者指定扫描包含映射关系的接口所在的包也可以

 

  

<mappers> <!--扫描使用注解的类所在的包--> <package name="com.yyl.mapper"></package></mappers>

 

  

 

  

注解开发总结

注解可以简化开发操作,省略映射配置文件的编写。

 

  

 

  

常用注解

@Select(查询的 SQL 语句):执行查询操作注解@Insert(查询的 SQL 语句):执行新增操作注解@Update(查询的 SQL 语句):执行修改操作注解@Delete(查询的 SQL 语句):执行删除操作注解

 

  

 

  

配置映射关系

<mappers> <package name="接口所在包"/> </mappers>

 

  

练习项目代码

bean

 

  

package com.yyl.bean;public class Student { private Integer id; private String name; private Integer age; public Student() { } public Student(Integer id, String name, Integer age) { this.id = id; this.name = name; this.age = age; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Student{" + "id=" + id + ", name=" + name +  + ", age=" + age + }; }}

mapper.class

 

  

package com.yyl.mapper;import com.yyl.bean.Student;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;public interface StudentMapper { //查询全部 @Select("SELECT * FROM student") public abstract List<Student> selectAll(); //新增操作 @Insert("INSERT INTO student VALUES (#{id},#{name},#{age})") public abstract Integer insert(Student stu); //修改操作 @Update("UPDATE student SET name=#{name},age=#{age} WHERE id=#{id}") public abstract Integer update(Student stu); //删除操作 @Delete("DELETE FROM student WHERE id=#{id}") public abstract Integer delete(Integer id);}

test

 

  

package com.yyl.test;import com.yyl.bean.Student;import com.yyl.mapper.StudentMapper;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.Test;import java.io.InputStream;import java.util.List;public class Test01 { @Test public void selectAll() throws Exception{ //1.加载核心配置文件 InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml"); //2.获取SqlSession工厂对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //3.通过工厂对象获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(true); //4.获取StudentMapper接口的实现类对象 StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); //5.调用实现类对象中的方法,接收结果 List<Student> list = mapper.selectAll(); //6.处理结果 for (Student student : list) { System.out.println(student); } //7.释放资源 sqlSession.close(); is.close(); } @Test public void insert() throws Exception{ //1.加载核心配置文件 InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml"); //2.获取SqlSession工厂对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //3.通过工厂对象获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(true); //4.获取StudentMapper接口的实现类对象 StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); //5.调用实现类对象中的方法,接收结果 Student stu = new Student(4,"赵六",26); Integer result = mapper.insert(stu); //6.处理结果 System.out.println(result); //7.释放资源 sqlSession.close(); is.close(); } @Test public void update() throws Exception{ //1.加载核心配置文件 InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml"); //2.获取SqlSession工厂对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //3.通过工厂对象获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(true); //4.获取StudentMapper接口的实现类对象 StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); //5.调用实现类对象中的方法,接收结果 Student stu = new Student(4,"赵六",36); Integer result = mapper.update(stu); //6.处理结果 System.out.println(result); //7.释放资源 sqlSession.close(); is.close(); } @Test public void delete() throws Exception{ //1.加载核心配置文件 InputStream is = Resources.getResourceAsStream("MyBatisConfig.xml"); //2.获取SqlSession工厂对象 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); //3.通过工厂对象获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(true); //4.获取StudentMapper接口的实现类对象 StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); //5.调用实现类对象中的方法,接收结果 Integer result = mapper.delete(4); //6.处理结果 System.out.println(result); //7.释放资源 sqlSession.close(); is.close(); }}

xml

 

  

<?xml version="1.0" encoding="UTF-8" ?><!--MyBatis的DTD约束--><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><!--configuration 核心根标签--><configuration> <!--引入数据库连接的配置文件--> <properties resource="jdbc.properties"/> <!--配置LOG4J--> <settings> <setting name="logImpl" value="log4j"/> </settings> <!--起别名--> <typeAliases> <package name="com.yyl.bean"/> </typeAliases> <!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个--> <environments default="mysql"> <!--environment配置数据库环境 id属性唯一标识--> <environment id="mysql"> <!-- transactionManager事务管理。 type属性,采用JDBC默认的事务--> <transactionManager type="JDBC"></transactionManager> <!-- dataSource数据源信息 type属性 连接池--> <dataSource type="POOLED"> <!-- property获取数据库连接的配置信息 --> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <!--配置映射关系--> <mappers> <package name="com.yyl.mapper"/> </mappers></configuration>

到此这篇关于Mybatis示例讲解注解开发中的单表操作的文章就介绍到这了,更多相关Mybatis单表操作内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: