欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis映射文件實(shí)例詳解

 更新時(shí)間:2017年02月09日 09:11:05   投稿:mrr  
這篇文章主要介紹了 Mybatis映射文件實(shí)例詳解,需要的朋友可以參考下

 一、輸入映射

parameterType

指定輸入?yún)?shù)的Java類型,可以使用別名或者類的全限定名。它可以接收簡(jiǎn)單類型、POJO、HashMap。

1、傳遞簡(jiǎn)單類型

根據(jù)用戶ID查詢用戶信息:

<select id="findUserById" parameterType="int" resultType="com.itheima.mybatis.po.User"> 
  SELECT * FROM USER WHERE id =#{id} 
</select> 

2、傳遞POJO對(duì)象

添加用戶:

<insert id="insertUser" parameterType="com.itheima.mybatis.po.User"> 
  <selectKey keyProperty="id" resultType="int" order="AFTER"> 
   SELECT LAST_INSERT_ID() 
  </selectKey> 
  INSERT INTO USER(username,birthday,sex,address) VALUES(#{username},#{birthday},#{sex},#{address}) 
</insert> 

3、傳遞POJO包裝對(duì)象

開發(fā)中通過(guò)pojo傳遞查詢條件 ,查詢條件是綜合的查詢條件,不僅包括用戶查詢條件還包括其它的查詢條件(比如將用戶購(gòu)買商品信息也作為查詢條件),
這時(shí)可以使用包裝對(duì)象傳遞輸入?yún)?shù)。

3.1需求

綜合查詢用戶信息,需要傳入查詢條件復(fù)雜,比如(用戶信息、訂單信息、商品信息)。

3.2 定義包裝對(duì)象

一般User.java類要和數(shù)據(jù)表表字段一致,最好不要在這里面添加其他字段,在mybatis的逆向工程時(shí),會(huì)根據(jù)表結(jié)構(gòu),生成po類,

如果在po類中擴(kuò)展字段,此時(shí)會(huì)被覆蓋掉。

所以針對(duì)要擴(kuò)展的po類,我們需要?jiǎng)?chuàng)建一個(gè)擴(kuò)展類,來(lái)繼承它。

public class UserExt extends User{ 
 //這里可以定義user的一些擴(kuò)展信息 
} 

定義POJO包裝類:

public class UserQueryVO { 
 //用戶信息 
 private UserExt userExt; 
 //商品ID集合 
 private List<Integer> idList; 
 //商品信息 
 public List<Integer> getIdList() { 
  return idList; 
 } 
 public void setIdList(List<Integer> idList) { 
  this.idList = idList; 
 } 
 public UserExt getUserExt() { 
  return userExt; 
 } 
 public void setUserExt(UserExt userExt) { 
  this.userExt = userExt; 
 } 
 //訂單信息 
} 

3.3編寫Mapper接口

//通過(guò)包裝類來(lái)進(jìn)行復(fù)雜的用戶信息綜合查詢 
public List<UserExt> findUserList(UserQueryVO userQueryVO); 

3.4編寫mapper映射文件

<!-- 通過(guò)包裝類來(lái)進(jìn)行復(fù)雜的用戶信息綜合查詢 --> 
<select id="findUserList" parameterType="userQueryVO" resultType="userExt"> 
  SELECT * FROM USER WHERE sex=#{userExt.sex} AND username LIKE '%${userExt.username}%' 
</select> 

注意:入?yún)⒌念愋妥優(yōu)閁serQueryVO、結(jié)果集的類型變?yōu)閁serExt,#{}里面的參數(shù)變?yōu)閁serQueryVO對(duì)象中的userExt屬性的sex和username子屬性。

3.5編寫測(cè)試代碼

@Test 
public void findUserListTest() { 
 // 創(chuàng)建SqlSession 
 SqlSession sqlSession = sqlSessionFactory.openSession(); 
 // 通過(guò)SqlSession,獲取mapper接口的動(dòng)態(tài)代理對(duì)象 
 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 
 //構(gòu)造userQueryVO對(duì)象 
 UserQueryVO userQueryVO = new UserQueryVO(); 
 // 構(gòu)造UserExt對(duì)象 
 UserExt userExt = new UserExt(); 
 userExt.setSex("1"); 
 userExt.setUsername("小明"); 
 userQueryVO.setUserExt(userExt); 
 // 調(diào)用mapper對(duì)象的方法 
 List<UserExt> list = userMapper.findUserList(userQueryVO); 
 System.out.println(list); 
 // 關(guān)閉SqlSession 
 sqlSession.close(); 
} 

