4.使用接口+xml文件方式编写dao层
2017-09-16 17:59
337 查看
创建maven工程
引入maven依赖
创建主配置文件configuration.xml
emp表
emp类
创建接口
获取SqlSession的工具类
测试
引入maven依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cjq</groupId> <artifactId>cjq-mybatis1</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>cjq-mybatis1</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!--MyBatis相关--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.2.8</version> </dependency> <!--数据库相关--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency> </dependencies> </project>
创建主配置文件configuration.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <typeAlias type="com.cjq.vo.Emp" alias="emp" /> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test"/> <property name="username" value="root"/> <property name="password" value="admin"/> </dataSource> </environment> </environments> <mappers> <!--加入映射文件--> <mapper resource="mapper/EmpMapper.xml"/> </mappers> </configuration>
emp表
emp类
package com.cjq.vo; /** * Created by cjq on 2017/9/16. */ public class Emp { public Emp() { } public Integer getEno() { return eno; } public Emp(Integer eno, String ename, String job, Double sal) { this.eno = eno; this.ename = ename; this.job = job; this.sal = sal; } @Override public String toString() { return "Emp{" + "eno=" + eno + ", ename='" + ename + '\'' + ", job='" + job + '\'' + ", sal=" + sal + '}'; } public void setEno(Integer eno) { this.eno = eno; } public String getEname() { return ename; } public void setEname(String ename) { this.ename = ename; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } public Double getSal() { return sal; } public void setSal(Double sal) { this.sal = sal; } Integer eno; String ename; String job; Double sal; }
创建接口
package com.cjq.dao; import com.cjq.vo.Emp; /** * Created by cjq on 2017/9/16. */ public interface EmpDao { public void insert(Emp emp); public void delete(int eno); public Emp getEmpById(int eno); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.cjq.dao.EmpDao"> <!-- namespace的值对应接口--> <!--id对应接口的方法,resultType是返回值类型,parameterType方法传入的参数类型 --> <!--根据id删除--> <delete id="delete" parameterType="int"> delete from emp where eno=#{eno} </delete> <!--新增--> <insert id="insert" parameterType="com.cjq.vo.Emp"> insert into emp(eno,ename,job,sal) values(#{eno},#{ename},#{job},#{sal}) </insert> <!--根据id查询--> <select id="getEmpById" parameterType="int" resultType="com.cjq.vo.Emp"> select * from emp where eno=#{value} </select> </mapper>
获取SqlSession的工具类
package com.cjq.dao; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; /** * Created by cjq on 2017/9/16. */ public class SessionFactory { static SqlSessionFactory factory=null; static{ //测试查询 String resource="configuration.xml"; //获取资源的流 InputStream r= null; try { r = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } //获得session工厂 factory=new SqlSessionFactoryBuilder().build(r); } public static SqlSession getSession(){ //openSession默认事物是手动提交的 return factory.openSession(); } }
测试
package com.cjq.vo; import com.cjq.dao.EmpDao; import com.cjq.dao.SessionFactory; import org.apache.ibatis.session.SqlSession; import java.io.IOException; /** * Created by cjq on 2017/9/16. */ public class DeptTest { public static void main(String[] args) throws IOException { //获取session SqlSession session= SessionFactory.getSession(); //获得Dao EmpDao dao=session.getMapper(EmpDao.class); // dao.insert(new Emp(4,"zhangsan","job1",4000.0)); // Emp emp=dao.getEmpById(4); // System.out.println(emp); dao.delete(4); session.commit(); session.close(); } }
相关文章推荐
- xml文件的概述与应用场景 xml文件的组成部分&如何编写xml xml的两种解析方式的原理 Dom4J开源工具的使用
- Delphi编写自定义控件以及接口的使用
- Android中使用SAX方式解析XML文件
- Android中使用PULL方式解析XML文件
- 有效的使用和设计COM智能指针——条款11:以类型安全的方式创建资源和查询接口
- 使用dom4j读取xml文件的四种方式
- 一个使用面向对象方式编写的简单游戏框架
- Android中使用PULL方式解析XML文件
- 打印不同的数(编写一个程序,使用指针访问数组方式,读入十个数,输出其中不同的数,即一个数如果出现多次,只打印一次)
- DAO层使用泛型的两种方式
- 5、 java 编写程序拷贝一个文件, 尽量使用效率高的方式.
- 本附录介绍iOS系统包含的框架,它们为编写iOS平台的软件提供必要的接口。下面的表格尽可能地列出框架中的类、方法、函数、类型以及常量使用的关键前缀,请避免在您的符号名称中使用这些前缀。
- DAO层使用泛型的两种方式
- Android演示使用PULL方式解析XML文件
- [转载] Silverlight中使用IValueConverter接口自定义数据源显示方式
- Android异步下载网络图片&android解析xml文件的方式&使用Adapter为ListView提供数据
- post 方式提交XML文件调用接口
- [转载] 使用IValueConverter接口实现自定义绑定数据的显示方式
- Android中使用SAX方式解析XML文件
- 使用ie的菜单接口编写自己浏览器插件