Mybatis配置文件和实体类的映射文件,以及dao层的书写
Posted 如风105
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }
以上是关于Mybatis配置文件和实体类的映射文件,以及dao层的书写的主要内容,如果未能解决你的问题,请参考以下文章