
mybatis笔记
levonmo
关注后端, Java
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
mybatis 用原始的dao方法开发
程序员需要开发dao接口和dao的实现类编写User.xml映射文件: SELECT * FROM USER WHERE id = #{id} INSERT INTO USER (id,username,sex) VALUES (#{id},#{username},#{sex})Dao接口和实现类:public interface UserDao {原创 2017-05-06 13:56:03 · 241 阅读 · 0 评论 -
mybatis的逆向工程
单独 创建java工程:generatorSqlmap工程结构1.添加配置文件generatorConfig.xml,在配置文件逆向工程配置信息,根据配置信息生成表相关的mapper文件注意需要配置:(有5个地方需要修改,里面已经注明)1.数据库连接参数 2.po类存放的位置3.mapper.xml映射文件的存放位置4.mapper.java接口原创 2017-05-07 22:46:55 · 166 阅读 · 0 评论 -
mybatis的一级缓存
为什么使用缓存将从数据库中查询出来的数据缓存起来,缓存介质:内存、磁盘,从缓存中取数据,而不从数据库查询,减少了数据库的操作,提高了数据处理性能一级缓存mybatis默认提供一级缓存,缓存范围是一个sqlSession在同一个sqlSession中,两次执行相同的sql查询,第二次不再从数据库查询执行提交清除缓存测试:如果第一次查询后,执行commit提原创 2017-05-07 16:18:35 · 183 阅读 · 0 评论 -
mybatis的延迟加载
延迟加载意义:在需求允许的情况下,先查询单表,当需要关联其它表查询时,进行延迟加载,去关联查询,达到目标:不需要关联信息时不查询,需要时再查询。好处:提高数据库的性能。需求:查询订单信息,关联查询用户信息。延迟加载需求:首次只查询订单信息,当需要关联查询用户信息时,再查询用户信息。使用mybatis的延迟加载1.打开延迟加载的开关在SqlMa原创 2017-05-07 15:40:26 · 232 阅读 · 0 评论 -
mybatis使用resultMap实现多对多查询 (需求:商品信息和订单明细有多对多的关系)
因为商品信息和订单明细有外键关联,在订单明细po类添加商品信息属性public class Orderdetail { private int id; private int orders_id; private int item_id; private int item_num; private Float item_price; //商品的信息 private原创 2017-05-07 13:58:50 · 1061 阅读 · 0 评论 -
mybatis使用resultMap实现一对一查询
在订单po类中 创建一个User的属性,然后利用resultMap将查询出来的与po进行自定义映射订单Orders. javapublic class Orders { private int id;//订单号 private int user_id;//用户的id private String order_number;//订单号 private User user;原创 2017-05-07 02:34:05 · 525 阅读 · 0 评论 -
mybatis使用resultType实现一对一查询
需求是:查询所有订单的信息,包括订单所属用户的姓名和地址sql语句:订单信息表orders关联查询表(用户表:user):显示关联信息,使用内链接。使用内链接还是外链接:内链接:如果主查询表和关联查询表存在外键关系就可以使用内链接。外链接:主查询表中和关联表没有外键关系,查询的主表信息一部分在关联查询表中,此时要用外链接。SELECT原创 2017-05-07 01:54:24 · 459 阅读 · 0 评论 -
mybatis的动态sql-if和sql片段 foreach的使用
当查询条件有多个的时候,可以使用动态sql例如像这种需求:SELECT * FROM USER WHERE id=#{id} and sex=#{sex}的时候,当传入id的值为空时,用这种方式写sql语句就有问题这时候就应该用动态sql上面的statement可以写成这样 SELECT * FROM USER WHERE原创 2017-05-06 20:50:21 · 711 阅读 · 0 评论 -
使用SqlSession 需要注意的
SqlSessionFactoryBuilder: 是用于创建SqlSeesionFactory的,将SqlSessionFactoryBuilder当成一个工具类来使用SqlSeesionFactory:会话工厂,是一个单例的,用于创建SqlSession,SqlSessionFactory一旦创建成功,就不会再创建新的SqlSessionFactory如果和Spring整合原创 2017-05-06 13:19:19 · 1615 阅读 · 0 评论 -
mybatis解决jdbc编程的问题
1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。2、 Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。3、 向sql语句原创 2017-05-06 00:04:38 · 399 阅读 · 0 评论 -
mybatis 第一个程序---用户查询
需求:1.查询一个用户2.查询多个用户(List)第一步:在config/SqlMapConfig.xml下进行全局配置文件(注意头的信息)<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.原创 2017-05-04 21:56:10 · 313 阅读 · 0 评论 -
mybatis 用户添加,删除,更改 操作
在User.xml中配置<!-- 添加用户 如果parameterType是pojo类型的,在#{}括号里面填pojo的属性 --> INSERT INTO USER (id,username,sex) VALUES (#{id},#{username},#{sex}) 测试单元@Test public void test() throws IOExce原创 2017-05-05 23:10:25 · 617 阅读 · 0 评论 -
mybatis的mapper映射文件的加载(resource方式,class方式,以及包扫描)
在SqlMapConfig.xml全局配置文件中进行配置1.resource方式加载映射文件 2,class方式:这里需要注意:接口类 和映射文件放在同一个目录下,并文件名要一致 <!-- class方式加载配置文件:class指定的是 mapper接口的地址 但是这时候就需要将接口类 和映射文件放在同一个目录下-->原创 2017-05-06 16:29:20 · 7172 阅读 · 2 评论 -
mybatis 的 resultMap 的使用
需求:数据库查询出来的字段名与pojo的属性名不一样自定义映射关系在Mapper.xml中配置 <!-- 定义resultMap,将数据库查询出来的数据与pojo进行一个对应映射关系 type:最终映射的java对象 id:resultMap的唯一标识 --> <!-- column:sql查询字段名 property:pojo的属性名原创 2017-05-06 22:15:00 · 472 阅读 · 0 评论 -
mybatis的定义别名
在parameterType和resultType设置时,为了方便编码,定义别名代替pojo的全路径。框架默认支持别名(int,string。。。)定义别名两种方式定义别名的位置是在全局的配置文件SqlMapConfig.xml中定义1.主要定义pojo的别名2.就是批量别名的定义 <!-- 单个别名的定义原创 2017-05-06 16:04:32 · 1712 阅读 · 0 评论 -
mybatis的mapper动态代理方法
Mapper动态代理方法:程序员只需要写dao接口(Mapper),而不需要写dao实现类,由mybatis根据dao接口和映射文件中statement的定义生成接口实现代理对象。可以调用代理对象方法。Mybatis官方建议:将dao接口叫做mapper。目标:通过一些规则让mybatis根据dao接口和映射文件中statement的定义生成接口实现代理对象mybatis将以下原创 2017-05-06 15:07:41 · 1121 阅读 · 0 评论