• mybatis的增删该查


    1.查找所有的用户

    mybatis-config.xml配置文件用于连接数据库,打开和关闭session

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
     3 "http://mybatis.org/dtd/mybatis-3-config.dtd">
     4 <configuration>
     8   <environments default="yy">
     9       <environment id="yy">
    10          <transactionManager type="JDBC"></transactionManager>
    11          <dataSource type="POOLED">
    12           <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
    13        
    14           <property name="url" value="jdbc:oracle:thin:@172.16.17.158:1521:orcl"/>
    15           <property name="username" value="scott"/>
    16           <property name="password" value="tiger"/>
    17          </dataSource>
    18       </environment>
    19   </environments>
    20   <mappers>
    21   <mapper   resource="com/yh/mb/dao/EmpDao-mapper.xml"/>
    22   </mappers>
    23 </configuration>

    EmpDao-mapper.xml实体类的映射文件,编写sql语句

    <select id="empCout"  resultType="int">
    select count(1) from emp
    </select>
    resultType是指sql语句的返回值类型,可以起别名
    EmpDao.java,实现类
     1 public int empCount() {
     2         SqlSessionFactory sqlsf=null;
     3         SqlSession sqlsession=null;
     4         Reader reader=null;//配置文件字符输入流
     5         int count=0;
     6         try {
     7             reader=Resources.getResourceAsReader("mybatis-config.xml");
     8             sqlsf=new SqlSessionFactoryBuilder().build(reader);
     9             sqlsession=sqlsf.openSession();
    10             count=sqlsession.selectOne("com.yh.mb.dao.EmpDao.empCout");
    11         } catch (IOException e) {
    12             // TODO Auto-generated catch block
    13             e.printStackTrace();
    14         }finally{
    15             if(sqlsession!=null){
    16                 sqlsession.close();
    17             }
    18                 
    19         }                    
    20         return count;
    21     }

    2.通过id进行查找

    映射文件

    1 <select id="getEmpById" resultType="Emp" parameterType="int">
    2 select ename as empName from emp where empno=#{empNo}
    3 </select>
    resultType起了别名在配置文件中起别名
    1 <typeAliases >
    2 <typeAlias type="com.yh.mb.entity.Emp"  alias="Emp"/>
    3 </typeAliases>

    dao层的方法

     1 public Emp getEmpById(Integer no) {
     2         SqlSession sqlsession=null;
     3         Emp emp=null;
     4         try {
     5             sqlsession=MyBatisUtil.getSession();
     6             emp=sqlsession.selectOne("com.yh.mb.dao.EmpDao.getEmpById", no);
     7         } catch (Exception e) {
     8             // TODO Auto-generated catch block
     9             e.printStackTrace();
    10         }finally{
    11             MyBatisUtil.closeSession();
    12         }
    13         
    14         return emp;
    15     }

    Mytest.java测试单元

    1 IEmpDao empDao=new EmpDao();
    2       @Test
    3       public void getEmpById(){
    4           Emp e=empDao.getEmpById(7944);
    5           System.out.println(e.getEmpName());
    6       }

    2.多条件查询

    用hashmap来放多个查询条件
    1 <select id="getEmpByIdAndJob" resultType="Emp" parameterType="hashmap">
    2 select ename as empName from emp where empno=#{empNo}and job=#{j}
    3 </select>

    dao层的方法

    public Emp getEmpByIdAndJob(Integer no,String job){
           SqlSession sqlsession = null;
            Emp emp=null;
            try {
                sqlsession = MyBatisUtil.getSession();
                HashMap map=new HashMap();
                map.put("empNo",no);
                map.put("j",job);
                emp=sqlsession.selectOne("com.yh.mb.dao.EmpDao.getEmpByIdAndJob", map);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                MyBatisUtil.closeSession();
            }
            return emp;
       }

    测试单元

    1  @Test
    2       public void getEmpByIdAndJob(){
    3           Emp e=empDao.getEmpByIdAndJob(9000, "CLERK");
    4           
    5           System.out.println(e.getEmpName());
    6       }


  • 相关阅读:
    Traefik-v2.x快速入门
    jenkins pipeline持续集成
    phpstorm 2017激活码(方法)
    PHP保留两位小数的几种方法
    php 数组排序 按照某字段
    sql大全
    解决jpgraph在php7.0版本下时,无法显示例子图表的问题
    Linux 定时任务crontab使用
    VIM命令操作
    wampserver变橙色,apache 服务无法启动!问题解决小记(安装失败亦可参考)
  • 原文地址:https://www.cnblogs.com/jimorulang/p/5557726.html
Copyright © 2020-2023  润新知