MyBatis was predecessor to iBatis. It is a data persistence layer (ORM) framework. MyBatis is an excellent persistence layer framework that supports plain SQL queries, stored procedures and advanced mapping. MyBatis eliminates manual settings of almost all JDBC code and parameters and search for result sets. MyBatis uses simple XML or annotations for configuration and original mapping, mapping interfaces and Java's POJOs (Plan Old Java Objects, ordinary Java objects) into records in the database. Each MyBatis application mainly uses SqlSessionFactory instances, and a SqlSessionFactory instance can be obtained through SqlSessionFactoryBuilder.
The specific code is as follows:
<?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> <!-- give a alias for model --> <typeAlias alias="goods" type="com.clark.model.Goods"></typeAlias> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@172.30.0.125:1521:oradb01" /> <property name="username" value="settlement" /> <property name="password" value="settlement" /> </dataSource> </environment> </environments> <mapper resource="com/clark/model/goodsMapper.xml" /> </mappers> </configuration><?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="clark"> <!-- Map the results of db query to Model--Goods --> <resultMap type="com.clark.model.Goods" id="t_good"> <id column="id" property="id"/> <result column="cate_id" property="cateId"/> <result column="name" property="name"/> <result column="price" property="price"/> <result column="description" property="description"/> <result column="order_no" property="orderNo"/> <result column="update_time" property="updateTime"/> </resultMap> <!-- Return Goods type based on id query<typeAlias alias="goods" type="com.clark.model.Goods"></typeAlias>--> <!--The difference between using resultMap and resultType--> <select id="selectGoodById" parameterType="int" resultType="goods"> select id,cate_id,name,price,description,order_no,update_time from goods where id = #{id} </select> <!-- Query all Goods Return resultMap type--> <select id="selectAllGoods" resultMap="t_good"> select id,cate_id,name,price,description,order_no,update_time from goods </select> <!-- Specify parameterType=map Where the map is Map<String,PageBean> map--> <select id="selectGoodsByPage" resultMap="t_good" parameterType="map"> <!-- order by id asc refers to sorting the results after the query in ascending order--> <![CDATA[ select * from (select g.*,rownum rn from (select * from goods) g where 1=1 and rownum <= #{pageBean.endNumber}) where rn >= #{pageBean.startNumber}order by id asc]]> </select> <!-- Added Goods parameter type as Goods--> <insert id="insertGood" parameterType="goods"> insert into goods(id,cate_id,name,price,description,order_no,update_time) values(#{id},#{cateId},#{name},#{price},#{description},#{orderNo},#{updateTime}) </insert> <!-- Update Goods parameter type as Goods--> <update id="updateGood" parameterType="goods"> update goods g set g.name = #{name},g.order_no =#{orderNo} where g.id = #{id} </update> <!-- Delete Goods parameter type is int--> <delete id="deleteGood" parameterType="int"> delete from goods g where g.id = #{id} </delete> </mapper>package com.clark.model; import java.util.Date; public class Goods { private Integer id; private Integer cateId; private String name; private double price; private String description; private Integer orderNo; private Date updateTime; public Goods(){ } public Goods(Integer id, Integer cateId, String name, double price, String description, Integer orderNo, Date updateTime) { super(); this.id = id; this.cateId = cateId; this.name = name; this.price = price; this.description = description; this.orderNo = orderNo; this.updateTime = updateTime; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public Integer getCateId() { return cateId; } public void setCateId(Integer cateId) { this.cateId = cateId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public Integer getOrderNo() { return orderNo; } public void setOrderNo(Integer orderNo) { this.orderNo = orderNo; } public Date getTimeStamp() { return updateTime; } public void setTimeStamp(Date updateTime) { this.updateTime = updateTime; } @Override public String toString() { return "[goods include:Id="+this.getId()+",name="+this.getName()+",orderNo="+this.getOrderNo()+",cateId="+this.getCateId()+",updateTime="+this.getTimeStamp()+"]"; } } package com.clark.model; // A simulated pagination object PageBean public class PageBean { //Start number private Integer startNumber; //End number private Integer endNumber; public PageBean(){ } public PageBean(Integer startNumber, Integer endNumber) { super(); this.startNumber = startNumber; this.endNumber = endNumber; } public Integer getStartNumber() { return startNumber; } public void setStartNumber(Integer startNumber) { this.startNumber = startNumber; } public Integer getEndNumber() { return endNumber; } public void setEndNumber(Integer endNumber) { this.endNumber = endNumber; } } package com.clark.mybatis; import java.io.IOException; import java.io.Reader; import java.util.HashMap; import java.util.List; import java.util.Map; 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.clark.model.Goods; import com.clark.model.PageBean; public class TestGoods { public static void main(String[] args) throws IOException { String resource = "configuration.xml"; Reader reader = null; SqlSessionFactory sessionFactory = null; SqlSession session = null; try { reader = Resources.getResourceAsReader(resource); sessionFactory = new SqlSessionFactoryBuilder().build(reader); session = sessionFactory.openSession(); PageBean pageBean = new PageBean(8, 20); Map<String,PageBean> map = new HashMap<String, PageBean>(); map.put("pageBean", pageBean); List<Goods> gs = findGoodsByPage(session,map); for (Goods goods2 : gs) { System.out.println(goods2.toString()); } } catch (IOException e) { e.printStackTrace(); } finally{ session.close(); reader.close(); } } //find by id public static Goods findGoodById(SqlSession session,Integer id){ //clark corresponds to namespace name="clark" in the goodMapper.xml configuration file. Goods goods = (Goods)session.selectOne("clark.selectGoodById", id); return goods; } //find all public static List<Goods> findAllGoods(SqlSession session){ List<Goods> goods = session.selectList("clark.selectAllGoods"); return goods; } public static List<Goods> findGoodsByPage(SqlSession session,Map<String,PageBean> map){ List<Goods> goods = session.selectList("clark.selectGoodsByPage",map); return goods; } //insert a goods public static int insertGoods(SqlSession session,Goods goods){ int result = session.insert("clark.insertGood", goods); session.commit(); return result; } //update goods public static int updateGoods(SqlSession session,Goods goods){ int result = session.update("clark.updateGood", goods); session.commit(); return result; } //delete goods public static int deleteGood(SqlSession session,Integer id){ int result = session.delete("clark.deleteGood", id); session.commit(); return result; } }I will introduce you to the relevant knowledge about Mybatis' methods to implement addition, deletion, modification and pagination query. I will continue to update it to you later. Thank you for your continued support for the Wulin Network website.