4、傳遞HashMap

同傳遞POJO對(duì)象一樣,map的key相當(dāng)于pojo的屬性。

4.1映射文件

<!-- 傳遞hashmap綜合查詢用戶信息 --> 
 <select id="findUserByHashmap" parameterType="hashmap" resultType="user"> 
  select * from user where id=#{<span style="color:#ff0000;">id</span>} and username like '%${<span style="color:#ff0000;">username</span>}%' 
 </select> 

上邊紅色標(biāo)注的id和username是hashmap的key。

4.2測(cè)試代碼

Public void testFindUserByHashmap()throws Exception{ 
  //獲取session 
  SqlSession session = sqlSessionFactory.openSession(); 
  //獲限mapper接口實(shí)例 
  UserMapper userMapper = session.getMapper(UserMapper.class); 
  //構(gòu)造查詢條件Hashmap對(duì)象 
  HashMap<String, Object> map = new HashMap<String, Object>(); 
  map.put("id", 1); 
  map.put("username", "管理員"); 
   
  //傳遞Hashmap對(duì)象查詢用戶列表 
  List<User>list = userMapper.findUserByHashmap(map); 
  //關(guān)閉session 
  session.close(); 
 } 

異常測(cè)試:

傳遞的map中的key和sql中解析的key不一致。

測(cè)試結(jié)果沒(méi)有報(bào)錯(cuò),只是通過(guò)key獲取值為空。

二、輸出映射

1、resultType

(1)使用方法

使用resultType進(jìn)行結(jié)果映射時(shí),查詢的列名和映射的pojo屬性名完全一致,該列才能映射成功。

如果查詢的列名和映射的pojo屬性名全部不一致,那么映射的對(duì)象為空,不會(huì)創(chuàng)建pojo對(duì)象;

如果查詢的列名和映射的pojo屬性名有一個(gè)一致,那么映射的對(duì)象不為空,會(huì)創(chuàng)建pojo對(duì)象,但是只有映射正確的那一個(gè)屬性才有值。

(2)輸出簡(jiǎn)單類型

注意,對(duì)簡(jiǎn)單類型的結(jié)果映射也是有要求的,查詢的列必須是一列,才能映射為簡(jiǎn)單類型。

當(dāng)輸出結(jié)果只有一列時(shí),可以使用ResultType指定簡(jiǎn)單類型作為輸出結(jié)果類型。

2.1需求

綜合查詢用戶總數(shù),需要傳入查詢條件復(fù)雜,比如(用戶信息、訂單信息、商品信息)。

2.2Mapper映射文件

<!-- 綜合查詢用戶信息總數(shù),需要傳入查詢條件復(fù)雜,比如(用戶信息、訂單信息、商品信息) --> 
<select id="findUsersCount" parameterType="UserQueryVO" 
  resultType="int"> 
  SELECT count(1) FROM USER WHERE sex = #{userExt.sex} AND username LIKE '%${userExt.username}%' 
</select> 

2.3Mapper接口

//綜合查詢用戶信息總數(shù)。學(xué)習(xí):resultType輸出簡(jiǎn)單類型 
public int findUsersCount(UserQueryVO vo); 

2.4測(cè)試代碼

@Test 
public void testFindUsersCount() { 
 // 創(chuàng)建SqlSession 
 SqlSession sqlSession = sqlSessionFactory.openSession(); 
 // 通過(guò)SqlSession,獲取mapper接口的動(dòng)態(tài)代理對(duì)象 
 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 
 //構(gòu)造userQueryVO對(duì)象 
 UserQueryVO userQueryVO = new UserQueryVO(); 
 // 構(gòu)造UserExt對(duì)象 
 UserExt userExt = new UserExt(); 
 userExt.setSex("1"); 
 userExt.setUsername("小明"); 
 userQueryVO.setUserExt(userExt); 
 int count = mapper.findUsersCount(userQueryVO); 
 System.out.println(count); // 關(guān)閉SqlSession 
 sqlSession.close(); 
} 

(3)輸出POJO單個(gè)對(duì)象和列表

注意:輸出單個(gè)pojo對(duì)象和pojo列表(盛放pojo對(duì)象)時(shí),mapper映射文件中的resultType的類型是一樣的,mapper接口的方法返回值不同。

3.1Mapper映射文件

<select id="findUsersByName" parameterType="java.lang.String" resultType="cn.itcast.mybatis.po.User"> 
  SELECT * FROM USER WHERE username LIKE '%${value}%' 
