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

Mybatis和其他主流框架的整合使用過程詳解

 更新時間:2023年11月17日 09:27:03   作者:琮墨  
MyBatis最初是Apache的一個開源項目iBatis,?2010年6月這個項目由Apache?Software?Foundation遷移到了Google?Code,這篇文章主要介紹了Mybatis和其他主流框架的整合使用,需要的朋友可以參考下

Mybatis簡介

MyBatis歷史

  • MyBatis最初是Apache的一個開源項目iBatis, 2010年6月這個項目由Apache Software Foundation遷移到了Google Code。隨著開發(fā)團隊轉(zhuǎn)投Google Code旗下,iBatis3.x正式更名為MyBatis。代碼于2013年11月遷移到Github
  • iBatis一詞來源于“internet”和“abatis”的組合,是一個基于Java的持久層框架。iBatis提供的持久層框架包括SQL Maps和Data Access Objects(DAO)

MyBatis特性

  • MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的持久層框架
  • MyBatis 避免了幾乎所有的 JDBC 代碼和手動設(shè)置參數(shù)以及獲取結(jié)果集
  • MyBatis可以使用簡單的XML或注解用于配置和原始映射,將接口和Java的POJO(Plain Old Java Objects,普通的Java對象)映射成數(shù)據(jù)庫中的記錄
  • MyBatis 是一個 半自動的ORM(Object Relation Mapping)框架

1、在Maven項目中使用Mybatis

  先創(chuàng)建一個普通的Maven項目,然后在pom.xml文件中引入Mybatis的依賴,因為要連接數(shù)據(jù)庫,所以還需要引入數(shù)據(jù)庫連接的依賴

 <dependencies>
        <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>3.5.10</version>
          </dependency>
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
             <version>8.0.33</version>
         </dependency>
     </dependencies>

  要使用Mybatis需要配置Mybatis的核心配置,在resources資源文件夾下創(chuàng)建一個mybatis配置文件(名字隨意),并寫入配置,配置參考Mybatis官方文檔mybatis – MyBatis 3 | 入門

在數(shù)據(jù)源<dataSource>的配置中,配置好driver,url,username,password

 <?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE configuration
         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
          "https://mybatis.org/dtd/mybatis-3-config.dtd">
  <configuration>
      <environments default="development">
          <environment id="development">
              <transactionManager type="JDBC"/>
              <dataSource type="POOLED">
                 <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                 <property name="url" value="jdbc:mysql://localhost:3307/mybatis"/>
                 <property name="username" value="root"/>
                 <property name="password" value="root"/>
             </dataSource>
         </environment>
     </environments>
     <!--<mappers>
         <mapper resource="org/mybatis/example/BlogMapper.xml"/>
     </mappers>-->
 </configuration>

  習(xí)慣上命名為mybatis-config.xml,這個文件名僅僅只是建議,并非強制要求。將來整合Spring之后,這個配置文件可以省略,所以大家操作時可以直接復(fù)制、粘貼。 核心配置文件主要用于配置連接數(shù)據(jù)庫的環(huán)境以及MyBatis的全局配置信息 核心配置文件存放的位置是src/main/resources目錄下

  現(xiàn)在需要一個數(shù)據(jù)庫和表和一些數(shù)據(jù)用做連接測試

 CREATE DATABASE IF NOT EXISTS `mybatis` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  CREATE TABLE USER(
       `id` INT UNSIGNED PRIMARY KEY AUTO_INCREMENT COMMENT 'ID',
       `name` VARCHAR(100) COMMENT '姓名',
      `age` TINYINT UNSIGNED COMMENT '年齡',
       `gender` TINYINT UNSIGNED COMMENT '性別, 1:男, 2:女',
       `phone` VARCHAR(11) COMMENT '手機號'
  ) COMMENT '用戶表';
 INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,'白眉鷹王',55,'1','18800000000');
 INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,'金毛獅王',45,'1','18800000001');
 INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,'青翼蝠王',38,'1','18800000002');
 INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,'紫衫龍王',42,'2','18800000003');
 INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,'光明左使',37,'1','18800000004');
 INSERT INTO USER(id, NAME, age, gender, phone) VALUES (NULL,'光明右使',48,'1','18800000005');

  構(gòu)建整體項目結(jié)構(gòu)controller、service、mapper三層架構(gòu),創(chuàng)建一個實體類對應(yīng)數(shù)據(jù)庫的表結(jié)構(gòu),創(chuàng)建MyBatis的映射文件xxxMapper.xml

