mybatis 使用接口增删改查和两表一对一关联查询详解编程语言
2023-06-13 09:11:46 时间
导包
总配置文件
?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 properties resource="db.properties"/ typeAliases package name="com.model"/ /typeAliases environments default="test" environment id="test" transactionManager type="JDBC"/ dataSource type="POOLED" property name="driver" value="${driver}"/ property name="url" value="${jdbcUrl}"/ property name="username" value="${username}"/ property name="password" value="${password}"/ /dataSource /environment /environments mappers package name="com.dao"/ !-- 自动装配包里的接口 -- /mappers /configuration
driver=oracle.jdbc.OracleDriver jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl username=test1116 password=123456
数据库
两个实体类
package com.model; import java.util.Date; public class Student { private Integer sno; private String sname; private String ssex; private Integer sclass;
public String toString() { return "Student [sno=" + sno + ", sname=" + sname + ", ssex=" + ssex + ", s ]"; public Integer getSclass() { return sclass; public void setSclass(Integer sclass) { this.sclass = sclass; }
package com.model; import java.util.Date; public class StudentInfo { private Integer id; private Student student; private String saddress; private Date sbirthday; public StudentInfo() { super(); public StudentInfo(Integer id, Student student, String saddress, Date sbirthday) { super(); this.id = id; this.student = student; this.saddress = saddress; this.sbirthday = sbirthday; public Integer getId() { return id; public void setId(Integer id) { this.id = id; public Student getStudent() { return student; public void setStudent(Student student) { this.student = student; public String getSaddress() { return saddress; public void setSaddress(String saddress) { this.saddress = saddress; public Date getSbirthday() { return sbirthday; public void setSbirthday(Date sbirthday) { this.sbirthday = sbirthday; @Override public String toString() { return "StudentInfo [id=" + id + ", student=" + student + ", saddress=" + saddress + ", sbirthday=" + sbirthday + "]"; }
两个接口
package com.dao;
package com.dao; import java.util.List; import com.model.StudentInfo; public interface StudentInfoMapper { /** * 一对一关联查询 * @return public List StudentInfo selectall(); }对应的两个配置文件,注意接口名要跟实配置文件名字一样,相当与实现了接口
?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.dao.StudentMapper" !-- 添加 -- insert id="add" parameterType="student" insert into student values(#{sno},#{sname},#{ssex},#{sclass}) /insert !-- 删除 -- delete id="delete" parameterType="Integer" delete student s where s.sno=#{sno} /delete !-- 修改 -- update id="update" parameterType="student" update student s set s.sname=#{sname},s.ssex=#{ssex},s.s "select" parameterType="Integer" resultType="student" select * from student s where s.sno=#{sno} /select !-- 查全部 -- select id="selectall" resultType="student" select * from student /select !-- 多条件查询 -- select id="selectduo" parameterType="Map" resultType="student" select * from student s where s.sno=#{sno} and s.sname like #{sname} /select /mapper?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.dao.StudentInfoMapper" !-- 一对一关联查询 -- resultMap type="studentInfo" id="silist" result property="id" column="id"/ result property="student.sno" column="sno"/ result property="student.sname" column="sname"/ result property="student.ssex" column="ssex"/ result property="student.sclass" column="sclass"/ result property="saddress" column="saddress"/ result property="sbirthday" column="sbirthday"/ /resultMap !-- 一对一另一种方法 -- resultMap type="StudentInfo" id="silist1" association property="student" column="sno" select="com.dao.StudentMapper.select"/ /resultMap select id="selectall" resultMap="silist1" select * from studentinfo si left join student s on si.sno=s.sno /select /mappersqlsession工具类
package com.util; import java.io.IOException; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class SqlSessionUtil { private static SqlSessionFactory ssf; private static SqlSession ss; public static SqlSessionFactory getSqlSessionFactory(){ InputStream in=null; try { in=Resources.getResourceAsStream("mybatis-cfg.xml"); ssf=new SqlSessionFactoryBuilder().build(in); in.close(); } catch (IOException e) { e.printStackTrace(); return ssf; public static SqlSession getSqlSession(){ ss=getSqlSessionFactory().openSession(); return ss; public static void main(String[] args) { System.out.println(getSqlSession()); }第一个junit测试
package com.util; import static org.junit.Assert.*; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.dao.StudentMapper; import com.model.Student; public class Jtest { private SqlSession ss; private StudentMapper sm; @Before public void setUp() throws Exception { ss=SqlSessionUtil.getSqlSession(); sm=ss.getMapper(StudentMapper.class); @After public void tearDown() throws Exception { ss.commit(); ss.close(); public void test() { Student st=new Student(6, "蒙蒙", "男", 95031); int m=sm.add(st); System.out.println(m); public void delete() { int m=sm.delete(6); System.out.println(m); public void update() { Student st=new Student(666, "张三", "男", 95033); int m=sm.update(st); System.out.println(m); public void select() { Student st=sm.select(3); System.out.println(st); public void selectall() { List Student st=sm.selectall(); for(Student tt:st){ System.out.println(tt); @Test public void selectduo() { Map String, Object map=new HashMap String, Object (); map.put("sno", 666); map.put("sname", "%张%"); List Student st=sm.selectduo(map); for(Student tt:st){ System.out.println(tt); }第二个junit测试
package com.util; import static org.junit.Assert.*; import java.util.List; import org.apache.ibatis.session.SqlSession; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.dao.StudentInfoMapper; import com.dao.StudentMapper; import com.model.StudentInfo; public class JJtest { private SqlSession ss; private StudentInfoMapper sim; @Before public void setUp() throws Exception { ss=SqlSessionUtil.getSqlSession(); sim=ss.getMapper(StudentInfoMapper.class); @After public void tearDown() throws Exception { ss.commit(); ss.close(); @Test public void test() { List StudentInfo list=sim.selectall(); for(StudentInfo a:list){ System.out.println(a); }多条件查询结果,其它的就不发了
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16982.html
cjavaoraclexml
相关文章
- MyBatis配置与使用-初入篇
- 《深入理解mybatis原理》 MyBatis的一级缓存实现详解 及使用注意事项
- mybatis mysql 分页sql语句_使用mybatis分页查询并统计总数「建议收藏」
- 跟我一起学mybatis之注解开发---案例
- Mybatis中Dao接口的工作原理
- MyBatis框架:第十一章:mybatis 逆向工程
- MyBatis框架:第十一章:mybatis 逆向工程
- MyBatis框架:第三章:传统方式mybatis的增,删,改,查实现
- idea mybatis跳转插件_idea添加本地jar包到maven
- MyBatis-Plus 入门案例
- Mybatis入门案例【超详细】
- Mybatis关联查询【附实战案例】
- MyBatis动态sql详解编程语言
- MyBatis中井号与美元符号的区别详解编程语言
- mybatis foreach报错It was either not specified and/or could not be found for the javaType Type handler详解编程语言
- Mybatis的CRUD案例详解编程语言
- MyBatis foreach标签
- MyBatis与Oracle存储过程互通:简化开发,提高效率(mybatis调用oracle存储过程)