MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库 中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。
一、首先建立项目的整体效果图:
以下是MyBatis单表的增删改:
二、项目代码:
1)实体类:News中:
public class News { private Integer id; private String title; private String content; private Date pubDate; private Integer typeId; private String photo; private String tname; //get,set方式省去
2)dao层借口层的INewsDAO:
import java.util.List; import java.util.Map; import org.liky.vo.News;
public interface INewsDAO {
public void doCreate(News news) throws Exception; public void doUpdate(News news) throws Exception; public void doRemove(int id) throws Exception; public List findAll() throws Exception; public News findById(int id) throws Exception; public List findAllSplit(Map map) throws Exception; public int getAllCount(Map map) throws Exception;
}
3)dao层的实现,INewDAO.xml,正常不是myBatis,这里是写dao层的实现类的:myBatis的优势也是在这里,将sql语句抽调出来单独写入到一个xml中,便于管理数据库 。它是更接近于jdbc的,所以处理的速度很快,它是外网项目中需要用到框架。
INSERT INTO news (id,title,content,pub_date,type_id,photo) VALUES (news_seq.nextVal,#{title},#{content},#{pubDate},#{typeId},#{photo})
UPDATE news SET title = #{title},content=#{content},pub_date = #{pubDate},type_id = #{typeId},photo=#{photo} WHERE id = #{id}
DELETE FROM news WHERE id = #{id}
SELECT * FROM news
SELECT id,title,content,pub_date AS pubDate,type_id AS typeId,photo,tname FROM news n,news_type nt WHERE id = #{id} AND n.type_id = nt.tid
SELECT temp.* FROM (SELECT id,title,content,pub_date AS pubDate,type_id AS typeId,photo,ROWNUM rn FROM news WHERE ${column} LIKE #{keyword} AND ROWNUM <= #{endNumber}) temp WHERE temp.rn > #{startNumber}
SELECT COUNT(*) FROM news WHERE ${column} LIKE #{keyword}