</select> 

3.2Mapper接口

1、輸出單個(gè)pojo對(duì)象

//根據(jù)用戶名稱來(lái)模糊查詢用戶信息 
 public User findUsersByName(String username); 

2、輸出pojo列表

//根據(jù)用戶名稱來(lái)模糊查詢用戶信息列表 
 public List<User> findUsersByName(String username); 

總結(jié):同樣的mapper映射文件,返回單個(gè)對(duì)象和對(duì)象列表時(shí),mapper接口在生成動(dòng)態(tài)代理的時(shí)候,

會(huì)根據(jù)返回值的類型,決定調(diào)用selectOne方法還是selectList方法。

2、resultMap

resultMap可以進(jìn)行高級(jí)結(jié)果映射(一對(duì)一、一對(duì)多映射)。

(1)使用方法

如果查詢出來(lái)的列名和屬性名不一致,通過(guò)定義一個(gè)resultMap將列名和pojo屬性名之間作一個(gè)映射關(guān)系。

1、  定義resultMap

2、  使用resultMap作為statement的輸出映射類型。

(2)需求

把下面SQL的輸出結(jié)果集進(jìn)行映射

SELECT id id_,username username_,sex sex_FROM USER WHERE id = 1

(3)Mapper映射文件

定義resultMap:

<!-- 定義resultMap --> 
<!-- 
 [id]:定義resultMap的唯一標(biāo)識(shí) 
 [type]:定義該resultMap最終映射的pojo對(duì)象 
 [id標(biāo)簽]:映射結(jié)果集的唯一標(biāo)識(shí)列,如果是多個(gè)字段聯(lián)合唯一,則定義多個(gè)id標(biāo)簽 
 [result標(biāo)簽]:映射結(jié)果集的普通列 
 [column]:SQL查詢的列名,如果列有別名,則該處填寫別名 
 [property]:pojo對(duì)象的屬性名 
--> 
<resultMap type="user" id="userResultMap"> 
 <id column="id_" property="id"/> 
 <result column="username_" property="username"/> 
 <result column="sex_" property="sex"/> 
</resultMap> 

定義statement:

<!-- 根據(jù)ID查詢用戶信息(學(xué)習(xí)resultMap) --> 
<select id="findUserByIdResultMap" parameterType="int" resultMap="userResultMap"> 
  SELECT id id_,username username_,sex sex_ FROM USER WHERE id = #{id} 
</select> 

(4)Mapper接口定義  

 //根據(jù)ID查詢用戶信息(學(xué)習(xí)resultMap) 
 public User findUserByIdResultMap(int id);<strong> 
</strong> 

定義Statement使用resultMap映射結(jié)果集時(shí),Mapper接口定義方法的返回值類型為mapper映射文件中resultMap的type類型。

(5)測(cè)試代碼

@Test 
public void findUserByIdResultMapTest() { 
 // 創(chuàng)建SqlSession 
 SqlSession sqlSession = sqlSessionFactory.openSession(); 
 // 通過(guò)SqlSession,獲取mapper接口的動(dòng)態(tài)代理對(duì)象 
 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 
 // 調(diào)用mapper對(duì)象的方法 
 User user = userMapper.findUserByIdResultMap(1); 
 System.out.println(user); 
 // 關(guān)閉SqlSession 
 sqlSession.close(); 
} 

三、動(dòng)態(tài)SQL

1、If和where

Ø  If標(biāo)簽:作為判斷入?yún)?lái)使用的,如果符合條件,則把if標(biāo)簽體內(nèi)的SQL拼接上。
注意:用if進(jìn)行判斷是否為空時(shí),不僅要判斷null,也要判斷空字符串‘';
Ø  Where標(biāo)簽:會(huì)去掉條件中的第一個(gè)and符號(hào)。

(1)需求

用戶信息綜合查詢列表和用戶信息綜合查詢總數(shù)這兩個(gè)statement的定義使用動(dòng)態(tài)SQL。

(2)映射文件

<!-- 綜合查詢用戶信息,需要傳入查詢條件復(fù)雜,比如(用戶信息、訂單信息、商品信息) --> 
<select id="findUsersByQueryVO" parameterType="cn.itcast.mybatis.po.QueryUserVO" 
  resultType="User"> 
  SELECT * FROM USER 
 <where> 
  <if test="userExt != null"> 
   <if test="userExt.sex != null and userExt.sex != ''"> 
    AND sex = #{userExt.sex} 
   </if> 
   <if test="userExt.username != null and userExt.username != ''"> 
    AND username LIKE '%${userExt.username}%' 
   </if> 
  </if> 
 </where> 
