MyBatis notes ---- multi-table join query, mybatis ----
Package com. ij34.model; public class Article {private int articleid; private User user; private String title; private int userid; private String content; public int getUserid () {return userid ;} public void setUserid (int userid) {this. userid = userid;} public int getArticleid () {return articleid;} public void setId (int id) {this. articleid = id;} public User getUser () {return user;} public void setUser (User user User) {this. user = user;} public String getTitle () {return title;} public void setTitle (String title) {this. title = title;} public String getContent () {return content;} public void setContent (String content) {this. content = content ;}}
UserMapper. xml
<?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.ij34.mybatis.UserMapper"> <select id="selectUser" parameterType="int" resultType="com.ij34.model.User"> select * from users where id=#{id}; </select> <update id="updateUser" keyProperty="id"> update users set name=#{name},age=#{age} where id=#{id} </update> <insert id="insertUser" > insert into users(name,age)values(#{name},#{age}) </insert> <delete id="deleteUser"> delete from users where name=#{name} </delete> <resultMap type="com.ij34.model.Article" id="resultAticleList"> <id property="articleid" column="articleid"/> <result property="userid" column="userid"/> <result property="title" column="title"/> <result property="content" column="content"/> <association property="user" javaType="com.ij34.model.User"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> </association> </resultMap> <select id="selectArticle" parameterType="int" resultMap="resultAticleList"> select * from users,article where users.id=article.userid and users.id=#{id} </select> </mapper>
Test. java
Package com. ij34.bean; import java. io. IOException; import java. io. inputStream; import java. util. list; 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 com. ij34.model. *; public class Test {public static void main (String [] args) throws IOException {String resource = "com/ij34/mybatis/mybatis-config.xml"; InputStream inputStream = Resources. getResourceAsStream (resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder (). build (inputStream); SqlSession session = sqlSessionFactory. openSession (); try {// User user = session. selectOne ("com. ij34.mybatis. userMapper. selectUser ", 8); // user. setName (" A"); // user. setAge (24); // session. update ("com. ij34.mybatis. userMapper. updateUser ", user); // session. commit (); // System. out. println (user); // User user = new User (); // user. setName ("test 01"); // user. setAge (19); // session. insert ("com. ij34.mybatis. userMapper. insertUser ", user); // session. commit (); // int user = session. delete ("com. ij34.mybatis. userMapper. deleteUser "," test 01 "); // session. commit (); // System. out. println (user); List <Article> articles = session. selectList ("com. ij34.mybatis. userMapper. selectArticle ", 1); for (Article article: articles) {System. out. println (article. getArticleid () + ":" + article. getTitle () + ":" + article. getContent () + "" + article. getUser ();} // UserMapper mapper = session. getMapper (UserMapper. class); // List <Article> articles = mapper. selectarticle (1); // for (Article article: articles) {// System. out. println (article. getId () + ":" + article. getTitle () + ":" + article. getContent () + "" + article. getUser (); //} finally {// TODO: handle finally clause session. close ();}}}
Result
A problem: the return id of article is not 0.