映射文件的命名規(guī)則

  • 表所對應(yīng)的實體類的類名+Mapper.xml
  • 例如:表t_user,映射的實體類為User,所對應(yīng)的映射文件為UserMapper.xml
  • 因此一個映射文件對應(yīng)一個實體類,對應(yīng)一張表的操作
  • MyBatis映射文件用于編寫SQL,訪問以及操作表中的數(shù)據(jù)
  • MyBatis映射文件存放的位置是src/main/resources/mappers目錄下

在resources文件目錄下創(chuàng)建mapper的時候需要和main文件目錄下的mapper同包名,在創(chuàng)建directory的時候,目錄結(jié)構(gòu)不能使用點,而是用/代替

User實體類中的屬性需要和表中的字段名相對應(yīng),這里也可以用Lombok注解

mapper接口的全類名和映射文件的命名空間(namespace)保持一致、mapper接口中方法的方法名和映射文件中編寫SQL的標簽的id屬性保持一致

然后在mapper中寫我們需要的語句,查詢語句用<select>、增加語句用<insert>、刪除語句用<delete>、修改語句用<update>標簽,返回類型resultType要和實體類中的實體類名稱對應(yīng)

 <?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE mapper
          PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
          "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
  <mapper namespace="mapper.UserMapper">
      <select id="selectAll" resultType="pojo.User">
          SELECT id, name, age, gender, phone FROM user
     </select>
 </mapper>

  寫好了之后回到mybatis-config.xml中配置一下mapper映射

  在UserMapper中將UserMapper.xml中配置好的方法聲明一下,方法名要和上面的id對應(yīng)上

  在service層寫好業(yè)務(wù)邏輯代碼,在接口中聲明方法,在實現(xiàn)類中實現(xiàn)方法

 public class UserServiceImpl implements UserService {
      @Override
      public List<User> selectAll() throws IOException {
          //讀取MyBatis的核心配置文件
          InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
          //獲取SqlSessionFactoryBuilder對象
          SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
          //通過核心配置文件所對應(yīng)的字節(jié)輸入流創(chuàng)建工廠類SqlSessionFactory,生產(chǎn)SqlSession對象
         SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
         //獲取sqlSession,此時通過SqlSession對象所操作的sql都必須手動提交或回滾事務(wù)
         SqlSession sqlSession = sqlSessionFactory.openSession();
         //通過代理模式創(chuàng)建UserMapper接口的代理實現(xiàn)類對象
         UserMapper mapper = sqlSession.getMapper(UserMapper.class);
         //調(diào)用UserMapper接口中的方法,就可以根據(jù)UserMapper的全類名匹配元素文件,通過調(diào)用的方法名匹配映射文件中的SQL標簽,并執(zhí)行標簽中的SQL語句
         List<User> users = mapper.selectAll();
         return users;
     }
 }

  在controller層中寫好處理結(jié)果代碼

public class UserController {
     private UserService userService = new UserServiceImpl();
     public void selectAll() throws IOException {
         List<User> users = userService.selectAll();
         users.forEach(System.out::println);
     }
 }

  創(chuàng)建一個Test類去測試mybatis數(shù)據(jù)庫連接,因為沒有引入單元測試依賴,所以這里用主函數(shù)去測試

  發(fā)現(xiàn)結(jié)果成功輸出打印 

  如果SQL語句比較簡單,可以使用mybatis中的注解,查詢語句用@Select、增加語句用@Insert、刪除語句用@Delete、修改語句用@Update注解

在里面寫上sql語句,再運行發(fā)現(xiàn),也可以查詢成功。

  當(dāng)然,復(fù)雜一點的sql語句和動態(tài)SQL建議還是使用Mapper配置,只是簡單的sql語句寫在注解里面可以簡化,復(fù)雜的sql只會增加代碼的復(fù)雜度

