【MyBatis】三种开发方式

来源:互联网 发布:python hexdump 编辑:程序博客网 时间:2024/06/17 13:30

环境配置

1.创建普通Java项目;
2.创建 config 和 lib 文件夹;
3.config 文件夹添加到类目录下:选中项目-BuildPath-AddFolder
4.添加 jar包 到 lib文件夹,同时 AddBuildPath 令其出现在 Referenced Libraries 中
5.添加 log4j.xml 文件到 config文件夹
6.添加 resource.xml 文件到 config 文件夹
7.添加 dbconfig-properties 文件到 config文件夹
8.在 resource.xml 文件中写 dbconfig-properties 路径

 

开发步骤

1.在实体同级建立一个同名的xml文件,和实体类相对应;
2.在xml文件设置命名空间为实体类的全路径;
3.把dtd文件导入项目,Window-Preference-XML-XMLCatalog-Add(设置提示);
4.编写SQL语句,写id,parameterType,resultType;
5.编写测试类,resource-reader-SQLSessionFactory-SqlSession;

 

三种开发方式

方式一:配置文件

resource.xml

<mappers>    <mapper resource="mappers/EmployeeMapper.xml" /></mappers>

EmployeeMapper.xml

<mapper namespace="com.dao.bean.Employee">    <select id="selOne" resultType="com.bean.Employee">        select id, name e_name, gender, address from employee where id = #{id}    </select></mapper>

方式二:接口

resource.xml

<mappers>    <mapper class="com.dao.EmployeeDAO2"</mappers>

EmployeeDAO2.java

public interface EmployeeDAO2{    @Select("select * from employee")    public List<Employee> getAll();    public Employee selOne(String id);}

MyBatisTest.java

public class MyBatisTest{    @Test    public void test() throws IOException{        //创建一个sqlSession        Reader reader = Resources.getResourceAsReader("resource.xml");        //创建SQLSessionFactory        SqlSessionFactory sqlSessionFactory =  new SqlSessionFactoryBuilder().build(reader);        //true表示自动提交,否则需要使用commit提交,默认为false        SqlSession session = sqlSessionFactory.openSession(true);        // 创建接口对象,这是session对象通过动态代理自动为我们创建        EmployeeDAO2 empDao = session.getMapper(EmployeeDAO2.class);        //使用创建好的接口对象调用方法        List<Employee> empList = empDao.getAll();    }}

方式三:接口+配置文件

resource.xml

<mappers>    <mapper resource="mappers/EmployeeMapper.xml" /></mappers>

EmployeeMapper.xml

<mapper namespace="com.dao.EmployeeDAO">    <select id="selAll" resultType="com.bean.Employee">        select * from employee    </select>    <select id="selOne" resultType="com.bean.Employee">        select id, name e_name, gender, address from employee where id = #{id}    </select></mapper>

EmployeeDAO.java

public interface EmployeeDAO{    public List<Employee> selAll();    public Employee selOne(String id);}

MyBatisTest.java

public class MyBatisTest{    @Test    public void test() throws IOException{        //创建一个sqlSession        Reader reader = Resources.getResourceAsReader("resource.xml");        //创建SQLSessionFactory        SqlSessionFactory sqlSessionFactory =  new SqlSessionFactoryBuilder().build(reader);        //true表示自动提交,否则需要使用commit提交,默认为false        SqlSession session = sqlSessionFactory.openSession(true);        // 创建接口对象,这是session对象通过动态代理自动为我们创建        EmployeeDAO empDao = session.getMapper(EmployeeDAO.class);        //使用创建好的接口对象调用方法        Employee emp = empDao.selOne("2");        List<Employee> empList = empDao.selAll();    }}