mybatis开发dao三种方式,mybatis调用dao接口就能
目录
刀代理实现数据库操作1、去掉大刀接口实现类2、getMapper获取代理对象3、使用大刀代理对象方法执行结构化查询语言语句4、深入理解参数参数类型一个简单参数使用@Param使用对象
DAO代理实现数据库操作
1、去掉Dao接口实现类
2、getMapper获取代理对象
只需调用使用的getMapper()方法,即可获取指定接口的实现类对象。该方法的参数为指定大刀接口类的班级值。
SQL会话会话=工厂。opensession();学生道道=会话。获取映射器(学生道。类);使用工具类
学生道学生道=mybatisutil。getsql会话().获取映射器(学生道。类);getMapper()创建的对象,是代替我们自己创建的学生实现类类
3、使用 Dao 代理对象方法执行 sql 语句
选择方法进行查询
@Testpublic void testSelect()抛出io异常{最终列表学生学生列表=学生Dao。选择学生();学生名单。foreach(stu-系统。出去。println(stu));}插入方法进行插入
@Testpublic void testInsert()抛出io异常{学生学生=新学生();学生。setid(1006);student.setName(林浩);student.setEmail(林好@ 163 .com’);学生。setage(26);int nums=学生道。插入学生(学生);System.out.println(使用大刀添加数据: nums);}
4、深入理解参数
从爪哇岛代码中把参数传递到mapper.xml文件。
parameterType
参数类型:接口中方法参数的类型, 类型的完全限定名或别名。这个属性是可选的,因为米巴蒂斯可以推断出具体传入语句的参数,默认值为未设置(未设置).接口中方法的参数从爪哇岛代码传入到制图人文件的结构化查询语言语句。
(同国际组织)国际组织或整数散列表或java.util.HashMap列表或java.util.ArrayList学生或com。bjpower节点。域。学生选择、插入、更新、删除都可以使用参数类型指定类型。
eg:
删除id=删除学生参数type= int 从学生中删除,其中id=# {学生id }/delete等同于删除id=删除学生参数type= Java。郎。integer 从id=# {学生id }/delete的学生中删除
一个简单参数
刀接口中方法的参数只有一个简单类型(java基本类型和字符串),占位符#{ 任意字符},和方法的参数名无关。
接口方法
学生select byid(int id);制图人文件
ass="brush:xml;"><select id="selectById" resultType="com.bjpowernode.domain.Student"> select id,name,email,age from student where id=#{studentId}</select>
#{studentId} , studentId 是自定义的变量名称,和方法参数名无关。
测试方法
@Testpublic void testSelectById(){ //一个参数 Student student = studentDao.selectById(1005); System.out.println("查询 id 是 1005 的学生:"+student);}
使用@Param
当 Dao 接口方法多个参数,需要通过名称使用参数。 在方法形参前面加 入@Param(“自定义参数名”),mapper 文件使用#{自定义参数名}。
例如定义 List<Student> selectStudent( @Param(“personName”)
String name ) { … }
mapper 文件 select * from student where name =
#{ personName}
接口方法
List<Student> selectMultiParam(@Param("personName") String name, @Param("personAge") int age);
Mapper文件
<select id="selectMultiParam" resultType="com.bjpowernode.domain.Student"> select id,name,email,age from student where name=#{personName} or age =#{personAge}</select>
测试方法
@Testpublic void testSelectMultiParam(){ List<Student> stuList = studentDao.selectMultiParam("李力",20); stuList.forEach( stu -> System.out.println(stu));}
使用对象
使用 java 对象传递参数, java 的属性值就是 sql 需要的参数值。 每一个属性就是一个参数。
语法格式: #{ property,javaType=java 中数据类型名
jdbcType=数据类型名称 } javaType, jdbcType 的类型 MyBatis 可以检测出来,一般不需要设置。常用格式 #{ property }
创建保存参数值的对象 QueryParam
package com.bjpowernode.vo; public class QueryParam { private String queryName; private int queryAge; //set ,get 方法}
接口方法
List<Student> selectMultiObject(QueryParam queryParam);
Mapper文件
<select id="selectMultiObject" resultType="com.bjpowernode.domain.Student"> select id,name,email,age from student where name=#{queryName} or age =#{queryAge}</select>或<select id="selectMultiObject" resultType="com.bjpowernode.domain.Student"> select id,name,email,age from student where name=#{queryName,javaType=string,jdbcType=VARCHAR} or age =#{queryAge,javaType=int,jdbcType=INTEGER}</select>
测试方法
@Testpublic void selectMultiObject(){ QueryParam qp = new QueryParam(); qp.setQueryName("李力"); qp.setQueryAge(20); List<Student> stuList = studentDao.selectMultiObject(qp); stuList.forEach( stu -> System.out.println(stu));}
到此这篇关于MyBatis详细讲解DAO代理的使用的文章就介绍到这了,更多相关MyBatis DAO代理内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。