• Mybatis配置文件和实体类的映射文件,以及dao层的书写


    mybatis-config.xml,配置文件,用于连接数据库。底层使用的是oracle数据库的emp表

     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>
     5   <environments default="yy">//此处default值可以任意写
     6       <environment id="yy">//id值也可以任意写
     7          <transactionManager type="JDBC"></transactionManager>//事务管理器
     8          <dataSource type="POOLED">//数据源
     9           <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>//连接数据库的驱动
    10        
    11           <property name="url" value="jdbc:oracle:thin:@172.16.17.158:1521:orcl"/>//连接到哪一个数据库
    12           <property name="username" value="scott"/>//数据库名
    13           <property name="password" value="tiger"/>//数据库密码
    14          </dataSource>
    15       </environment>
    16   </environments>
    17   <mappers>
    18   <mapper   resource="com/yh/mb/dao/EmpDao-mapper.xml"/>
    19   </mappers>
    20 </configuration>

    数据源类型有三种: UNPOOLED , POOLED , JNDI 。

    UNPOOLED - 这个数据源实现只是在每次请求的时候简单的打开和关闭一个连接。虽然这有点慢,但作为一些不需要性能和立即响应的简单应用来说 , 不失为一种好选择 。

    POOLED - 这个数据源缓存 JDBC 连接对象用于避免每次都要连接和生成连接实例而需要的验证时间 。对于并发 WEB 应用,这种方式非常流行因为它有最快的响应时间。

    JNDI - 这个数据源实现是为了准备和 Spring 或应用服务一起使用,可以在外部也可以在内部配置这个数据源,然后在 JNDI 上下文中引用它。这个数据源配置只需要两上属性:

    Emp.java实体类

    package com.yh.mb.entity;
    
    import java.io.Serializable;
    import java.util.Date;
    
    public class Emp implements Serializable {
        //员工姓名
        private String empName;
        //员工编号
        private Integer empNo;
        //员工入职时间
        private Date hireDate;    
        //员工职位
        private String job;
        //员工工资
        private Double salary;
        //经理编号
        private Integer mgr;
        //奖金
        private Double comm;
        //部门编号
        private Integer deptNo;
        
        
        public Emp() {
            super();
        }
        public Emp(String empName, Double salary) {
            super();
            this.empName = empName;
            this.salary = salary;
        }
        public String getEmpName() {
            return empName;
        }
        public void setEmpName(String empName) {
            this.empName = empName;
        }
        public Integer getEmpNo() {
            return empNo;
        }
        public void setEmpNo(Integer empNo) {
            this.empNo = empNo;
        }
        public Date getHireDate() {
            return hireDate;
        }
        public void setHireDate(Date hireDate) {
            this.hireDate = hireDate;
        }
        public String getJob() {
            return job;
        }
        public void setJob(String job) {
            this.job = job;
        }
        public Double getSalary() {
            return salary;
        }
        public void setSalary(Double salary) {
            this.salary = salary;
        }
        public Integer getMgr() {
            return mgr;
        }
        public void setMgr(Integer mgr) {
            this.mgr = mgr;
        }
        public Double getComm() {
            return comm;
        }
        public void setComm(Double comm) {
            this.comm = comm;
        }
        public Integer getDeptNo() {
            return deptNo;
        }
        public void setDeptNo(Integer deptNo) {
            this.deptNo = deptNo;
        }
        
    
    }

    实体类的映射文件EmpDao-mapper.xml。用于书写sql语句

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
     3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     4 <mapper namespace="com.yh.mb.dao.EmpDao">
     5 <select id="empCout"  resultType="int">
     6 select count(1) from emp
     8 </select>
    10 </mapper>

    dao层的接口IEmpDao.java

    1 package com.yh.mb.dao;
    2 
    3 public interface IEmpDao {
    4  public int empCount();
    5 }

    dao层的实现类EmpDao.java

     1 package com.yh.mb.dao.impl;
     2 
     3 import java.io.IOException;
     4 import java.io.Reader;
     5 
     6 import org.apache.ibatis.io.Resources;
     7 import org.apache.ibatis.session.SqlSession;
     8 import org.apache.ibatis.session.SqlSessionFactory;
     9 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    10 
    11 import com.yh.mb.dao.IEmpDao;
    12 
    13 public class EmpDao implements IEmpDao {
    14 
    15     public int empCount() {
    16         SqlSessionFactory sqlsf=null;
    17         SqlSession sqlsession=null;
    18         Reader reader=null;//配置文件字符输入流
    19         int count=0;
    20         try {
    21             reader=Resources.getResourceAsReader("mybatis-config.xml");
    22             sqlsf=new SqlSessionFactoryBuilder().build(reader);
    23             sqlsession=sqlsf.openSession();
    24             count=sqlsession.selectOne("com.yh.mb.dao.EmpDao.empCout");
    25         } catch (IOException e) {
    26             // TODO Auto-generated catch block
    27             e.printStackTrace();
    28         }finally{
    29             if(sqlsession!=null){
    30                 sqlsession.close();
    31             }
    32                 
    33         }            
    34         return count;
    35     }
    36     public static void main(String[] args) {
    37         EmpDao empDao=new EmpDao();
    38         System.out.println(empDao.empCount());
    39     }
    40 
    41 }

     

  • 相关阅读:
    Linux入门之常用命令(12) mount
    Linux入门之运维(1) 系统监控 vmstat top
    【转】常用Maven插件
    【转】Mapreduce部署与第三方依赖包管理
    ssh (免密码登录、开启服务)
    增大hadoop client内存
    ubuntu12.04添加程序启动器到Dash Home
    jquery fadeOut 异步
    jquery 全选 全不选 反选
    js 上传文件预览
  • 原文地址:https://www.cnblogs.com/jimorulang/p/5555962.html
Copyright © 2020-2023  润新知