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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis jdbctype数据类型_mybaits-mybatis配置

發布時間:2025/3/20 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis jdbctype数据类型_mybaits-mybatis配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一 前言

這篇文章涵蓋了大量的mybatis配置,讀懂一篇,收益終身。

二 properties配置

之前發布的文章中配置數據庫連接信息是直接寫入到mybatis-config.xml;為了使用靈活方便,和動態修改配置,我們將配置內容提取到配置文件db.properties(放在resource目錄下,也可自定義)中,然后在 配置文件中的<properties> 標簽引入 db.properties 所在的位置,然后就可以在 配置文件中使用 ${key} 獲得 db.properties 中對應 key 的 value; 為此以后修改配置文件僅修改外面的 db.properties 中內容即可;

2.1 mybatis-config.xml

配置文件修改內容如下, MyBatis 3.4.2 之后還支持 默認屬性例如:${username:root} ,當配置文件中未定義該屬性時會讀取默認屬性root,更多詳細的屬性配置看官網;

<!-- 引入resource目錄下的配置文件 --><properties resource="db.properties"><property name="username" value="root"/><property name="password" value="123456"/></properties><!-- 全局環境配置--><environments default="development"><environment id="development"><!-- 事物 --><transactionManager type="JDBC"/><!-- 配置數據源 --><dataSource type="POOLED"><property name="driver" value="${driver}"/><property name="url" value="${url}"/><!-- 配置默認值--><property name="username" value="${username}"/><property name="password" value="${password}"/></dataSource></environment></environments>

2.2 db.properties

屬性文件內如如下;

driver = com.mysql.jdbc.Driver username = root url = jdbc:mysql://192.168.0.100:3306/mybatis password = 123456

三 typeAliases配置

typeAliases也就是別名的意思,我們之前查詢的結果有個 resultType 屬性,每次返回時都要使用類的全限定名(例如:com.zszxz.config.entity.Student),這種配置方式比較繁瑣,mybatis 可以通過配置別名的方式使用簡單類名代替類的全限定名;

3.1 配置方式一

第一種配置比較繁瑣,也就是你有多少個返回類型的實體類,就在 mybatis-config.xml 的屬性 <typeAliases>中配置多少個類名的映射;

mybatis-config.xml代碼片段如下,需注意的標簽的放置位置;

<typeAliases><typeAlias type="com.zszxz.config.entity.Student" alias="student"></typeAlias></typeAliases>

mapper.xml 配置如下:

<!-- 查詢學生--><select id="getStudent" resultType="student">select * from student</select>

3.2 配置方式二

第二種配置方式就是使用包名配置,mybaits就會進行自動映射,我們在mapper.xml中就可以使用類的簡單名稱表示全類名,這種方式比較簡潔,推薦使用;

mybatis-config.xml代碼片段如下

<typeAliases><package name="com.zszxz.config.entity"/></typeAliases>

mapper.xml 配置如下:

<!-- 查詢學生--><select id="getStudent" resultType="student">select * from student</select>

3.3 配置方式三

第三種配置方式是使用注解配置,這種配置方式基于第二種的配置方式上,能夠修改默認別名(默認是使用類的簡單類名);在返回類型的實體上使用注解 @Alias可以指定別名;

實體如下:

/*** @Author lsc* @Description <p> </p>* @Date 2019/12/1 20:07*/ @Alias("stu") public class Student {// idprivate String id;// 學生姓名private String name;// 學生編號private String number;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;} }

mapper.xml如下:

<!-- 查詢學生--><select id="getStudent" resultType="stu">select * from student</select>

3.4 mybatis內置別名

mybatis 內置了多別名類型,即有些數據類型不需要配置別名也可以使用類的簡單名稱,比如java的8中基本數據類型和對應的包裝類型,集合,迭代器,String類,大數值,日期等;

四 setting 配置說明

https://blog.csdn.net/youku1327/article/details/103604724 抱歉了,太長了可以看我得博客。

官方完整示例如下,實際開發中并非如此配置,按需配置;

<settings><setting name="cacheEnabled" value="true"/><setting name="lazyLoadingEnabled" value="true"/><setting name="multipleResultSetsEnabled" value="true"/><setting name="useColumnLabel" value="true"/><setting name="useGeneratedKeys" value="false"/><setting name="autoMappingBehavior" value="PARTIAL"/><setting name="autoMappingUnknownColumnBehavior" value="WARNING"/><setting name="defaultExecutorType" value="SIMPLE"/><setting name="defaultStatementTimeout" value="25"/><setting name="defaultFetchSize" value="100"/><setting name="safeRowBoundsEnabled" value="false"/><setting name="mapUnderscoreToCamelCase" value="false"/><setting name="localCacheScope" value="SESSION"/><setting name="jdbcTypeForNull" value="OTHER"/><setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/> </settings>

五 typeHandlers 類型處理器

類型處理器故名思意,也就是可以在java類型和數據庫jdbc類型之間轉換;如果要自定義類型處理器就需要編寫類型處理器類,然后在配置文件中配置,在SQL映射文件mapper.xml中使用。

5.1 自定義TypeHandle

本次示例就以字符串類型演示,需要繼承BaseTypeHandler類,重寫里面的方法,具體的代碼清單如下,使用注解 @MappedJdbcTypes 會覆蓋 泛型的String類型;

/*** @Author lsc* <p> 知識追尋者,字符串類型處理器</p>*/ // 指定關聯jdbc會改變泛型指定 //@MappedJdbcTypes(JdbcType.VARCHAR) public class StringTypeHandler extends BaseTypeHandler<String> {public void setNonNullParameter(PreparedStatement preparedStatement, int i, String s, JdbcType jdbcType) throws SQLException {// 指定java參數類型(String)對應數據庫類型(varchar)preparedStatement.setString(i,s);}public String getNullableResult(ResultSet resultSet, String s) throws SQLException {return resultSet.getString(s);}public String getNullableResult(ResultSet resultSet, int i) throws SQLException {return resultSet.getString(i);}public String getNullableResult(CallableStatement callableStatement, int i) throws SQLException {return callableStatement.getString(i);} }

5.2 mybatis-config.xml

在 mybaits的配置文件中配置自定義的類型處理器

<!--配置類型處理器,會覆蓋默認的類型處理器 --><typeHandlers><typeHandler handler="com.zszxz.config.handler.StringTypeHandler"></typeHandler></typeHandlers>

也可以使用包名全局掃描,減輕配置過程;

<!--配置類型處理器,會覆蓋默認的類型處理器 --><typeHandlers><package name="com.zszxz.config.handler"/></typeHandlers>

如果配置了jdbc的映射屬性會覆蓋泛型指定類型

<typeHandlers><!--指定關聯jdbc會改變泛型指定 --><typeHandler handler="com.zszxz.config.handler.StringTypeHandler" javaType="java.lang.String" jdbcType="VARCHAR"></typeHandler></typeHandlers>

5.3 SQL映射文件

使用 jdbcType=VARCHAR,javaType=String 指定類型轉換;

<insert id="addStudent" parameterType="stu">insert into student(`name`,`number`)values (#{name,jdbcType=VARCHAR,javaType=String},#{number})</insert>

六 mappers映射器

mappers映射器就是配置引入SQL映射文件,也很簡單,這邊就給出官方示例,不再具體試驗,有四種方式,通常我們掌握一至兩種就足夠日常開發使用;

6.1 相對于類路徑方式

<mappers><mapper resource="org/mybatis/builder/AuthorMapper.xml"/><mapper resource="org/mybatis/builder/BlogMapper.xml"/><mapper resource="org/mybatis/builder/PostMapper.xml"/> </mappers>

6.2 資源絕對路徑方式

<mappers><mapper url="file:///var/mappers/AuthorMapper.xml"/><mapper url="file:///var/mappers/BlogMapper.xml"/><mapper url="file:///var/mappers/PostMapper.xml"/> </mappers>

6.3 接口實現類的完全限定類名方式

<mappers><mapper class="org.mybatis.builder.AuthorMapper"/><mapper class="org.mybatis.builder.BlogMapper"/><mapper class="org.mybatis.builder.PostMapper"/> </mappers>

6.4 接口實現類的包名方式

<mappers><package name="org.mybatis.builder"/> </mappers>

總結

以上是生活随笔為你收集整理的mybatis jdbctype数据类型_mybaits-mybatis配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。