總結(jié)

  在Maven項目中,使用mybatis需要先導(dǎo)入mybatis依賴和連接數(shù)據(jù)庫的依賴,然后創(chuàng)建mybatis配置文件,在配置文件中配置數(shù)據(jù)源細信息,隨后創(chuàng)建MyBatis的映射文件Mapper,在mapper文件中寫好對應(yīng)的語句,然后在業(yè)務(wù)層進行SqlSession連接,調(diào)用mapper中的方法,再在controller層處理返回方法。

2、用Spring框架整合Mybatis

  同樣的先創(chuàng)建一個Maven項目,然后在pom.xml文件中引入Spring的依賴,Mybatis的依賴,數(shù)據(jù)庫連接依賴,druid連接池依賴,spring-mybatis依賴,spring-jdbc依賴。

  <dependencies>
          <dependency>
              <groupId>org.mybatis</groupId>
              <artifactId>mybatis</artifactId>
              <version>3.5.10</version>
          </dependency>
          <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
             <version>8.0.33</version>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
             <version>5.3.30</version>
         </dependency>
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>druid</artifactId>
             <version>1.2.20</version>
         </dependency>
         <dependency>
             <groupId>org.mybatis</groupId>
             <artifactId>mybatis-spring</artifactId>
             <version>1.3.2</version>
         </dependency>
         <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-jdbc</artifactId>
             <version>5.3.2</version>
         </dependency>
     </dependencies>

  構(gòu)建整體項目結(jié)構(gòu)

2.1、基于XML整合Mybatis

  • 導(dǎo)入Mybatis整合Spring的相關(guān)坐標
  • 編寫Mapper和Mapper.xml
  • 配置SqlSessionFactoryBean和MapperScannerConfigurer
  • 編寫測試代碼

  和上面步驟相同,編寫Mapper和Mapper.xml,一定要放在相同路徑下

  在UserMapper.xml中寫我們需要的語句,并在UserMapper接口中寫對應(yīng)id的方法聲明;

  <?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE mapper
          PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
  <mapper namespace="mapper.UserMapper">
      <select id="selectAll" resultType="pojo.User">
          SELECT id, name, age, gender, phone FROM user
     </select>
 </mapper>
public interface UserMapper {
    List<User> selectAll();
}

  同樣的,簡單的SQL語句也可以用@Select注解編寫,不需要UserMapper.xml配置  

  在Spring配置文件中配置SqlSessionFactoryBean

  <?xml version="1.0" encoding="UTF-8"?>
  <beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     <!--配置SqlSessionFactoryBean,作用將SqlSessionFactory存儲到spring容器-->
      <bean class="org.mybatis.spring.SqlSessionFactoryBean">
          <property name="dataSource" ref="dataSource"></property>
      </bean>
     <!--配置數(shù)據(jù)源信息-->
     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
         <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
         <property name="url" value="jdbc:mysql://localhost:3307/mybatis"></property>
         <property name="username" value="root"></property>
         <property name="password" value="root"></property>
     </bean>
 </beans>

  對應(yīng)的是之前配置文件中的

  <dataSource type="POOLED">
                 <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                 <property name="url" value="jdbc:mysql://localhost:3307/mybatis"/>
                 <property name="username" value="root"/>
                 <property name="password" value="root"/>
 </dataSource>

  在Spring配置文件中配置MapperScannerConfigurer

 <!--MapperScannerConfigurer,作用掃描指定的包,產(chǎn)生Mapper對象存儲到Spring容器-->
     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
         <property name="basePackage" value="mapper"></property>
     </bean>

  對應(yīng)的是

 <mappers>
         <package name="com.tedu.mapper"/>
 </mappers>

  在Spring配置文件中配置好之后,在使用的時候就不用手動創(chuàng)建了,直接注入即可。

  在UserServiceImpl屬性中添加UserMapper,并為其添加setter方法用于注入。

  public class UserServiceImpl implements UserService {
      private UserMapper userMapper;
      public void setUserMapper(UserMapper userMapper) {
          this.userMapper = userMapper;
      }
      @Override
      public List<User> selectAll() {
         return userMapper.selectAll();
     }
 }

  同樣,在UserController屬性中添加UserService,并為其添加setter方法用于注入。在selectAll方法中處理返回的結(jié)果。

  public class UserController {
      private UserService userService;
      public void setUserService(UserService userService) {
          this.userService = userService;
      }
      public void selectAll(){
          List<User> users = userService.selectAll();
         users.forEach(System.out::println);
     }
 }

  在Spring配置文件中配置上述UserService和UserController用于注入

 <bean id="userServiceImpl" class="service.impl.UserServiceImpl">
         <property name="userMapper" ref="userMapper"></property>
     </bean>
     <bean id="userContorller" class="controller.UserController">
         <property name="userService" ref="userServiceImpl"></property>
     </bean>

  最后創(chuàng)建一個測試類進行數(shù)據(jù)庫連接測試

 public class TestSelectAll {
     public static void main(String[] args) {
         ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
         UserController userController = context.getBean(UserController.class);
         userController.selectAll();
     }
     }

  可以在控制臺看到打印的結(jié)果

