学习笔记-Mybatis(二)--XML方式的CRUD
2018-03-01 16:21
441 查看
基本的增删改查:
实体类(映射数据库表) - >的MyBatis-config.xml的文件(配置数据库,别名,以及配置映射规则) - >实体类配置文件(执行相应的数据库语句) - >测试类
实体类配置文件:
parameterType的用法:
1.基本数据类型,如输入参数只有一个,其数据类型可以是基本的数据类型,也可以是自己定的类类型。包括int,String,Integer,Date,如下:
(1)根据id进行相应的删除:
(2)添加员工:
2.复杂数据类型:包含java实体类,map。
另外MyBatis还提供了一个使用注解来参与多个参数的方式。这种方式需要在接口的参数上添加@Param注解> / * 此处要注意的是,由于该方法需要传入多个参数,在进行MyBatis配置时, 没有办法同时配置多个参数,另外MyBatis还提供了一个使用注解来参数 多个参数的方式。这种方式需要在接口的参数上添加@Param注解.. 注意,以下两种写法是完全相同的。但使用的时候要使用第一种类型 / Userlogin(@Param(value =“name”)Stringname,@Param(value =“password”)String password); //用户登录(String name,String password); 配置如下:
模糊查询:
实体类配置文件:
List cs = session.selectList(“listCategoryByName”,“cat”);
for(Category c1:cs){
System.out.println(c1.getName());
} “`
多条件查询:结合前面的模糊查询,多一个id>多少的条件1。Category.xml准备sql语句
““
选择id =“listCategoryByIdAndName”parameterType =“map”
resultType =“Category”>
select * from category_其中id>#{id}和名字像concat(’%’,#{name },’%’)
因为是多个参数,而selectList方法又只接受一个参数对象,所以需要把多个参数放在Map里面,然后把这个Map对象作为参数传递进去
实体类(映射数据库表) - >的MyBatis-config.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"> <mapper namespace="com.bean"> <insert id="addCategory" parameterType="Category"> insert into category_(name) values (#{name}) </insert> <delete id="deleteCategory" parameterType="Category"> delete from category_ where id= #{id} </delete> <select id="getCategory" parameterType="_int" resultType="Category"> select * from category_ where id=#{id} </select> <update id="updateCategory" parameterType="Category"> update category_ set name=#{name} where id=#{id} </update> <select id="listCategory" resultType="Category"><!-- 因为myBatis-config.xml直接写Category --> select * from category_ </select> </mapper>
parameterType的用法:
1.基本数据类型,如输入参数只有一个,其数据类型可以是基本的数据类型,也可以是自己定的类类型。包括int,String,Integer,Date,如下:
(1)根据id进行相应的删除:
<delete id="deleteById" parameterType="Integer">
(2)添加员工:
<insert id="addEmp" parameterType="com.pojo.Employee">
2.复杂数据类型:包含java实体类,map。
另外MyBatis还提供了一个使用注解来参与多个参数的方式。这种方式需要在接口的参数上添加@Param注解> / * 此处要注意的是,由于该方法需要传入多个参数,在进行MyBatis配置时, 没有办法同时配置多个参数,另外MyBatis还提供了一个使用注解来参数 多个参数的方式。这种方式需要在接口的参数上添加@Param注解.. 注意,以下两种写法是完全相同的。但使用的时候要使用第一种类型 / Userlogin(@Param(value =“name”)Stringname,@Param(value =“password”)String password); //用户登录(String name,String password); 配置如下:
<select id =“login”resultType =“com.pojo.User”> select * from us where name =#{name} and password =# {密码} </ select> ``` ---------- > > ```<选择ID = “getWinLogByEventId”参数类型= “java.lang.Long中” >结果映射= “BaseResultMap”> > 选择<包括REFID = “基础_列_列表”/>从取胜_登录其中EVENTID =# { _ parameter,jdbcType = BIGINT} </ select > ``` 3.获取参数中的值: 1.基本数据类型:#{参数}获取参数中的值 2.复杂数据类型:#{属性名}, map中则是#{key} ---------- **测试类:** ```` public class TestMybatis { public static void main(String [] args)throws IOException { String resource =“mybatis -config.xml“; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 通过配置文件"mybatis-config.xml"得到SQLSessionFactory(创建SqlSession对象的工厂) SqlSession session = sqlSessionFactory.openSession(); // 通过SQLSessionFactory得到Session Category c = new Category(); // 增加 c.setName("addCategory"); session.insert("addCategory", c); // 删除 c.setId(6); session.delete("deleteCategory", c); // 查询 c = session.selectOne("getCategory", 3); System.out.println(c.getName()); // 更改 c = session.selectOne("getCategory", 4); c.setName("修改了姓名"); session.update("updateCategory", c); // 遍历 listAll(session); session.commit(); session.close(); } private static void listAll(SqlSession session) { // TODO Auto-generated method stub List<Category> cs = session.selectList("listCategory"); // 通过session的selectList方法,调用sql语句listCategory。 for (Category c : cs) { System.out.println(c.getName()); } } }
模糊查询:
实体类配置文件:
<select id="listCategoryByName" parameterType="String" resultType="Category"> select * from category_ where name like concat('%',#{0},'%') <! - 如果是oracle,写法是 - > <! - select * from category_ where'name'like '%'||#{0} ||'%' - > </ select> ``` 测试代码:
List cs = session.selectList(“listCategoryByName”,“cat”);
for(Category c1:cs){
System.out.println(c1.getName());
} “`
多条件查询:结合前面的模糊查询,多一个id>多少的条件1。Category.xml准备sql语句
““
选择id =“listCategoryByIdAndName”parameterType =“map”
resultType =“Category”>
select * from category_其中id>#{id}和名字像concat(’%’,#{name },’%’)
因为是多个参数,而selectList方法又只接受一个参数对象,所以需要把多个参数放在Map里面,然后把这个Map对象作为参数传递进去
` Map <String,Object> params = new HashMap < >(); params.put(“id”,0); params.put(“name”,“cat”); List <Category> cs = session.selectList(“listCategoryByIdAndName”,params); for(Category c1:cs){ System.out.println(c1.getName()); }
相关文章推荐
- 学习笔记-Mybatis(三)--XML方式的一对多,多对一,多对多关系
- spring 学习笔记 使用pojo+xml的方式开发aop
- Mybatis学习笔记-CURD(基于注解的方式)
- Mapper.xml映射文件---Mybatis学习笔记(八)
- mybatis学习笔记——Xml配置文件
- PHP 开发 APP 接口 学习笔记与总结 - XML 方式封装通信接口
- Mybatis学习笔记(4)--MyBatis的Mapper动态代理方式
- Mybatis学习笔记二:以接口方式编程
- mybatis学习笔记(二)-- 使用mybatisUtil工具类体验基于xml和注解实现
- Mybatis 学习笔记1 不整合Spring的方式使用mybatis
- xml学习笔记——DOM方式解析XML
- Spring4 学习笔记(3)-Spring 基于 XML 的方式配置 Bean(供自己学习)
- Spring boot 和 mybatis 学习笔记2--Mapper XML (静态)
- Java之SAX 方式生成 XML(学习笔记)
- 学习笔记------------------对Action中所有方法进行输入校验和对指定方法输入校验(手工编写代码和xml方式)
- MyBatis学习笔记:基于xml和注解对表的基本操作
- 【SSM学习笔记】Mybatis进行简单的CRUD操作
- 学习笔记-mybatis数据处理的四种方式
- MyBatis 3(2)实体映射 & CRUD 操作(XML/注解方式)
- spring中Bean的xml方式配置学习笔记