Mybatis(3)

今天主要高了一下这下面两个el表达式的用法

输入参数:parameterType
1.类型为简单类型(8个基本类型+String)int,char,boolean,float,double,byte,long,short
#{任意值}
${value}

#{}自动给string加上’’(自动类型转换)
原 样 输 出 适 用 于 动 态 排 序 ( 动 态 字 段 ) 在 m a p p e r . x m l 文 件 中 &lt; s e l e c t &gt; 标 签 中 {}原样输出 适用于动态排序(动态字段) 在mapper.xml文件中&lt;select&gt;标签中 mapper.xml<select>{value}会出错,’‘需要在数据库中体现,
可以写成’${value}’

2.对象类型
#{任意值}
属 性 名 e g : {属性名}eg: eg:{stuName}

3.#{}可以防止sql注入
${}不可以

获取对象值:
select * from student where stuAge=#{stuAge} or stuName like #{stuName}
这种写法用student.setStuName("%sd%");
select * from student where stuAge=#{stuAge} or stuName like ‘%${stuName}%’
这种写法用student.setStuName(“sd”);

新的mapper.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper 
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:该Mapper.xml文件的唯一标识符 -->
<mapper namespace="org.qgm.Mapper.StudentMapper">
	<!-- id是用来唯一定位sql语句,parameterType是where后面要查找的类型,resulttype是*的返回值,*返回时类全部。 -->
	<select id="queryStudentByAddress" parameterType="student" resultType="student">
		select * from student where schoolAddress=#{address.schoolAddress} or homeAddress='${address.homeAddress}'
	</select>
	<select id="queryStudentByColumn" parameterType="String" resultType="student">
	select * from student order by ${value} DESC
	
	</select>
	<select id="queryStudentBystuno" parameterType="int"
		resultType="Student">
		select * from student where stuNo=${value}

	</select>
	
	<select id="queryStudentByHashmap" parameterType="Hashmap"
	resultType="student"
	>
	select * from student where stuAge=#{stuAge} or stuName like #{stuName}
	<!-- select * from student where stuAge=#{stuAge} or stuName like '%${stuName}%' -->
	</select>
	
	<select id="queryStudentBystuAgeorstuName" parameterType="student"
	resultType="student"
	>
	select * from student where stuAge=#{stuAge} or stuName like #{stuName}
	<!-- select * from student where stuAge=#{stuAge} or stuName like '%${stuName}%' -->
	</select>
	
	<select id="queryStudentBystuName" parameterType="String"
		resultType="Student">
		select * from student where stuName=#{stuName}
	<!-- select * from student where stuName='${value}' $只有这样写才能被识别-->
	</select>
	<!-- 
	使用转换器查询
	如果类属性与表中字段合理识别(string-varchar)则使用resultType
	否则使用resultmap
		 -->
	<select id="queryStudentBystunoWithConverter" parameterType="int"
		resultMap="studentResult">
		select * from student where stuNo=#{stuNo}

	</select>
	
	<resultMap type="student" id="studentResult">
		<!-- 分为主键和非主键
		主键用id,非主键用result
		 -->
		 <id property="stuNo" column="stuNo" />
		 <result property="stuName" column="stuName"/>
		 <result property="stuAge" column="stuAge"/>
		 <result property="graName" column="graName"/>
		 <result property="stuSex" column="stuSex" javaType="boolean" jdbcType="INTEGER"/>
	</resultMap>
	<insert id="addStudent" parameterType="Student">
		insert into
		student(stuNo,stuName,stuAge,graName)
		values(#{stuNo},#{stuName},#{stuAge},#{graName})

	</insert>
	<insert id="addStudentWithConverter" parameterType="Student">
		insert into
		student(stuNo,stuName,stuAge,graName,stuSex)
		values(#{stuNo},#{stuName},#{stuAge},#{graName},#{stuSex,javaType=Boolean,jdbcType=INTEGER})

	</insert>

	<delete id="deleteStudentByStuno" parameterType="int">
		delete from student where stuNo=#{stuNo}
	</delete>

	<update id="updataStudentByStuno" parameterType="Student">
		update student set stuName=#{stuName},stuAge=#{stuAge},graName=#{graName} where stuNo=#{stuNo}

	</update>

	<select id="queryAllStudent" resultType="Student">
	select * from student 

	</select>
	



</mapper>

新的TEST文件

package org.qgm.test;

import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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.qgm.Mapper.StudentMapper;
import org.qgm.entity.Address;
import org.qgm.entity.Student;

public class Test {
	// 用转换器查询单个
	public static void queryStudentByStunoWithConverter() throws IOException {

		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();

		// 由于之前在mapper中设置过了返回值对象,所以object对象即为student
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		Student student = studentmapper.queryStudentBystunoWithConverter(7);// 接口中的方法
		System.out.println(student);
		Session.close();

	}

	// 查询单个
	public static void queryStudentByStuno() throws IOException {

		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();

		// 由于之前在mapper中设置过了返回值对象,所以object对象即为student
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		Student student = studentmapper.queryStudentBystuno(7);// 接口中的方法
		System.out.println(student);
		Session.close();

	}

	// 查询单个用嵌套
	public static void queryStudentByAddress() throws IOException {

		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();

		// 由于之前在mapper中设置过了返回值对象,所以object对象即为student
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		Student student = new Student();
		Address address = new Address();
		address.setHomeAddress("nmsl");
		address.setSchoolAddress("dnmd");
		student.setAddress(address);
		List<Student> students = studentmapper.queryStudentByAddress(student);// 接口中的方法
		System.out.println(students);
		Session.close();

	}

	// 查询单个
	public static void queryStudentByHashmap() throws IOException {

		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();

		// 由于之前在mapper中设置过了返回值对象,所以object对象即为student
		Map<String , Object>studentMap=new HashMap<String, Object>();
		studentMap.put("stuAge", 18);
		studentMap.put("stuName", "gou");
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		List<Student> students=studentmapper.queryStudentByHashmap(studentMap);
		

		
		System.out.println(students);
		Session.close();

	}

	// 查询单个
	public static void queryStudentBystuAgeorstuName() throws IOException {

		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();

		// 由于之前在mapper中设置过了返回值对象,所以object对象即为student
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		Student student = new Student();
		student.setStuAge(9);
		student.setStuName("%sd%");// 实现模糊查询

		List<Student> students = studentmapper.queryStudentBystuAgeorstuName(student);// 接口中的方法
		System.out.println(students);
		Session.close();

	}

	// 查询单个byName
	public static void queryStudentByStuName() throws IOException {

		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();

		// 由于之前在mapper中设置过了返回值对象,所以object对象即为student
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		Student student = studentmapper.queryStudentBystuName("gouge");// 接口中的方法
		System.out.println(student);
		Session.close();

	}

	// 查询全部学生
	public static void queryAllStudentBystuno() throws IOException {
		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		// 由于之前在mapper中设置过了返回值对象,所以object对象即为student
		List<Student> students = studentmapper.queryAllStudent();
		System.out.println(students);
		Session.close();

	}

	// 查询全部学生
	public static void queryStudentByColumn() throws IOException {
		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		// 由于之前在mapper中设置过了返回值对象,所以object对象即为student
		List<Student> students = studentmapper.queryStudentByColumn("stuName");
		System.out.println(students);
		Session.close();

	}

	// 用转换器增加学生
	public static void addStudentWithConverter() throws IOException {
		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		Student student = new Student(9, "gouge", 18, "suipi", true);
		studentmapper.addStudentWithConverter(student);
		System.out.println("增加成功");
		Session.close();

	}

	// 增加学生
	public static void addStudent() throws IOException {
		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		Student student = new Student(7, "sd", 48, "sdw");
		studentmapper.addStudent(student);
		System.out.println("增加成功");
		Session.close();

	}

	// 删除学生
	public static void deleteStudentBystuNo() throws IOException {

		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		studentmapper.deleteStudentByStuno(4);

		System.out.println("删除成功");
		Session.close();

	}

	// 修改
	public static void updateStudentBystuNo() throws IOException {

		// 将一个文件读入reader流中,变成一个对象
		Reader reader = Resources.getResourceAsReader("conf.xml");
		// 将reader对象变成sqlsession对象
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder().build(reader, "development");// 强制修改default的参数
		// 从工厂中取出
		SqlSession Session = sqlsessionfactory.openSession();
		StudentMapper studentmapper = Session.getMapper(StudentMapper.class);
		Student student = new Student();
		// 修改谁
		student.setStuNo(2);
		// 改成啥
		student.setStuName("qwe");
		student.setStuAge(8488);
		student.setGraName("wdnmd");
		studentmapper.updataStudentByStuno(student);
		System.out.println("更新成功");
		Session.close();

	}

	public static void main(String[] args) throws IOException {
		queryStudentByHashmap();

	}
}

hashmap明天搞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值