Mybatis basic addition, deletion, modification, fuzzy query, multi-condition query
1. Create a new test database and create it according to the attributes of the entity class
2. Entity class
package com.entity; /** * Database entity class * Created by lvjun on 2018-04-12. */ public class Category { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } //display Chinese @Override public String toString() { return "Category{" + "id=" + id + ", name='" + name + '\'' + '}'; } }
3. Configuration file Category.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.entity"> <!--List--> <select id="listCategory" resultType="Category"> select * from category </select> <!--delete--> <delete id="deleteCategory" parameterType="Category"> delete from category where id= #{id} </delete> <!--Query a single --> <select id="getCategory" parameterType="_int" resultType="Category"> select * from category where id= #{id} </select> <!--Modify--> <update id="updateCategory" parameterType="Category"> update category set name=#{name} where id=#{id} </update> <!--Add--> <insert id="addCategory" parameterType="Category"> insert into category ( name ) values (#{name}) </insert> <!--Fuzzy query--> <select id="listCategoryByName" parameterType="string" resultType="Category"> select * from category where name like concat('%',#{0},'%') </select> <!--Multi-condition query--> <select id="listCategoryByIdAndName" resultType="Category"> select * from category <where> <if test="id!=null"> and id > #{id} </if> <if test="name!=null"> and name like concat('%',#{name},'%') </if> </where> </select> </mapper>
4. Configuration file mybatis-config.xml
<?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> <typeAliases> <package name="com.entity"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/school?characterEncoding=UTF-8"/> <property name="username" value="root"/> <property name="password" value="1234"/> </dataSource> </environment> </environments> <mappers> <mapper resource="Category.xml"/> </mappers> </configuration>
5. Test class
package com.lvjun; import com.entity.Category; 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 java.io.IOException; import java.io.InputStream; import java.util.List; /** * Query list * Created by lvjun on 2018-04-12. */ public class TestSelectList { public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); List<Category> cs = session.selectList("listCategory"); for (Category c : cs) { System.out.println(c.getId()+" "+c.getName()); } } }
package com.lvjun; import com.entity.Category; 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 java.io.IOException; import java.io.InputStream; import java.util.List; /** * Query a record * Created by lvjun on 2018-04-12. */ public class TestSelectOne { public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); Category c = session.selectOne("getCategory", 3); System.out.println(c.getId()+" "+c.getName()); session.commit(); session.close(); } }
package com.lvjun; import com.entity.Category; 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 java.io.IOException; import java.io.InputStream; import java.util.List; /** * Fuzzy query * Created by lvjun on 2018-04-12. */ public class TestSelectLike { public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); List<Category> cs = session.selectList("listCategoryByName", "win"); for (Category c : cs) { System.out.println(c.getId()+" "+c.getName()); } session.commit(); session.close(); } }
package com.lvjun; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; import com.entity.Category; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; /** * Multi-condition query * Created by lvjun on 2018-04-12. */ public class TestSelectToLike { public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); Map<String, Object> params = new HashMap<>(); params.put("id", 3); //conditional query params.put("name", "wi"); List<Category> cs = session.selectList("listCategoryByIdAndName", params); for (Category c : cs) { System.out.println(c.getId()+" "+c.getName()); } session.commit(); session.close(); } }
package com.lvjun; import com.entity.Category; 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 java.io.IOException; import java.io.InputStream; import java.util.List; /** * Modify the record * Created by lvjun on 2018-04-12. */ public class TestUpdate { public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); Category c = session.selectOne("getCategory", 2); c.setName("Android 8"); session.update("updateCategory", c); listAll(session); session.commit(); session.close(); } private static void listAll(SqlSession session) { List<Category> cs = session.selectList("listCategory"); for (Category c : cs) { System.out.println(c.getId()+" "+c.getName()); } } }
package com.lvjun; import com.entity.Category; 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 java.io.IOException; import java.io.InputStream; import java.util.List; /** * insert a record * Created by lvjun on 2018-04-12. */ public class TestInsert { public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); Category c = new Category(); c.setName("Newly added data"); session.insert("addCategory", c); listAll(session); session.commit(); session.close(); } private static void listAll(SqlSession session) { List<Category> cs = session.selectList("listCategory"); for (Category c : cs) { System.out.println(c.getId()+" "+c.getName()); } } }
package com.lvjun; import com.entity.Category; 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 java.io.IOException; import java.io.InputStream; import java.util.List; /** * delete a record * Created by lvjun on 2018-04-12. */ public class TestDeleteOne { public static void main(String[] args) throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); SqlSession session = sqlSessionFactory.openSession(); Category c = new Category(); c.setId(6); session.delete("deleteCategory", c); listAll(session); session.commit(); session.close(); } private static void listAll(SqlSession session) { List<Category> cs = session.selectList("listCategory"); for (Category c : cs) { System.out.println(c.getId()+" "+c.getName()); } } }