千家信息网

Mybatis中如何搭建注解式

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,这篇文章给大家介绍Mybatis中如何搭建注解式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。# 一.Mybatis框架简介MyBatis 本是apache的一个开源项目iBat
千家信息网最后更新 2024年11月28日Mybatis中如何搭建注解式

这篇文章给大家介绍Mybatis中如何搭建注解式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

# 一.Mybatis框架简介

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。

iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。

二.准备Jar包

在项目的根目录新建lib文件夹,用来存放jar文件

三.准备配置文件

1.c3p0.propertis

此配置文件主要是用 c3p0连接数据库的信息,修改其中的driverClass(连接驱动)、url、user以及密码。

注意:dirverClass是数据库连接驱动,不同版本,不同数据库连接驱动都不同,我用的是mysql5.7版本,命名必须是这个,不要问,问就是规定!!

2.log4j2.xml

此配置文件主要是日志的打印以及保存,找到 标签, (日志保存路径) (当前项目名)。

四.创建Mybatis核心配置文件

在src根目录下新建一个mybatis-cofig.xml(名字随意)的配置文件

1.配置log4j

                                

2.配置c3p0数据源

                                                            

3.创建实体类

Teacher实体类

package com.hsiao.entiy;import java.util.Date;public class Student {        private Long sid;        private String sname;        private Date sdate;        private Long tid;                private  Teacher tvo;        public Student() {                super();                // TODO Auto-generated constructor stub        }        public Student(Long sid, String sname, Date sdate, Long tid, Teacher tvo) {                super();                this.sid = sid;                this.sname = sname;                this.sdate = sdate;                this.tid = tid;                this.tvo = tvo;        }        public Long getSid() {                return sid;        }        public void setSid(Long sid) {                this.sid = sid;        }        public String getSname() {                return sname;        }        public void setSname(String sname) {                this.sname = sname;        }        public Date getSdate() {                return sdate;        }        public void setSdate(Date sdate) {                this.sdate = sdate;        }        public Long getTid() {                return tid;        }        public void setTid(Long tid) {                this.tid = tid;        }        public Teacher getTvo() {                return tvo;        }        public void setTvo(Teacher tvo) {                this.tvo = tvo;        }        @Override        public String toString() {                return "Student [sid=" + sid + ", sname=" + sname + ", sdate=" + sdate + ", tid=" + tid + ", tvo=" + tvo + "]";        }        }

4.创建dao层以及实现类

新建dao包-->新建teacherDao接口

-->在dao包中新建impl包

-->在impl中新建teacherDaoImpl实现teacherDao接口

5.在核心配置文件中加入实体类的映射

    

6.创建session工厂

在factory包中新建一个MybatisSessionFactory工厂类

package com.hsiao.factory;import java.io.InputStream;import org.apache.ibatis.session.ExecutorType;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;public class MybatisSessionFactory {                //创建日志追踪器        private static Logger log=LogManager.getLogger();                private static SqlSessionFactory sqlSessionFactory;                /**         * 加载mybatis-config.xml配置文件         */        static {                InputStream ins=              MybatisSessionFactory.class.getClass().getResourceAsStream("/mybatis-config.xml");           sqlSessionFactory=new SqlSessionFactoryBuilder().build(ins);        }                public static SqlSession getSession() {                if(sqlSessionFactory==null) {                        throw new NullPointerException("session 工厂创建失败!");                }                //设置BATCH 批处理模式  fasle代表是事务非自动提交                 SqlSession session=sqlSessionFactory.openSession(ExecutorType.BATCH,false);                return session;        }}

7.测试获取连接

public static void main(String...args) {                SqlSession session=MybatisSessionFactory.getSession();                log.debug("获取Connection对象"+session.getConnection());        }

测试无异常在进行下一步。

8.在TeacherVO.xml中封装结果集

                 

9.在TeacherVO.xml中写sql语句标签

10.dao层写抽象方法

package com.hsiao.dao;import com.hsiao.entiy.Teacher;import java.util.List;public interface TeacherDao {    public List selectAllTeacher();}

注意:dao层方法的方法名与对象映射文件(TeacherVO.xml)的select标签的id保持一致

11.dao层的实现类写方法并测试

package com.hsiao.dao.impl;import com.hsiao.dao.TeacherDao;import com.hsiao.entiy.Teacher;import com.hsiao.factory.MybatisSessionFactory;import org.apache.ibatis.session.SqlSession;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import java.util.List;public class TeacherDaoImpl implements TeacherDao {    private static Logger log= LogManager.getLogger();    @Override    public List selectAllTeacher() {        SqlSession session= MybatisSessionFactory.getSession();        List list=  session.selectList("selectAllTeacher");        session.close();        return list;    }    public static void main(String[] args) {        TeacherDaoImpl dao=new TeacherDaoImpl();        List list=dao.selectAllTeacher();        list.forEach((m)->log.debug(m));    }}

关于Mybatis中如何搭建注解式就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0