日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

如何快速学习使用mybatis以及总结

發(fā)布時(shí)間:2023/12/4 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何快速学习使用mybatis以及总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

第一步 讓我來(lái)介紹下初學(xué)者怎么快速更好的使用mybatis這個(gè)框架?

使用mybatis的話,每個(gè)Dao就對(duì)于一個(gè)相應(yīng)的xml文件,我來(lái)給個(gè)例子個(gè)大家看,先要配置好環(huán)境。在application.xml里面 <!-- c3p0 connection pool configuration 數(shù)據(jù)庫(kù)的配置 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><property name="driverClass" value="${jdbc.driverClass}" /> <!-- 數(shù)據(jù)庫(kù)驅(qū)動(dòng) --><property name="jdbcUrl" value="${jdbc.url}" /> <!-- 連接URL串 --><property name="user" value="${jdbc.user}" /> <!-- 連接用戶名 --><property name="password" value="${jdbc.password}" /> <!-- 連接密碼 --><property name="initialPoolSize" value="${jdbc.initialPoolSize}" /> <!-- 初始化連接池時(shí)連接數(shù)量為5個(gè) --><property name="minPoolSize" value="${jdbc.minPoolSize}" /> <!-- 允許最小連接數(shù)量為5個(gè) --><property name="maxPoolSize" value="${jdbc.maxPoolSize}" /> <!-- 允許最大連接數(shù)量為20個(gè) --><property name="numHelperThreads" value="20" /> <!-- 允許最大連接數(shù)量為20個(gè) --><property name="maxStatements" value="100" /> <!-- 允許連接池最大生成100個(gè)PreparedStatement對(duì)象 --><property name="maxIdleTime" value="3600" /> <!-- 連接有效時(shí)間,連接超過(guò)3600秒未使用,則該連接丟棄 --><property name="acquireIncrement" value="2" /> <!-- 連接用完時(shí),一次產(chǎn)生的新連接步進(jìn)值為2 --><property name="acquireRetryAttempts" value="5" /> <!-- 獲取連接失敗后再嘗試10次,再失敗則返回DAOException異常 --><property name="acquireRetryDelay" value="600" /> <!-- 獲取下一次連接時(shí)最短間隔600毫秒,有助于提高性能 --><property name="testConnectionOnCheckin" value="true" /> <!-- 檢查連接的有效性,此處小弟不是很懂什么意思 --><property name="idleConnectionTestPeriod" value="1200" /> <!-- 每個(gè)1200秒檢查連接對(duì)象狀態(tài) --><property name="checkoutTimeout" value="10000" /> <!-- 獲取新連接的超時(shí)時(shí)間為10000毫秒 --></bean><!-- 創(chuàng)建SqlSessionFactory,同時(shí)指定數(shù)據(jù)源 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /></bean><!-- 配置事務(wù)管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!--創(chuàng)建數(shù)據(jù)映射器,數(shù)據(jù)映射器必須為接口 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="annotationClass" value="org.springframework.stereotype.Repository" /><property name="basePackage" value="com.shishuo.studio.dao" /></bean>
然后我在dao層寫個(gè)類 ? package com.shishuo.studio.dao; import java.util.List; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import com.shishuo.studio.entity.TagSkill; import com.shishuo.studio.entity.vo.TagSkillVo; @Repository public interface TagSkillDao {/*** 增加* * @param tagSkill* @return*/public int addTagSkill(TagSkill tagSkill);/*** 刪除* * @param skillId* @return*/public int deleteTagSkill(@Param("skillId") long skillId);/*** * 通過(guò)SkillId修改名字*/public int updateNameBySkillId(@Param("skillId") long skillId,@Param("name") String name);/*** 通過(guò)Id查詢* * @param skillId* @return*/public TagSkillVo getTagSkillByTagId(@Param("skillId") long skillId);/*** 通過(guò)名字查詢* * @param name* @param rows* @return*/public TagSkillVo getTagSkillByName(@Param("name") String name);/*** 通過(guò)userId得到所有所有自己的技能* * @param userId* @return*/public List<TagSkillVo> getTagSkillListByUserId(@Param("userId") long userId); } 然后再就是對(duì)應(yīng)的XML文件 TagSkill.xml <?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="com.shishuo.studio.dao.TagSkillDao"><!-- ############################## --><!-- ###### 增加 ###### --><!-- ############################## --><insert id="addTagSkill" parameterType="com.shishuo.studio.entity.TagSkill">insert into tag_skill(name,content,status,createTime)values(#{name},#{content},#{status},#{createTime})<selectKey resultType="long" keyProperty="skillId">SELECT LAST_INSERT_ID() </selectKey></insert><!-- ############################## --><!-- ###### 刪除 ###### --><!-- ############################## --><delete id="deleteTagSkill" parameterType="Long">delete from tag_skill where skillId=#{skillId}</delete><!-- ############################## --><!-- ###### 修改 ###### --><!-- ############################## --><update id="updateNameBySkillId">update tag_skill set name=#{name} where skillId=#{skillId}</update><!-- ############################## --><!-- ###### 查詢 ###### --><!-- ############################## --><select id="getTagSkillByTagId" parameterType="Long"resultType="com.shishuo.studio.entity.vo.TagSkillVo">select * from tag_skill where skillId=#{skillId}</select><select id="getTagSkillByName" resultType="com.shishuo.studio.entity.vo.TagSkillVo">select * from tag_skill where name=#{name} </select><select id="getTagSkillListByUserId" resultType="com.shishuo.studio.entity.vo.TagSkillVo">SELECT tags.skillId,tags.name,tags.content,tags.status,tags.createTime FROM shishuo.tag_skill tags,shishuo.teacher_skill teas where tags.skillId=teas.tagSkillId and userId=#{userId};</select> </mapper> 使用經(jīng)驗(yàn)
1、要記得在TagSkillDao這個(gè)類前添加@Repository這個(gè)注解,實(shí)體的意思
2、你發(fā)現(xiàn)了沒有,在xml文件里面的id在那個(gè)dao層類里面對(duì)應(yīng)的方法名,然后就是在那個(gè)XML文件里面,resultType這個(gè)參數(shù)里面和對(duì)應(yīng)方法里面的返回?cái)?shù)據(jù)類型想匹配,記住,如果方法返回是int,記得寫Internet,是包裝類型,不然會(huì)出錯(cuò)的,如果是返回對(duì)象的話,或者返回一個(gè)對(duì)象的集合,resultType里面就要寫這個(gè)對(duì)象,如果是沒有返回的可以不需要寫,在dao層里面的方法需要傳參數(shù)的話,需要寫parameterType,但是一定要記住是包裝類型,不是基本數(shù)據(jù)類型,在dao層里面的方法如果是要增加,就傳一個(gè)對(duì)象過(guò)來(lái),不需要寫注解,如果是通過(guò)Id刪除的話,比如public int deleteTagSkill(@Param("skillId") long skillId);我們?cè)趚ml文件里面
? <delete id="deleteTagSkill" parameterType="Long">delete from tag_skill where skillId=#{skillId} </delete> public int deleteTagSkill(@Param("skillId") long skillId); ?這個(gè)#{skillId}就相當(dāng)于我們函數(shù)里面的參數(shù)skillId,其它的增刪改查都類似。
這些都是一些基本的用法,不知道講明白了沒有,如果不懂的加我QQ:2657607916

?

總結(jié)

以上是生活随笔為你收集整理的如何快速学习使用mybatis以及总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。