總結(jié)

  基于XML方式整合Mybatis首先需要創(chuàng)建Spring的配置文件,在XML配置文件中去配置bean,將bean對象交由Spring容器管理,其余的mapper和普通方法一樣。需要配置數(shù)據(jù)源DataSource,配置SqlSessionFactoryBean、配置MapperScannerConfigurer,再配置UserMapper、UserService和UserController。在測試類中用ClassPathXmlApplicationContext和getBean獲取到UserContorller對象再調(diào)用其方法即可。這種方式不用編寫mybatis-config.xml配置文件,在Spring配置文件中全部配置了,雖然簡化了部分操作,但是還是較為繁瑣,下面講一種用注解方式整合mybatis。

2.2、基于注解整合Mybatis

  導(dǎo)入和上述基于XML整合mybatis方法相同的依賴

  再構(gòu)建同樣的項目結(jié)構(gòu)

  還需要在resources資源目錄下面添加一個配置文件用于存放數(shù)據(jù)源配置信息

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.username=root
jdbc.password=root
jdbc.url=jdbc:mysql://localhost:3307/mybatis

  除了像上面方法構(gòu)建的項目結(jié)構(gòu)之外,還需要一個配置類進行配置

 @Configuration
  @ComponentScan("cn.test")
 @PropertySource("classpath:jdbc.properties")
  @MapperScan("cn.test.mapper")
  public class MybatisConfig {
      @Bean
      public DataSource dataSource(
              @Value("${jdbc.driver}") String driver,
             @Value("${jdbc.username}") String username,
             @Value("${jdbc.password}") String passwrod,
             @Value("${jdbc.url}") String url
     ){
         DruidDataSource dataSource = new DruidDataSource();
         dataSource.setDriverClassName(driver);
         dataSource.setUsername(username);
         dataSource.setPassword(passwrod);
         dataSource.setUrl(url);
         return dataSource;
     }
     @Bean
     public SqlSessionFactoryBean sqlSessionFactoryBean(@Autowired DataSource dataSource){
         SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
         sqlSessionFactoryBean.setDataSource(dataSource);
         return sqlSessionFactoryBean;
     }
 }

  @Configuration注解是聲明該類是一個配置類

  @ComponentScan注解是包掃描,掃描該包和該包的子孫包中的類帶有@Component注解的類,交由Spring容器管理

  @PropertySource注解是設(shè)置資源文件目錄,classpath后是properties文件的路徑,加載后可以用${}占位符獲取properties文件中的屬性

  @MapperScan注解是設(shè)置Mapper文件掃描,相當(dāng)于mybatis配置文件中<mapper>標簽

  配置文件中用@Bean注解配置非自定義Bean的配置,在dataSource方法中傳入連接數(shù)據(jù)庫四要素并且用@Value注解去注入值,其中用${}占位符獲取properties文件中的屬性,最后方法返回dataSource,同樣的用sqlSessionFactoryBean方法sqlSessionFactoryBean,在參數(shù)中用@AutoWried注入dataSource參數(shù),其中@AuroWired注解可省略,最后方法返回sqlSessionFactoryBean。

  這樣,在Config配置文件中就完成了SqlSessionFactoryBean和MapperScannerConfigurer的配置

  接下來就是編寫UserMapper和UserMapper.xml文件,這里就不在用XML配置文件進行演示,如需要,上面的其他方法都有演示,這里就用注解的方式編寫SQL語句。

  隨后,編寫三層架構(gòu)的代碼,在UserController中,用@AuroWired注解自動注入UserService,并且在類上加上@Controller注解,表示該類是Contriller層類并交由Spring容器管理

  @Controller
  public class UserController {
      @Autowired
      private UserService userService;
      public void findAll() {
          List<User> all = userService.findAll();
          all.forEach(System.out::println);
      }
 }

  在UserServiceImpl中用,@AuroWired注解自動注入UserMapper,并且在類上加上@Service注解,表示該類是Service層類并交由Spring容器管理

  @Service
  public class UserServiceImpl implements UserService {
     @Autowired
      private UserMapper userMapper;
      @Override
      public List<User> findAll() {
          return userMapper.findAll();
      }
 }

  在UserMapper中,編寫SQL方法,用@Select注解編寫SQL語句,因為在配置文件中加了@MapperScan("cn.test.mapper")注解,所以在此類上不需要加任何Component注解

 public interface UserMapper {
     @Select("SELECT id, name, age, gender, phone FROM user")
     List<User> findAll();
 }

  最后,編寫測試方法進行數(shù)據(jù)庫連接測試

 public class TestAnnoMyBatis {
     public static void main(String[] args) {
         ApplicationContext context = new AnnotationConfigApplicationContext(MybatisConfig.class);
         UserController userController = context.getBean(UserController.class);
         userController.findAll();
     }
 }

  在測試方法中用AnnotationConfigApplicationContext方法加載MybatisConfig配置文件,同樣在控制臺中可以看到成功輸出結(jié)果

