
Mybatis
qq_38198467
简化思维
展开
-
Mybatis框架-01:快速入门实例(快速搭建一个Mybatis工程)
第一步:创建工程第二步:引入jar包第三步:数据库建表第四步:创建于数据库表对应的实体类@Setter@Getterpublic class Customer { private Integer cust_id; private String cust_name; private String cust_profession; pri...原创 2019-05-05 23:31:51 · 282 阅读 · 0 评论 -
Mybatis框架-20:多表操作之多对多——查询所有
这里我建立的多对多的关系是教师和学生之间的关系多表之间的查询我们仍然可以使用左连接查询第一步:mapper教师的mapper /** * 查询老师,并把关联的学生也查出来 * @return */ List<Teacher> getAllTeacher();第二步:mapper.xml由于多对多其实就是双方的一对多,本质上还...原创 2019-06-09 00:08:00 · 191 阅读 · 0 评论 -
Mybatis框架-21:多表操作之多对多——分步查询
需求,使用分布查询,查询出指定老师信息,并把指定老师包含哪些学生也查出来第一步:mapper接口教师mapper/** * 根据教师id查询指定的教师 * @param teacherId * @return */ Teacher getTeacherWithId(Integer teacherId);学生mapper/**...原创 2019-06-09 11:23:13 · 966 阅读 · 0 评论 -
Mybatis框架-22:多表操作之多对多——添加操作
第一步:mapper接口教师的mapper接口,这里有两个接口,一个是用于插入教师,一个是用于更新关系维护外键/** * 添加教师 * @param teacher */ void insertTeacher(Teacher teacher); /** * 添加老师的学生时候维护外键的关系 * @param studen...原创 2019-06-09 11:55:44 · 685 阅读 · 0 评论 -
Mybatis框架-12:resultMap(domain属性和数据库字段名不一致时如何封装数据)
第一步:使用resoultMap写好封装模板column是数据库中的字段名,property是domain的字段名,这样写了之后就相当于将他们做了一个匹配,和hibernate的映射文件有点相似<resultMap id="Mycustomer" type="com.ctbu.domain.Customer"> <result column="cust_...原创 2019-06-03 11:41:59 · 1035 阅读 · 0 评论 -
Mybatis框架-13:多表操作之多对一
第一步:建立两张表并建立外键联系我这里是客户与订单的表进行举例第二步:建立对应关系的映射类(domain)customer类@Datapublic class Customer { private Integer cust_id; private String cust_name; private String cust_profession; ...原创 2019-06-03 12:12:25 · 178 阅读 · 0 评论 -
Mybatis框架-14:多表操作之多对一——分布查询
第一步:建立两张表并建立外键联系我这里是客户与订单的表进行举例第二步:建立对应关系的映射类(domain)customer类@Datapublic class Customer { private Integer cust_id; private String cust_name; private String cust_profession; ...原创 2019-06-03 12:55:57 · 308 阅读 · 0 评论 -
Mybatis框架-15:多表操作之多对一——添加操作
第一步:分别写好对应的mapperpublic void insertOrde(Order order);public void insertCustomer(Customer customer);第二步:分别写好对应的mapper.xml这里的客户插入之后立马获取它的主键并将他查出来插入客户<insert id="insertCustomer" paramet...原创 2019-06-03 13:34:02 · 302 阅读 · 0 评论 -
Mybatis框架-23:动态SQL——if标签、where标签、trim标签、choose标签
if标签从下面这个查询语句我们可以很容易的看出,if标签其实是做判断使用的,当满足条件的时候执行对应的语句<select id="getCustomerByNameAndPossition" resultType="com.ctbu.domain.Customer"> select * from `customer` <where>...原创 2019-06-09 16:55:31 · 495 阅读 · 0 评论 -
Mybatis框架-24:动态SQL——set标签、foreach标签
set标签可以去掉语句最后的那个逗号<update id="updateCustomer"> update `customer` <set> cust_name=#{cust_name},cust_profession=#{cust_profession}, </set> ...原创 2019-06-09 20:08:12 · 208 阅读 · 0 评论 -
Mybatis框架-25:sql片段
Sql中可将重复的sql提取出来,使用时用include引用即可,最终达到sql重用的目的。 <sql id="selectID"> select * from </sql>上面定义的这一段sql可以通过下面的include标签进行引入<include refid="selectID"/>在sql片段中还可以进行动态s...原创 2019-06-09 20:16:07 · 130 阅读 · 0 评论 -
Mybatis框架-26:缓存
一级缓存缓存介绍 MyBatis中使用缓存来提高其性能。 当查询数据时, 会先从缓存中取出数据,如果缓存中没有,再到数据库当中查询 MyBatis中的缓存分为两种:一级缓存和二级缓存 一级缓存是sqlSession级别的,二级缓存是mapper级别的一级缓存本地缓存 (默认开启) 在sqlSession没有关闭之前,再去...原创 2019-06-09 20:37:30 · 104 阅读 · 0 评论 -
Mybatis框架-19:多表操作之一对多——删除操作
多表之间,要删除一个对象,首先要接触他们之间的关系第一步:mapper//根据客户id删除客户void deleteCustomerById(Integer cust_id);第二步:mapper.xml客户的mapper.xml<delete id="deleteCustomerById"> delete from `customer` wh...原创 2019-06-08 23:28:15 · 1357 阅读 · 0 评论 -
Mybatis框架-18:多表操作之一对多——添加操作
第一步:mapper客户mapper,执行插入客户操作 void insertCustomer(Customer customer);订单mapper,执行插入订单和更新订单的操作(更新订单就是要更新他的外键) void insertOrde(Order order);//更新订单,建立好外键,也就是这个订单是属于谁的void updateCustId(@Param(...原创 2019-06-08 23:09:28 · 1042 阅读 · 0 评论 -
Mybatis框架-17:多表操作之一对多——分布查询
第一步:建立mapper客户的mapperList<Customer> getAllCustomer();订单的mapper因为这里是根据客户的id进行的查询,所以形参为integer类型Order getOrderWithCustId(Integer custId);第二步:编写mapper.xml中的sql语句客户的mapper.xml这里同样是...原创 2019-06-08 18:57:46 · 269 阅读 · 0 评论 -
Mybatis框架-02:抽取工具类
第一步:新建一个utils包并在里面创建一个自己的工具类如下代码,就是我们的工具类,因为创建工厂只需要创建一次就行,所以放在静态代码块儿中。下次使用只需调用openSession()方法即可public class MyUtils { private static final SqlSessionFactory sqlSessionFactory; //静态代码...原创 2019-05-08 23:44:32 · 259 阅读 · 0 评论 -
Mybatis框架-03:查询之查询所有
第一步:在映射配置文件中写好查询所有sql语句<!--查询所有客户--><select id="queryAllCustomer" resultType="com.ctbu.domain.Customer"> SELECT * FROM `customer`</select>第二步:编写测试方法(因为我已经抽取了工具类,所以就直接调用了)...原创 2019-05-08 23:58:37 · 203 阅读 · 0 评论 -
Mybatis框架-04:配置SQL打印
第一步:在配置文件中配置一下打印sql即可单独代码<!--配置SQL打印--> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings>全部配置代码<?xml version="1.0" encod...原创 2019-05-09 00:07:52 · 152 阅读 · 0 评论 -
Mybatis框架-05:#{}与${}的区别
#{}表示一个占位符号,通过#{}可以实现preparedStatement向占位符中设置值(占位符?在数据库种翻译的时候会自动加上‘’)自动进行java类型和jdbc类型转换#{}可以有效防止sql注入#{}可以接收简单类型值或pojo属性值如果parameterType传输单个简单类型值,#{}括号中可以是value或其它名称${}表示拼接sql串通过${}可以将para...原创 2019-05-14 16:53:21 · 145 阅读 · 0 评论 -
Mybatis框架-07:获取刚添加的数据的id值
第一步:在映射文件中进行配置<!--添加用户--> <insert id="insertCustomer" parameterType="com.ctbu.domain.Customer"> <selectKey keyColumn="cust_id" keyProperty="cust_id" order="AFTER" resultType="Inte...原创 2019-05-14 20:20:29 · 390 阅读 · 0 评论 -
Mybatis框架-06:mybatis映射配置中的参数和部分查询Api介绍
配置参数id:进行数据库操作的时候,唯一确定要执行的sql语句parameterType:指定输入参数类型(可以是实体类类型),mybatis通过ognl从输入对象中获取参数值拼接在sql中resultType:指定输出结果类型,mybatis将sql查询结果的一行记录数据映射为resultType指定类型的对象。如果有多条数据,则分别进行映射,并把对象放到容器List中API(增...原创 2019-05-14 20:43:24 · 151 阅读 · 0 评论 -
Mybatis框架-08:Mapper开发(动态代理)
使用mybatis的Mapper开发dao层,可以只写一个接口,不用自己实现定的接口,由动态代理自动帮忙实现接口,极大的提高了开发效率使用Mapper开发的注意事项namespace必须和Mapper接口类路径一致 id必须和Mapper接口方法名一致 parameterType必须和接口方法参数类型一致 resultType必须和接口方法返回值类型一致<mapper...原创 2019-05-15 00:06:43 · 133 阅读 · 0 评论 -
Mybatis框架-09:mapper开发-查询的时候参数传递问题
单个参数可以接收基本类型,对象类型,集合类型,都可以接收,mybatis可以直接使用这个参数,不用经过任何处理,同时#{}这里面的名称可以随便写。<!--根据cust_id查询客户--> <select id="queryCustomerById" parameterType="Int" resultType="com.ctbu.domain.Customer"...原创 2019-05-15 12:38:50 · 307 阅读 · 0 评论 -
Mybatis框架-10:mapper开发,参数传递之传递map类型和pojo类型
map传参1.先定义一个接口,接口书写遵循前面说的规范哦,我们这里需要传递一个map集合作为查询的参数public Customer queryCustomerByLike(Map hasmap);2.测试类中操作,我们这里自己new一个map,然后进行赋值,最后将这map传进去 @Test public void test03(){ SqlSessio...原创 2019-05-15 13:04:19 · 1194 阅读 · 0 评论 -
Mybatis框架-11:核心配置文件属性介绍
properties用于定义属性及读取属性文件<!--定义属性及读取属性文件--> <properties resource="db.properties"> <property name="jdbc.url" value="jdbc:mysql://localhost:336/mybatis?characterEncoding=ut...原创 2019-06-02 10:30:26 · 166 阅读 · 0 评论 -
Mybatis框架-16:多表操作之一对多——查询所有
我们这里的需求是,查询所有的客户,并把客户拥有的所有订单都查出来准备工作:数据库中存在一对多关系的表,工程中有对应的实体类客户实体类@Datapublic class Customer { private Integer cust_id; private String cust_name; private String cust_profession;...原创 2019-06-08 18:29:36 · 173 阅读 · 0 评论 -
Mybatis框架-27:分页插件
第一步:引入jar包第二步:配置文件配置<!--分页插件--> <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin> </plugins>第三步:测试类直接使用@Test ...原创 2019-06-09 20:55:39 · 156 阅读 · 0 评论