這篇文章給大家介紹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)。
在項(xiàng)目的根目錄新建lib文件夾,用來(lái)存放jar文件
此配置文件主要是用 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ī)定!!
此配置文件主要是日志的打印以及保存,找到<properties> </properties>標(biāo)簽,<property name="LOG_HOME"></property> (日志保存路徑) <property name="FILE_NAME"></property>(當(dāng)前項(xiàng)目名)。
在src根目錄下新建一個(gè)mybatis-cofig.xml(名字隨意)的配置文件
<settings> <!-- 配置Log4j2 --> <setting name="logImpl" value="LOG4J2"/> </settings>
<!-- 配置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>
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 + "]"; } }
新建dao包-->新建teacherDao接口
-->在dao包中新建impl包
-->在impl中新建teacherDaoImpl實(shí)現(xiàn)teacherDao接口
<mappers> <mapper resource="com/hsiao/entiy/TeacherVO.xml"/> </mappers>
在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; } }
public static void main(String...args) { SqlSession session=MybatisSessionFactory.getSession(); log.debug("獲取Connection對(duì)象"+session.getConnection()); }
測(cè)試無(wú)異常在進(jìn)行下一步。
<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>
<select id="selectAllTeacher" resultMap="teacherResult"> SELECT TID,TNAME,SUBJECT FROM TEACHER </select>
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保持一致
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)); } }
關(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)