</select> 
<!-- 綜合查詢用戶信息總數(shù),需要傳入查詢條件復(fù)雜,比如(用戶信息、訂單信息、商品信息) --> 
<select id="findUsersCount" parameterType="QueryUserVO" 
  resultType="int"> 
 SELECT count(1) FROM USER 
 <where> 
  <if test="userExt != null"> 
   <if test="userExt.sex != null and userExt.sex != ''"> 
    AND sex = #{userExt.sex} 
   </if> 
   <if test="userExt.username != null and userExt.username != ''"> 
    AND username LIKE '%${userExt.username}%' 
   </if> 
  </if> 
 </where> 
</select> 

(3)Mapper接口

//通過(guò)包裝類來(lái)進(jìn)行復(fù)雜的用戶信息綜合查詢 
public List<UserExt> findUserList(UserQueryVO userQueryVO); 
//綜合查詢用戶總數(shù) 
public int findUsersCount(UserQueryVO userQueryVO); 

(4)測(cè)試代碼

不傳用戶名:

@Test 
 public void testFindUserList() throws Exception{ 
  // 創(chuàng)建UserMapper對(duì)象 
  SqlSession sqlSession = sqlSessionFactory.openSession(); 
  // 由mybatis通過(guò)sqlsession來(lái)創(chuàng)建代理對(duì)象 
  UserMapper mapper = sqlSession.getMapper(UserMapper.class); 
  QueryUserVO vo = new QueryUserVO(); 
  User user = new User(); 
  //此處使用動(dòng)態(tài)SQL,不傳username參數(shù) 
  user.setSex("1"); 
//  user.setUsername("小明"); 
  vo.setUser(user); 
  List<User> list = mapper.findUserList(vo); 
  System.out.println(user); 
  sqlSession.close(); 
 } 

輸出的SQL如下(也不包含用戶名):

通過(guò)測(cè)試可以得知,打印出的SQL語(yǔ)句確實(shí)會(huì)隨著條件的滿足情況而不一樣。

2、SQL片段

Mybatis提供了SQL片段的功能,可以提高SQL的可重用性。

2.1定義SQL片段

使用sql標(biāo)簽來(lái)定義一個(gè)SQL片段:

<!-- 定義SQL片段 --> 
<!-- 
 [sql標(biāo)簽]:定義一個(gè)SQL片段 
 [id]:SQL片段的唯一標(biāo)識(shí) 
 建議: 
  1、SQL片段中的內(nèi)容最好是以單表來(lái)定義 
  2、如果是查詢字段,則不要寫上SELECT 
  3、如果是條件語(yǔ)句,則不要寫上WHERE 
 --> 
<sql id="select_user_where"> 
 <if test="userExt != null"> 
  <if test="userExt.sex != null and userExt.sex != ''"> 
   AND sex = #{userExt.sex} 
  </if> 
  <if test="userExt.username != null and userExt.username != ''"> 
   AND username LIKE '%${userExt.username}%' 
  </if> 
 </if> 
</sql> 

2.2引用SQL片段

使用<includerefid='' /> 來(lái)引用SQL片段:

<!-- 根據(jù)用戶id來(lái)查詢用戶信息(使用SQL片段) --> 
<!-- 
 [include標(biāo)簽]:引用已經(jīng)定義好的SQL片段 
 [refid]:引用的SQL片段id 
--> 
<select id="findUserList" parameterType="userQueryVO" resultType="userExt"> 
 SELECT * FROM USER 
<where> 
  <include refid="select_user_where"/> 
 </where> 
</select> 
<!-- 綜合查詢用戶信息總數(shù),需要傳入查詢條件復(fù)雜,比如(用戶信息、訂單信息、商品信息) --> 
<select id="findUsersCount" parameterType="QueryUserVO" 
  resultType="int"> 
 SELECT count(1) FROM USER 
 <where> 
  <include refid="select_user_where"/> 
 </where> 
</select> 

3、foreach

向sql傳遞數(shù)組或List時(shí),mybatis使用foreach解析數(shù)組里的參數(shù)并拼接到SQL中。

(1)傳遞pojo對(duì)象中的list集合

1.1需求

在用戶查詢列表和查詢總數(shù)的statement中增加多個(gè)id輸入查詢。

1.2SQL

