MyBatis单表操作

介绍:

  数据持久层框架(DAO将数据持久化到数据库),实现DAO层的代码。对JDBC代码的封装

特点:

  • 1.封装通用功能,简化代码,提高开发效率(获得conn,绑定参数,发送sql,处理异常,处理结果集)
  • 2.sql放在配置文件中,提高sql可维护性
  • 3.自带连接池功能
  • 4.自带缓存(提高查询效率)

核心思想

  • 1.书写DAO接口
  • 2.开发Mapper文件。SQL+绑定参数、实现接口中的方法

环境搭建

1.导入mybatis.jar、mybatis的lib依赖包、oracle的驱动jar

2.引入配置文件
  mybatis-config.xml(链接数据库相关参数)
  Mapper.xml(相当于dao的实现类)

MyBatis实现DAO编码

需求:使用MyBatis实现DAO的方式,添加一条person信息

  1.书写DAO接口
    public interface PersonDAO{
      void insert(Person person);
    }

  2.写Mapper文件(DAO实现类)
    <insert id="实现接口的方法名" parameterType="参数中实体类型全类名">
      inser into t_person values(seq_person.nextval,#{属性名},#{sex},#{age})
    </insert>

  3.注册管理mapper文件
    <mappers>
      <mapper resource="com/lhl/demo1/PersonDAOImpl.xml"></mapper>
    </mappers>

MyBatis使用的API

使用DAO目的:
  1.获得DAO的对象
  2.调用DAO的方法
常用的类:   SqlSession    
1.获得dao结果的实现类的对象       XxxDAO dao = sqlSession.getMapper(接口.class);     2.相当于connection。(提交事务,关闭close,回滚事务)

  SqlSessionFactory     
1.获得sqlSession       SqlSession session = sqlSessonFactory.openSession();     2.保存封装mybatis-config.xml配置文件   SqlSessionFactoryBuilder:读取配置文件   Resources:获得读取配置文件的输入流

  步骤:

    1.获得mabatis-config的输入流

    2.读取mybatis-config的文件,构造成SqlSessionFactory

    3.通过SqlSessionFactory获得SqlSession

    4.通过SqlSession获得DAO接口的对象

    5.调用方法测试

    6.提交事务

    7.释放资源

添加、修改、删除操作,(以员工表t_person为例)

1.定义dao接口方法
  void insert(Person person);//添加功能接口方法
  void update(Person person);//修改功能接口方法
  void delete(@param("id")Integer id);//删除功能接口方法

2.书写mapper文件标签   
<!-- 添加一个person信息 -->   <insert id="insert" parameterType="com.lhl.demo1.Person">     insert into t_person values(seq_person.nextval,#{name},#{sex},#{age},#{mobile},#{address})   </insert>   <!-- 修改操作 -->   <update id="update" parameterType="com.lhl.demo1.Person">     update t_person set name=#{name},sex=#{sex},age=#{age},mobile=#{mobile},address=#{address} where id=#{id}   </update>   <!-- 删除功能 -->   <delete id="delete" parameterType="java.lang.Integer">     delete from t_person where id = #{id}   </delete> 3.注册mapper文件:在mybatis-config.xml中绑定   <mappers>   <!-- 注册管理所有的mapper文件 -->     <mapper resource="com/lhl/demo1/PersonDAOImpl.xml"></mapper>   </mappers>

单个查询

1.书写dao接口方法
  Person selectById(Integer id);
2.书写mapper文件(sql、参数、对查询结果映射实体对象)   
<!-- 查询功能 -->   <select id="selectById" parameterType="java.lang.Integer" resultType="查询结果的一行数据映射的实体对象类型(com.lhl.demo1.Person)">     select id,name,sex,age,mobile,address from t_person where id = #{id}   </select> 3.注册mapper文件

 多个查询

1.书写dao接口方法
  List<Person> selectAll();

2.书写mapper
  <select id="selectAll" resultType="rs的一行数据映射实体类型">
    select id,name,sex,age,mobile,address from t_person
  <select>

3.注册mapper文件

 多个参数绑定

1.书写dao
    User selectByUsernameAndPassword(String username,String passwor);

2.书写mapper文件
    <select id="selectByUsernameAndPassword" resuletType="*******">
    select id,username,password from t_person where username=#{arg0} and password=#{arg1};
    </select>

或者通过@Param取别名的方式    User selectByUsernameAndPassword(@Param("username")String username,@Param("password")String passwor);   select id,username,password from t_person where username=#{username} and password=#{password}; 3.注册mapper文件

 xml转义

以下是XML中需要的转义字符:[/size] 
  &(逻辑与)  &amp;        
  <(小于)    &lt;        
  >(大于)    &gt;        
  "(双引号)  &quot;      
  '(单引号)  &apos; 
原文地址:https://www.cnblogs.com/lhl0131/p/13393959.html