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       }


原文地址:https://www.cnblogs.com/jimorulang/p/5557726.html