导包

总配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE configuration
  3. PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  5. <configuration>
  6. <properties resource="db.properties"/>
  7. <typeAliases>
  8. <package name="com.model"/>
  9. </typeAliases>
  10. <environments default="test">
  11. <environment id="test">
  12. <transactionManager type="JDBC"/>
  13. <dataSource type="POOLED">
  14. <property name="driver" value="${driver}"/>
  15. <property name="url" value="${jdbcUrl}"/>
  16. <property name="username" value="${username}"/>
  17. <property name="password" value="${password}"/>
  18. </dataSource>
  19. </environment>
  20. </environments>
  21.  
  22. <mappers>
  23. <package name="com.dao"/><!-- 自动装配包里的接口 -->
  24. </mappers>
  25.  
  26. </configuration>

  1. driver=oracle.jdbc.OracleDriver
  2. jdbcUrl=jdbc:oracle:thin:@localhost::orcl
  3. username=test1116
  4. password=

数据库

 

两个实体类

  1. package com.model;
  2.  
  3. import java.util.Date;
  4.  
  5. public class Student {
  6. private Integer sno;
  7. private String sname;
  8. private String ssex;
  9. private Integer sclass;
  10.  
  11. public Student() {
  12. super();
  13. }
  14.  
  15. public Student(Integer sno, String sname, String ssex, Integer sclass) {
  16. super();
  17. this.sno = sno;
  18. this.sname = sname;
  19. this.ssex = ssex;
  20. this.sclass = sclass;
  21. }
  22.  
  23. public Integer getSno() {
  24. return sno;
  25. }
  26. public void setSno(Integer sno) {
  27. this.sno = sno;
  28. }
  29.  
  30. public String getSname() {
  31. return sname;
  32. }
  33. public void setSname(String sname) {
  34. this.sname = sname;
  35. }
  36. public String getSsex() {
  37. return ssex;
  38. }
  39. public void setSsex(String ssex) {
  40. this.ssex = ssex;
  41. }
  42.  
  43. @Override
  44. public String toString() {
  45. return "Student [sno=" + sno + ", sname=" + sname + ", ssex=" + ssex + ", sclass=" + sclass + "]";
  46. }
  47.  
  48. public Integer getSclass() {
  49. return sclass;
  50. }
  51. public void setSclass(Integer sclass) {
  52. this.sclass = sclass;
  53. }
  54.  
  55. }

  1. package com.model;
  2.  
  3. import java.util.Date;
  4.  
  5. public class StudentInfo {
  6. private Integer id;
  7. private Student student;
  8. private String saddress;
  9. private Date sbirthday;
  10.  
  11. public StudentInfo() {
  12. super();
  13. }
  14.  
  15. public StudentInfo(Integer id, Student student, String saddress, Date sbirthday) {
  16. super();
  17. this.id = id;
  18. this.student = student;
  19. this.saddress = saddress;
  20. this.sbirthday = sbirthday;
  21. }
  22.  
  23. public Integer getId() {
  24. return id;
  25. }
  26.  
  27. public void setId(Integer id) {
  28. this.id = id;
  29. }
  30. public Student getStudent() {
  31. return student;
  32. }
  33. public void setStudent(Student student) {
  34. this.student = student;
  35. }
  36. public String getSaddress() {
  37. return saddress;
  38. }
  39. public void setSaddress(String saddress) {
  40. this.saddress = saddress;
  41. }
  42. public Date getSbirthday() {
  43. return sbirthday;
  44. }
  45. public void setSbirthday(Date sbirthday) {
  46. this.sbirthday = sbirthday;
  47. }
  48. @Override
  49. public String toString() {
  50. return "StudentInfo [id=" + id + ", student=" + student + ", saddress=" + saddress + ", sbirthday=" + sbirthday
  51. + "]";
  52. }
  53. }