SELECT * FROM user WHERE id IN (1,10,16)

1.3定義pojo中的list屬性

package com.itheima.mybatis.po; 
import java.util.List; 
/** 
 * <p>Title: UserQueryVO</p> 
 * <p>Description: TODO(這里用一句話描述這個(gè)類的作用) <p> 
 */ 
public class UserQueryVO { 
 //用戶信息 
 private UserExt userExt; 
 //商品ID集合 
 private List<Integer> idList; 
 //商品信息 
 public List<Integer> getIdList() { 
  return idList; 
 } 
 public void setIdList(List<Integer> idList) { 
  this.idList = idList; 
 } 
 public UserExt getUserExt() { 
  return UserExt; 
 } 
 public void setUserExt(UserExt userExt) { 
  this.UserExt = UserExt; 
 } 
 //訂單信息 
} 

1.4映射文件

<!-- [foreach標(biāo)簽]:表示一個(gè)foreach循環(huán) --> 
<!-- [collection]:集合參數(shù)的名稱,如果是直接傳入集合參數(shù),則該處的參數(shù)名稱只能填寫[list]。 --> 
<!-- [item]:每次遍歷出來(lái)的對(duì)象 --> 
<!-- [open]:開始遍歷時(shí)拼接的串 --> 
<!-- [close]:結(jié)束遍歷時(shí)拼接的串 --> 
<!-- [separator]:遍歷出的每個(gè)對(duì)象之間需要拼接的字符 --> 
<if test="idList != null and idList.size > 0"> 
<foreach collection="idList" item="id" open="AND id IN (" close=")" separator=","> 
  #{id} 
</foreach> 
</if> 

1.5Mapper接口

//根據(jù)用戶ID的集合查詢用戶列表(學(xué)習(xí)foreach標(biāo)簽之通過(guò)POJO對(duì)象傳ID集合) 
public List<UserExt> findUserList(UserQueryVO vo); 

1.6測(cè)試代碼

@Test 
public void testFindUserList() { 
  // 創(chuàng)建SqlSession 
  SqlSession sqlSession = sqlSessionFactory.openSession(); 
  // 通過(guò)SqlSession,獲取mapper接口的動(dòng)態(tài)代理對(duì)象 
  UserMapper mapper = sqlSession.getMapper(UserMapper.class); 
  // 構(gòu)造QueryUserVO對(duì)象 
  QueryUserVO vo = new QueryUserVO(); 
  // UserExt ext = new UserExt(); 
  // ext.setUsername("小明"); 
  // ext.setSex("1"); 
  // vo.setUserExt(ext); 
  // 創(chuàng)建用戶ID集合,然后設(shè)置到QueryUserVO對(duì)象中 
  List<Integer> idList = new ArrayList<Integer>(); 
  idList.add(1); 
  idList.add(10); 
  idList.add(16); 
  vo.setIdList(idList); 
  // 調(diào)用mapper代理對(duì)象的方法 
  List<UserExt> list = mapper.findUserList(vo); 
  System.out.println(list); 
  // 關(guān)閉SqlSession 
  sqlSession.close(); 
} 

(2)直接傳遞List集合

2.1需求

根據(jù)用戶ID的集合查詢用戶列表

2.2SQL

SELECT * FROM user WHERE id IN (1,10,16)

2.3映射文件

<!-- 根據(jù)用戶ID的集合查詢用戶列表(學(xué)習(xí)foreach標(biāo)簽之直接傳ID集合) --> 
<!--  
  [foreach標(biāo)簽]:表示一個(gè)foreach循環(huán) 
  [collection]:集合參數(shù)的名稱,如果是直接傳入集合參數(shù),則該處的參數(shù)名稱只能填寫[list]。 
  [item]:定義遍歷集合之后的參數(shù)名稱 
  [open]:開始遍歷之前需要拼接的SQL串 
  [close]:結(jié)束遍歷之后需要拼接的SQL串 
  [separator]:遍歷出的每個(gè)對(duì)象之間需要拼接的字符 
 --> 
<select id="findUsersByIdList" parameterType="java.util.List" resultType="user"> 
  SELECT * FROM USER 
  <where> 
    <if test="list != null and list.size > 0"> 
      <foreach collection="list" item="id" open="AND id IN (" close=")" separator=","> 
        #{id} 
      </foreach> 
    </if> 
  </where> 
</select> 

2.4Mapper接口

//根據(jù)用戶ID的集合查詢用戶列表(學(xué)習(xí)foreach標(biāo)簽之直接傳ID集合) 
public List<User> findUsersByIdList (List<Integer> idList); 

