zl程序教程

您现在的位置是:首页 >  后端

当前栏目

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

mybatis接口编程语言 使用 详解 查询 关联 两表
2023-06-13 09:11:46 时间

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

 

导包

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

总配置文件

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

 ?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 

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

driver=oracle.jdbc.OracleDriver 

jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl 

username=test1116 

password=123456

数据库

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言 mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

 

 两个实体类

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

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; }

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

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 

 + "]"; 

}

两个接口

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

package com.dao; 


mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

package com.dao; 

import java.util.List; 

import com.model.StudentInfo; 

public interface StudentInfoMapper { 

 /** 

 * 一对一关联查询 

 * @return 

 public List StudentInfo selectall(); 

}

 对应的两个配置文件,注意接口名要跟实配置文件名字一样,相当与实现了接口

 mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

 ?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 

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

 ?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 

 /mapper 

sqlsession工具类

 mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

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测试

 mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

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测试

 mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

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); 

}

多条件查询结果,其它的就不发了

mybatis 使用接口增删改查和两表一对一关联查询详解编程语言

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16982.html

cjavaoraclexml