J2EE系列之MyBatis学习笔记(八)-- 杂项
来源:互联网 发布:证券分析软件 编辑:程序博客网 时间:2024/06/05 09:45
mybatis最主要的知识已经讲完。这篇博客将一些mybatis的细节知识。
一、处理CLOB、BLOB 类型数据
CLOB是大文本类型的数据,比如小说这种很多字符的数据。BLOB是二进制数据,用来存放图片、视频等数据。
1.打开mysql数据库,把t_student表进行修改如下:删除与t_grade和t_address表的关联关系,并添加新的字段为:
这里添加了字段pic,这个字段存储学生的相片,类型为longblob,mysql中blob类型比较小,这里使用longblob。字段remark存储学生的简历,使用longtext类型(clob类型在mysql中为longtext)
2.修改类Student为:
这里相应的添加了两个属性代表学生的相片和建立了。生成这两个属性的get和set方法。
3.StudentMapper中添加接口:
public int insertStudent(Student student);public Student getStudentById(Integer id);添加了两个方法分别为添加学生和获取学生
4.sql映射器中实现这两个方法:
<insert id="insertStudent" parameterType="Student">insert into t_student values(null,#{name},#{age},#{pic},#{remark})</insert>
这里先实现插入方法。
5.写测试方法:
@Testpublic void testInsertStudent(){logger.info("添加学生");Student student = new Student();student.setName("张三4");student.setAge(14);student.setRemark("很长的文本");byte[] pic = null;try{File file = new File("C://boy.jpg");InputStream inputStream = new FileInputStream(file);pic = new byte[inputStream.available()];inputStream.read(pic);inputStream.close();}catch(Exception e){e.printStackTrace();}student.setPic(pic);studentMapper.insertStudent(student);sqlSession.commit();}
这里特别注意对照片的处理。使用的是二进制流的方式把照片存入到数据库中。
运行测试方法:
可以发现图片和文本已经存入到了数据库中。双击图片,能够显示出图片。
5.获取学生方法实现:
<select id="getStudentById" parameterType="Integer" resultType="Student">select * from t_student where id=#{id}</select>
6.添加测试方法:
@Testpublic void testGetStudentById(){logger.info("通过id查找学生");Student student = studentMapper.getStudentById(6);System.out.println(student);byte[] pic = student.getPic();try{File file = new File("D://boy2.jpg");OutputStream outputStream = new FileOutputStream(file);outputStream.write(pic);outputStream.close();}catch(Exception e){e.printStackTrace();}}这里把数据库中的图片取出后放在了d盘下。
运行测试方法,可以发现D盘出现了需要的图片。
二、传入多个输入参数
前面的例子中讲到的传入多个输入参数时使用的是map类型,这个是最常用的方式,以后的开发中都要使用这种方式。这里要讲的传入多个参数知识只是作为了解,使用不到。
1.添加接口方法
public List<Student> searchStudents6(String name,int age);这个查询中传入了两个参数(实际开发中使用map形式),通过这两个参数来查询学生。
2.实现这个方法:
<select id="searchStudents6" resultMap="StudentResult">select * from t_student where name like #{param1} and age=#{param2}</select>
这里注意了,使用param1代表第一个输出的参数,使用param2代表第二个输入的参数。
3.写测试方法:
@Testpublic void testSearchStudents6() {logger.info("查询学生(带条件)");List<Student> studentList = studentMapper.searchStudents6("%李%",11);for(Student s:studentList){System.out.println(s);}}
运行这个测试方法,得到相应的数据。
阅读全文
0 0
- J2EE系列之MyBatis学习笔记(八)-- 杂项
- J2EE系列之MyBatis学习笔记(九)-- 杂项
- J2EE系列之MyBatis学习笔记(二)-- mybatis配置
- J2EE系列之MyBatis学习笔记(一)-- 简介
- J2EE系列之MyBatis学习笔记(六)-- 动态sql
- J2EE系列之MyBatis学习笔记(七)-- 动态sql
- MyBatis学习笔记(五)--MyBatis杂项
- J2EE系列之MyBatis学习笔记(四)-- mybatis关系映射(一对一映射)
- J2EE系列之MyBatis学习笔记(五)-- mybatis关系映射(一对多映射)
- J2EE系列之Spring4学习笔记(八)--AOP详解(AOP实例)
- J2EE系列之Struts2学习笔记(八)--struts.xml分模块配置
- J2EE系列之Hibernate4学习笔记(八)--Hibernate基本类型映射
- J2EE系列之MyBatis学习笔记(三)-- 使用XML配置SQL映射器
- J2EE系列之MyBatis学习笔记(十)-- 使用注解配置sql映射器
- J2EE系列之MyBatis学习笔记(十一)-- 使用注解配置sql映射器
- J2EE系列之MyBatis学习笔记(十二)-- 使用注解配置sql映射器
- J2EE系列之MyBatis学习笔记(十三)-- SSM框架搭建
- J2EE系列之Struts2学习笔记(十一)--result配置
- js循环处理的表达式 for、for in、while
- Epplus读取Excel
- 算法分析要点
- android studio ndk开发so找不到,so位置小概率问题
- 解决Win7系统提示调查路由器或访问点问题的方法
- J2EE系列之MyBatis学习笔记(八)-- 杂项
- 什么是深度优先搜索和广度优先搜索
- ValueAnimator详解
- 265. Paint House II
- python路径相关的函数
- 交换输出
- 素数求和
- LintCode 整数排序
- eclipse更改仓库的数据源,变为阿里数据源