java系统找不到指定文件怎么解决
479
2022-09-04
MyBatis普通模式开发
普通模式,也称为传统DAO模式,就是在传统DAO模式下,定义接口和实现类,如 interface EmpDao class EmpDaoImpl implements EmpDao. 在实现类中,用SQLSession对象调用 select insert delete update 等方法实现.目前极为少见.在传统模式下,我们需要知道SqlSession对象 实现CURD和 参数传递的处理
一、mybatis查询的三种方式
SqlSession对象本身API中就已经提供了三个查询方法,分别能够实现如下查询方式
selectOne:返回单个对象selectList:返回对象List集合selectMap:返回对象Map集合
1.准备emp表对应实体类
package com.augus01.pojo;import java.io.Serializable;import java.util.Date;public class Emp implements Serializable { private Integer empno; private String ename; private String job; private Integer mgr; private Date hiredate; private Double sal; private Double comm; private Integer deptno;}
2.创建EmpMapper.xml映射文件
特别注意的是需要在sqlMapConfig.xml中配置引入mapper文件,必须使用resource标签实现
3.进行测试
import com.augus01.pojo.Dept;import com.augus01.pojo.Emp;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 org.junit.Before;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.util.List;import java.util.Map;import java.util.Set;public class Test2 { private SqlSession sqlSession; @Before public void init(){ SqlSessionFactoryBuilder ssfb =new SqlSessionFactoryBuilder(); InputStream resourceAsStream = null; try { resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml"); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory factory=ssfb.build(resourceAsStream) ; sqlSession=factory.openSession(); } //返回单个对象 selectOne @Test public void testFindEmpOne(){ /*这里写需要执行的SQL * 就是接口类中定义的名字 * */ Emp findEmpOne = sqlSession.selectOne("findEmpOne"); System.out.println(findEmpOne); } //返回对象List集合 selectList @Test public void testFindEmpAllList(){ /*这里写需要执行的SQL * 就是接口类中定义的名字 * */ List
二、mybatis参数传递的三种方式
对应SQL中进行参数化时设置参数而言,mybatis提供了三种方式:
单个基础数据类型作为参数多个基础数据类型的map 集合作为参数引用类型作为参数
1.创建EmpMapper2.xml映射文件
2.在sqlMapConfig.xml中设置加载EmpMapper2.xml文件
3.测试代码
import com.augus01.pojo.Emp;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 org.junit.Before;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;public class Test3 { private SqlSession sqlSession; @Before public void init(){ SqlSessionFactoryBuilder ssfb =new SqlSessionFactoryBuilder(); InputStream resourceAsStream = null; try { resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml"); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory factory=ssfb.build(resourceAsStream) ; sqlSession=factory.openSession(); } //单个基础数据类型作为参数 @Test public void testFindEmpByEmpno(){ /*这里写需要执行的SQL * 就是接口类中定义的名字 * */ Emp findEmpOne = sqlSession.selectOne("findEmpByEmpno", 7782); System.out.println(findEmpOne); } //多个基础数据类型的map 集合作为参数 @Test public void testFindEmpByDeptnoAndSal(){ /*这里写需要执行的SQL * 就是接口类中定义的名字 * Map
三、mybatis完成DML全部操作
1.创建EmpMapper2.xml映射文件
2.在sqlMapConfig.xml中设置加载EmpMapper2.xml文件
3.测试代码
import com.augus01.pojo.Emp;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 org.junit.Before;import org.junit.Test;import javax.xml.bind.annotation.XmlType;import java.io.IOException;import java.io.InputStream;import java.util.Date;public class Test4 { private SqlSession sqlSession; @Before public void init(){ SqlSessionFactoryBuilder ssfb =new SqlSessionFactoryBuilder(); InputStream resourceAsStream = null; try { resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml"); } catch (IOException e) { e.printStackTrace(); } SqlSessionFactory factory=ssfb.build(resourceAsStream) ; sqlSession=factory.openSession(); } @Test public void testAddEmp(){ /*这里写需要执行的SQL * 就是接口类中定义的名字 * */ Emp emp = new Emp(null,"张飞","test",7902,new Date(),8800.0,200.0,20); int addEmp = sqlSession.insert("addEmp", emp); //注意在增删改对数据作出影响的情况,必须提交事务 sqlSession.commit(); System.out.println(addEmp); } @Test public void testUpdateEmp(){ /*这里写需要执行的SQL * 就是接口类中定义的名字 * */ Emp emp = new Emp(); //设置属性 emp.setEmpno(7942); emp.setEname("无忌"); int updateEmpByEmpno = sqlSession.update("updateEmpByEmpno", emp); //注意在增删改对数据作出影响的情况,必须提交事务 sqlSession.commit(); System.out.println(updateEmpByEmpno); } @Test public void testDeleteEmp(){ /*这里写需要执行的SQL * 就是接口类中定义的名字 **/ int row = sqlSession.delete("deleteEmpByEmpno", 7942); //注意在增删改对数据作出影响的情况,必须提交事务 sqlSession.commit(); System.out.println(row); }}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~