總結(jié)

  基于注解整合Mybatis方法中,我們不需要配置任何XML文件,其他操作基本相同,只需要新增一個配置文件,在配置文件中用一些注解和方法去完成配置。同時,在管理Bean時,也是用注解去自動裝配,交由Spring容器去管理。大大簡化了配置。

3、SpringBoot整合Mybatis

  用SpringBoot框架整合Mybatis相對就較為簡單了

  首先創(chuàng)建于一個SpringBoot項目

  在勾選依賴的時候,需要勾選MyBatisFarmework依賴和MySql依賴進行數(shù)據(jù)的連接和Mybatis的使用

  創(chuàng)建完成之后在application.properties配置文件中配置數(shù)據(jù)源

spring.datasource.url=jdbc:mysql://localhost:3307/mybatis?serverTimezone=Asia/Shanghai&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

  然后在UserMapper中開始寫SQL語句

 @Mapper
 public interface UserMapper {
     @Select("SELECT id, name, age, gender, phone FROM user")
     List<User> userList();
 }

  一定要在UserMapper類上加上@Mapper注解,@Mapper注解是識別他為mybatis的mapper接口,會自動的把 加@Mapper 注解的接口生成動態(tài)代理類。

  同樣的,在UserService中用@AutoWired對UserMapper進行注入,并在該類上加上@Service注解

 @Service
 public class UserServiceImpl implements UserService {
     @Autowired
     private UserMapper userMapper;
     public List<User> userList(){
         return userMapper.userList();
     }
 }

  在UserController中用@AutoWired對UserService進行注入并處理返回的結(jié)果,并在該類上加上@Controiller注解

  @Controller
  public class UserController {
      @Autowired
      private UserService userService;
      public void userList(){
          List<User> users = userService.userList();
          users.forEach(System.out::println);
      }
 }

  最后在SpringBoot的測試類中寫一個測試方法進行數(shù)據(jù)庫連接的測試

 @SpringBootTest
 class SpringBootMybatisApplicationTests {
     @Autowired
     private UserController userController;
     @Test
     public void test(){
         userController.userList();
     }
 }

  可以看到控制臺成功輸出結(jié)果