2.5測(cè)試代碼

@Test 
public void findUsersByIdListTest() { 
  // 創(chuàng)建SqlSession 
  SqlSession sqlSession = sqlSessionFactory.openSession(); 
  // 通過(guò)SqlSession,獲取mapper接口的動(dòng)態(tài)代理對(duì)象 
  UserMapper userMapper = sqlSession.getMapper(UserMapper.class); 
  // 構(gòu)造List<Integer>集合 
  List<Integer> idList = new ArrayList<Integer>(); 
  idList.add(1); 
  idList.add(10); 
    idList.add(16); 
  // 調(diào)用mapper對(duì)象的方法 
  List<User> list = userMapper.findUsersByIdList (idList); 
  System.out.println(list); 
  // 關(guān)閉SqlSession 
  sqlSession.close(); 
} 

以上所述是小編給大家介紹的Mybatis映射文件實(shí)例詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • java實(shí)現(xiàn)文件上傳下載

    java實(shí)現(xiàn)文件上傳下載

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)文件上傳下載功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • IDEA下從零開始搭建SpringBoot工程的方法步驟

    IDEA下從零開始搭建SpringBoot工程的方法步驟

    這篇文章主要介紹了IDEA下從零開始搭建SpringBoot工程的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • SpringCloud解決feign調(diào)用token丟失問(wèn)題解決辦法

    SpringCloud解決feign調(diào)用token丟失問(wèn)題解決辦法

    在feign調(diào)用中可能會(huì)遇到如下問(wèn)題:同步調(diào)用中,token丟失,這種可以通過(guò)創(chuàng)建一個(gè)攔截器,將token做透?jìng)鱽?lái)解決,異步調(diào)用中,token丟失,這種就無(wú)法直接透?jìng)髁?因?yàn)樽泳€程并沒(méi)有token,這種需要先將token從父線程傳遞到子線程,再進(jìn)行透?jìng)?/div> 2024-05-05
  • 詳解Javaweb狀態(tài)管理的Session和Cookie

    詳解Javaweb狀態(tài)管理的Session和Cookie

    這篇文章主要介紹了Javaweb狀態(tài)管理的Session和Cookie,將瀏覽器與web服務(wù)器之間多次交互當(dāng)做一個(gè)整體來(lái)處理,并且多次交互所涉及的數(shù)據(jù)(狀態(tài))保存下來(lái),需要的朋友可以參考下
    2023-05-05
  • java String.split 無(wú)法使用小數(shù)點(diǎn)分割的問(wèn)題

    java String.split 無(wú)法使用小數(shù)點(diǎn)分割的問(wèn)題

    這篇文章主要介紹了java String.split 無(wú)法使用小數(shù)點(diǎn)分割的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java中實(shí)現(xiàn)Comparable和Comparator對(duì)象比較

    Java中實(shí)現(xiàn)Comparable和Comparator對(duì)象比較

    這篇文章主要針對(duì)Java中Comparable和Comparator對(duì)象進(jìn)行比較,感興趣的小伙伴們可以參考一下
    2016-02-02
  • java在pdf中生成表格的方法

    java在pdf中生成表格的方法

    這篇文章主要介紹了java在pdf中生成表格的方法,需要的朋友可以參考下
    2015-11-11
  • Java多線程學(xué)習(xí)筆記

    Java多線程學(xué)習(xí)筆記

    常用的實(shí)現(xiàn)多線程的兩種方式:Thread和Runnable。之所以說(shuō)是“常用”,是因?yàn)樵贘ava 5后可以通過(guò)java.util.concurrent包中的線程池來(lái)實(shí)現(xiàn)多線程
    2021-09-09
  • JAVA中的字符串常量池使用操作代碼

    JAVA中的字符串常量池使用操作代碼

    Java中的字符串常量池是Java堆中的一塊特殊存儲(chǔ)區(qū)域,用于存儲(chǔ)字符串。它的實(shí)現(xiàn)是為了提高字符串操作的性能并節(jié)省內(nèi)存,這篇文章主要介紹了JAVA中的字符串常量池,需要的朋友可以參考下
    2022-12-12
  • java中Statement 與 PreparedStatement接口之間的關(guān)系和區(qū)別

    java中Statement 與 PreparedStatement接口之間的關(guān)系和區(qū)別

    這篇文章主要介紹了java中Statement 與 PreparedStatement接口之間的關(guān)系和區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論