成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Mybatis中如何搭建注解式

這篇文章給大家介紹Mybatis中如何搭建注解式,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、鄄城網(wǎng)絡(luò)推廣、微信小程序、鄄城網(wǎng)絡(luò)營(yíng)銷、鄄城企業(yè)策劃、鄄城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供鄄城建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:jinyejixie.com

# 一.Mybatis框架簡(jiǎn)介

MyBatis 本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis 。2013年11月遷移到Github。

iBATIS一詞來(lái)源于“internet”和“abatis”的組合,是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAOs)。

二.準(zhǔn)備Jar包

在項(xiàng)目的根目錄新建lib文件夾,用來(lái)存放jar文件Mybatis中如何搭建注解式

三.準(zhǔn)備配置文件

1.c3p0.propertis

此配置文件主要是用 c3p0連接數(shù)據(jù)庫(kù)的信息,修改其中的driverClass(連接驅(qū)動(dòng))、url、user以及密碼。

注意:dirverClass是數(shù)據(jù)庫(kù)連接驅(qū)動(dòng),不同版本,不同數(shù)據(jù)庫(kù)連接驅(qū)動(dòng)都不同,我用的是MySQL5.7版本,命名必須是這個(gè),不要問(wèn),問(wèn)就是規(guī)定!!

2.log4j2.xml

此配置文件主要是日志的打印以及保存,找到<properties> </properties>標(biāo)簽,<property name="LOG_HOME"></property> (日志保存路徑) <property name="FILE_NAME"></property>(當(dāng)前項(xiàng)目名)。

四.創(chuàng)建Mybatis核心配置文件

在src根目錄下新建一個(gè)mybatis-cofig.xml(名字隨意)的配置文件

1.配置log4j

<settings>
		<!-- 配置Log4j2 -->
		<setting name="logImpl" value="LOG4J2"/>
</settings>

2.配置c3p0數(shù)據(jù)源

<!-- 配置MyBatista所需的數(shù)據(jù)源 -->
<environments default="myC3P0DataSource">
	<!-- C3P0數(shù)據(jù)源 -->
	<environment id="myC3P0DataSource">
		<transactionManager type="JDBC"/>
    <!-- new ComboPooledDataSource(),會(huì)默認(rèn)加載c3p0.prperties配置文件 -->
		<dataSource type="com.hsiao.factory.C3P0DataSource" />
	</environment>
</environments>

3.創(chuàng)建實(shí)體類

Teacher實(shí)體類

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.創(chuàng)建dao層以及實(shí)現(xiàn)類

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

-->在dao包中新建impl包

-->在impl中新建teacherDaoImpl實(shí)現(xiàn)teacherDao接口

5.在核心配置文件中加入實(shí)體類的映射

<mappers>
    <mapper resource="com/hsiao/entiy/TeacherVO.xml"/>
</mappers>

6.創(chuàng)建session工廠

在factory包中新建一個(gè)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 {
	
	//創(chuàng)建日志追蹤器
	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 工廠創(chuàng)建失?。?quot;);
		}
		//設(shè)置BATCH 批處理模式  fasle代表是事務(wù)非自動(dòng)提交 
		SqlSession session=sqlSessionFactory.openSession(ExecutorType.BATCH,false);
		return session;
	}
}

7.測(cè)試獲取連接

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

測(cè)試無(wú)異常在進(jìn)行下一步。Mybatis中如何搭建注解式

8.在TeacherVO.xml中封裝結(jié)果集

<resultMap id="teacherResult" type="com.hsiao.entiy.Teacher">
  <!-- column列名 jdbcType數(shù)據(jù)庫(kù)類型 property數(shù)據(jù)庫(kù)字段對(duì)應(yīng)實(shí)體類屬性名 -->
     <id column="tid" jdbcType="BIGINT" property="tid"/>
     <result column="tname" jdbcType="VARCHAR" property="tname"/>
     <result column="subject" jdbcType="VARCHAR" property="subject"/>
</resultMap>

9.在TeacherVO.xml中寫(xiě)sql語(yǔ)句標(biāo)簽

<select id="selectAllTeacher" resultMap="teacherResult">
		SELECT TID,TNAME,SUBJECT FROM TEACHER
</select>

10.dao層寫(xiě)抽象方法

package com.hsiao.dao;

import com.hsiao.entiy.Teacher;

import java.util.List;

public interface TeacherDao {
    public List<Teacher> selectAllTeacher();
}

注意:dao層方法的方法名與對(duì)象映射文件(TeacherVO.xml)的select標(biāo)簽的id保持一致

11.dao層的實(shí)現(xiàn)類寫(xiě)方法并測(cè)試

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<Teacher> selectAllTeacher() {
        SqlSession session= MybatisSessionFactory.getSession();
        List<Teacher> list=  session.selectList("selectAllTeacher");
        session.close();
        return list;
    }

    public static void main(String[] args) {
        TeacherDaoImpl dao=new TeacherDaoImpl();
        List<Teacher> list=dao.selectAllTeacher();
        list.forEach((m)->log.debug(m));
    }
}

Mybatis中如何搭建注解式

關(guān)于Mybatis中如何搭建注解式就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

分享標(biāo)題:Mybatis中如何搭建注解式
URL分享:http://jinyejixie.com/article4/gpidoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、關(guān)鍵詞優(yōu)化、微信小程序、域名注冊(cè)、用戶體驗(yàn)、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
万源市| 新蔡县| 崇左市| 广平县| 长阳| 黔西| 靖远县| 湖口县| 沛县| 江西省| 吉首市| 罗山县| 扶绥县| 望都县| 鲁甸县| 莲花县| 台南县| 蒙山县| 莎车县| 芜湖市| 云阳县| 碌曲县| 金湖县| 郑州市| 石景山区| 札达县| 台湾省| 门源| 永修县| 鹿邑县| 子长县| 台东市| 漾濞| 淳化县| 临邑县| 沾化县| 双牌县| 雅安市| 抚州市| 宜兴市| 大港区|