總結(jié)

  使用SpringBoot框架整合Mybatis更為簡單,只需要在application.properties配置文件中配置數(shù)據(jù)源四要素就行,隨后就可以直接在Mapper中寫SQL語句,最后可以在SpringBootTest類中直接進行測試。

到此這篇關(guān)于Mybatis和其他主流框架的整合使用的文章就介紹到這了,更多相關(guān)Mybatis框架的整合使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 中Json中既有對象又有數(shù)組的參數(shù)如何轉(zhuǎn)化成對象(推薦)

    Java 中Json中既有對象又有數(shù)組的參數(shù)如何轉(zhuǎn)化成對象(推薦)

    Gson庫是一個功能強大、易于使用的Java序列化/反序列化庫,它提供了豐富的API來支持Java對象和JSON之間的轉(zhuǎn)換,這篇文章主要介紹了Java 中Json中既有對象又有數(shù)組的參數(shù)如何轉(zhuǎn)化成對象,需要的朋友可以參考下
    2024-07-07
  • 基于springboot+enum配置化的方法

    基于springboot+enum配置化的方法

    本文主要介紹利用Springboot結(jié)合枚舉類enum進行自定義參數(shù)的初始化和應(yīng)用,通過@Value注解實現(xiàn)參數(shù)的動態(tài)注入,以實現(xiàn)靈活可維護的配置管理,具有一定的參考價值,感興趣的可以了解一下
    2024-09-09
  • Spingboot?JPA?CriteriaBuilder?如何獲取指定字段

    Spingboot?JPA?CriteriaBuilder?如何獲取指定字段

    這篇文章?主要介紹了Spingboot?JPA?CriteriaBuilder?如何獲取指定字段,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java獲取當(dāng)前時間戳的方法

    java獲取當(dāng)前時間戳的方法

    本文主要介紹了java獲取當(dāng)前時間戳的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Spring Boot 開發(fā)私有即時通信系統(tǒng)(WebSocket)

    Spring Boot 開發(fā)私有即時通信系統(tǒng)(WebSocket)

    本文利用Spring Boot作為基礎(chǔ)框架,Spring Security作為安全框架,WebSocket作為通信框架,實現(xiàn)點對點聊天和群聊天
    2017-04-04
  • Java中for、foreach、stream區(qū)別和性能比較詳解

    Java中for、foreach、stream區(qū)別和性能比較詳解

    for、foreach、stream都可以循環(huán)處理數(shù)據(jù),如果單純當(dāng)循環(huán)使用,for、foreach、stream哪個性能更好,這篇文章主要給大家介紹了關(guān)于Java中for、foreach、stream區(qū)別和性能的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • mybatis中的延遲加載類型及設(shè)定詳解

    mybatis中的延遲加載類型及設(shè)定詳解

    這篇文章主要介紹了mybatis中的延遲加載類型及設(shè)定詳解,MyBatis中的延遲加載,也稱為懶加載,是指在進行關(guān)聯(lián)查詢時,按照設(shè)置延遲規(guī)則推遲對關(guān)聯(lián)對象的select查詢,延遲加載可以有效的減少數(shù)據(jù)庫壓力,需要的朋友可以參考下
    2023-10-10
  • Java全面細致講解類與對象

    Java全面細致講解類與對象

    類和對象是兩種以計算機為載體的計算機語言的合稱。對象是對客觀事物的抽象,類是對對象的抽象。類是一種抽象的數(shù)據(jù)類型;變量就是可以變化的量,存儲在內(nèi)存中—個可以擁有在某個范圍內(nèi)的可變存儲區(qū)域
    2022-05-05
  • struts2中通過json傳值解決亂碼問題的實現(xiàn)方法

    struts2中通過json傳值解決亂碼問題的實現(xiàn)方法

    這篇文章主要介紹了struts2中通過json傳值解決亂碼問題的實現(xiàn)方法,涉及js編碼及java解碼的相關(guān)操作技巧,需要的朋友可以參考下
    2016-06-06
  • 使用@slf4j找不到符號log的問題及解決

    使用@slf4j找不到符號log的問題及解決

    這篇文章主要介紹了使用@slf4j找不到符號log的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論