两个接口

  1. package com.dao;
  2.  
  3. import java.util.List;
  4. import java.util.Map;
  5.  
  6. import com.model.Student;
  7.  
  8. public interface StudentMapper {
  9. /**
  10. * 添加
  11. */
  12. public Integer add(Student student);
  13. /**
  14. * 删除
  15. */
  16. public Integer delete(Integer son);
  17. /**
  18. * 修改
  19. */
  20. public Integer update(Student student);
  21. /**
  22. * 根据主键查查询
  23. */
  24. public Student select(Integer sno);
  25. /**
  26. * 全表查询
  27. */
  28. public List<Student> selectall();
  29. /**
  30. * 多条件查询
  31. */
  32. public List<Student> selectduo(Map<String, Object> map);
  33. }

  1. package com.dao;
  2.  
  3. import java.util.List;
  4.  
  5. import com.model.StudentInfo;
  6.  
  7. public interface StudentInfoMapper {
  8. /**
  9. * 一对一关联查询
  10. * @return
  11. */
  12. public List<StudentInfo> selectall();
  13. }

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.dao.StudentMapper">
  6. <!-- 添加 -->
  7. <insert id="add" parameterType="student">
  8. insert into student values(#{sno},#{sname},#{ssex},#{sclass})
  9. </insert>
  10. <!-- 删除 -->
  11. <delete id="delete" parameterType="Integer">
  12. delete student s where s.sno=#{sno}
  13. </delete>
  14. <!-- 修改 -->
  15. <update id="update" parameterType="student">
  16. update student s set s.sname=#{sname},s.ssex=#{ssex},s.sclass=#{sclass} where s.sno=#{sno}
  17. </update>
  18. <!-- 根据主键查 -->
  19. <select id="select" parameterType="Integer" resultType="student">
  20. select * from student s where s.sno=#{sno}
  21. </select>
  22. <!-- 查全部 -->
  23. <select id="selectall" resultType="student" >
  24. select * from student
  25. </select>
  26. <!-- 多条件查询 -->
  27. <select id="selectduo" parameterType="Map" resultType="student" >
  28. select * from student s where s.sno=#{sno} and s.sname like #{sname}
  29. </select>
  30. </mapper>

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.dao.StudentInfoMapper">
  6. <!-- 一对一关联查询 -->
  7. <resultMap type="studentInfo" id="silist">
  8. <result property="id" column="id"/>
  9.  
  10. <result property="student.sno" column="sno"/>
  11. <result property="student.sname" column="sname"/>
  12. <result property="student.ssex" column="ssex"/>
  13. <result property="student.sclass" column="sclass"/>
  14.  
  15. <result property="saddress" column="saddress"/>
  16. <result property="sbirthday" column="sbirthday"/>
  17. </resultMap>
  18. <!-- 一对一另一种方法 -->
  19. <resultMap type="StudentInfo" id="silist1">
  20. <association property="student" column="sno" select="com.dao.StudentMapper.select"/>
  21. </resultMap>
  22.  
  23. <select id="selectall" resultMap="silist1">
  24. select * from studentinfo si
  25. left join student s on si.sno=s.sno
  26. </select>
  27.  
  28. </mapper>

sqlsession工具类

  1. package com.util;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5.  
  6. import org.apache.ibatis.io.Resources;
  7. import org.apache.ibatis.session.SqlSession;
  8. import org.apache.ibatis.session.SqlSessionFactory;
  9. import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  10.  
  11. public class SqlSessionUtil {
  12. private static SqlSessionFactory ssf;
  13. private static SqlSession ss;
  14.  
  15. public static SqlSessionFactory getSqlSessionFactory(){
  16. InputStream in=null;
  17. try {
  18. in=Resources.getResourceAsStream("mybatis-cfg.xml");
  19. ssf=new SqlSessionFactoryBuilder().build(in);
  20. in.close();
  21. } catch (IOException e) {
  22. e.printStackTrace();
  23. }
  24. return ssf;
  25. }
  26. public static SqlSession getSqlSession(){
  27. ss=getSqlSessionFactory().openSession();
  28. return ss;
  29. }
  30. public static void main(String[] args) {
  31. System.out.println(getSqlSession());
  32. }
  33.  
  34. }

第一个junit测试

  1. package com.util;
  2.  
  3. import static org.junit.Assert.*;
  4.  
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8.  
  9. import org.apache.ibatis.session.SqlSession;
  10. import org.junit.After;
  11. import org.junit.Before;
  12. import org.junit.Test;
  13.  
  14. import com.dao.StudentMapper;
  15. import com.model.Student;
  16.  
  17. public class Jtest {
  18. private SqlSession ss;
  19. private StudentMapper sm;
  20. @Before
  21. public void setUp() throws Exception {
  22. ss=SqlSessionUtil.getSqlSession();
  23. sm=ss.getMapper(StudentMapper.class);
  24.  
  25. }
  26.  
  27. @After
  28. public void tearDown() throws Exception {
  29. ss.commit();
  30. ss.close();
  31. }
  32.  
  33. public void test() {
  34. Student st=new Student(6, "蒙蒙", "男", 95031);
  35. int m=sm.add(st);
  36. System.out.println(m);
  37. }
  38. public void delete() {
  39. int m=sm.delete(6);
  40. System.out.println(m);
  41. }
  42. public void update() {
  43. Student st=new Student(666, "张三", "男", 95033);
  44. int m=sm.update(st);
  45. System.out.println(m);
  46. }
  47. public void select() {
  48. Student st=sm.select(3);
  49. System.out.println(st);
  50. }
  51. public void selectall() {
  52. List<Student> st=sm.selectall();
  53. for(Student tt:st){
  54. System.out.println(tt);
  55. }
  56. }
  57. @Test
  58. public void selectduo() {
  59. Map<String, Object> map=new HashMap<String, Object>();
  60. map.put("sno", 666);
  61. map.put("sname", "%张%");
  62. List<Student> st=sm.selectduo(map);
  63. for(Student tt:st){
  64. System.out.println(tt);
  65. }
  66. }
  67.  
  68. }

第二个junit测试

  1. package com.util;
  2.  
  3. import static org.junit.Assert.*;
  4.  
  5. import java.util.List;
  6.  
  7. import org.apache.ibatis.session.SqlSession;
  8. import org.junit.After;
  9. import org.junit.Before;
  10. import org.junit.Test;
  11.  
  12. import com.dao.StudentInfoMapper;
  13. import com.dao.StudentMapper;
  14. import com.model.StudentInfo;
  15.  
  16. public class JJtest {
  17. private SqlSession ss;
  18. private StudentInfoMapper sim;
  19. @Before
  20. public void setUp() throws Exception {
  21. ss=SqlSessionUtil.getSqlSession();
  22. sim=ss.getMapper(StudentInfoMapper.class);
  23.  
  24. }
  25.  
  26. @After
  27. public void tearDown() throws Exception {
  28. ss.commit();
  29. ss.close();
  30. }
  31. @Test
  32. public void test() {
  33. List<StudentInfo> list=sim.selectall();
  34. for(StudentInfo a:list){
  35. System.out.println(a);
  36. }
  37. }
  38.  
  39. }

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

mybatis 使用接口增删改查和两表一对一关联查询的更多相关文章

  1. MyBatis -- 对表进行增删改查(基于注解的实现)

    1.MyBatis对数据库表进行增/删/改/查 前一篇使用基于XML的方式实现对数据库的增/删/改/查 以下我们来看怎么使用注解的方式实现对数据库表的增/删/改/查 1.1  首先须要定义映射sql的 ...

  2. Spring Boot 使用Mybatis注解开发增删改查

    使用逆向工程是遇到的错误 错误描述 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): c ...

  3. Mybatis实现简单增删改查

    Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...

  4. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  5. Mybatis入门之增删改查

    Mybatis入门之增删改查 Mybatis如果操作成功,但是数据库没有更新那就是得添加事务了.(增删改都要添加)----- 浪费了我40多分钟怀疑人生后来去百度... 导入包: 引入配置文件: sq ...

  6. SQL Server -- 回忆笔记(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询

    SQL Server知识点回忆篇(二):增删改查,修改表结构,约束,关键字使用,函数,多表联合查询 1. insert 如果sql server设置的排序规则不是简体中文,必须在简体中文字符串前加N, ...

  7. TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查、有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句。

    TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查.有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句. select 'grant '|| PRIV ...

  8. SpringMVC,MyBatis商品的增删改查

    一.需求 商品的增删改查 二.工程结构 三.代码 1.Mapper层 (1) ItemsMapperCustom.java package com.tony.ssm.mapper; import ja ...

  9. mybatis中的增删改查操作

    在这一个部分,主要进行增删改查的示例书写. 增删改查可以基于xml的,也可以基于注解的方式. 一:对单条数据的查询 1.目录结构 这个使得目录更加清晰 2.User.java 这个使用以前的user表 ...

随机推荐

  1. Linux(8)- nginx+uWSGI+virtualenv+supervisor 发布web服务器

    一.理论梳理 WSGI是web服务器的网关接口,它是一个规范,描述了web服务器(下图中的WEB server)如何与web应用程序(下图中的Application)通信,以及web应用程序如何链接在 ...

  2. java 程序cpu100%问题

    找到java应用进程 ID即 java_id 找到该 java_id对应的CPU占用比较大的线程 ID即 thread_id 使用jdk自带jstack工具打印跟该线程相关的堆栈信息 [root@pv ...

  3. LeetCode:逆波兰表达式求值【150】

    LeetCode:逆波兰表达式求值[150] 题目描述 根据逆波兰表示法,求表达式的值. 有效的运算符包括 +, -, *, / .每个运算对象可以是整数,也可以是另一个逆波兰表达式. 说明: 整数除 ...

  4. 查询前几条记录 top limit

    SQL Server 数据库中的Top关键字可实现查询数据库表中的前几条数据,但是需要注意的是,Top关键字只能在SQL Server数据库中可以使用,而在MySQL数据库中就要使用具有同样功能的LI ...

  5. URAL - 1900 Brainwashing Device

    While some people travel in space from planet to planet and discover new worlds, the others who live ...

  6. VMWare 安装时报错 tools-windows.msi failed报错解决办法

    1.我用的是7.1.3版本的,到官方网站上下载这个版本的tools安装包 http://softwareupdate.vmware.com/cds/vmw-desktop/ws/7.1.3/32428 ...

  7. 属性检测 In,hasOwnPreperty()和propertyIsEnumerable()

    IN  左侧是属性名:右侧是对象名, 如果 属性是 自有属性 或者继承属性 则返回 TRUE var o={x:1,y:2} "x" in  o    返回 true: hasOw ...

  8. html4与html5的区别

    一.HTML5更加灵活,支持下列多种形式 1.标签名可以大写(不推荐) -<SpAN>这个HTML5也的认</SpAN> 2.属性双引号可选(推荐添加双引号) -<div ...

  9. 二叉树、平衡二叉树、B-Tree与B+Tree

    本文总结自:https://blog.csdn.net/chuixue24/article/details/80027689 二叉树(B树,binary tree) 左子树的键值 < 根的键值 ...

  10. 抗DDOS攻击

    2016年10月的某天,“半个美国互联网”都瘫痪了,就是因为遭受了DDoS攻击——Twitter.GitHub.Spotify.Airbnb.Etsy等大量站点都因此受到影响.DNS服务提供商Dyn公 ...