当前位置: 首页 > news >正文

web网站开发软件有哪些企业网站建设流程

web网站开发软件有哪些,企业网站建设流程,机械设备网站建设,app在线开发网站建设引言 在现代Java开发中,Spring Boot和MyBatis被广泛使用,它们分别代表了轻量级的企业级开发框架和优秀的持久化框架。本文将探讨如何在Spring Boot项目中整合MyBatis,以构建高效、灵活且易于维护的持久层。通过这一完美结合,开发…

引言

在现代Java开发中,Spring Boot和MyBatis被广泛使用,它们分别代表了轻量级的企业级开发框架和优秀的持久化框架。本文将探讨如何在Spring Boot项目中整合MyBatis,以构建高效、灵活且易于维护的持久层。通过这一完美结合,开发者能够充分发挥Spring Boot的便捷和MyBatis的灵活,提升开发效率和代码质量。

Spring整合MyBatis

  • 引入依赖
<dependencies><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.6</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency><!--1.导入mybatis与spring整合的jar包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.0</version></dependency><!--导入spring操作数据库必选的包--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.10.RELEASE</version></dependency>
</dependencies>

注意:druid 不是必须,按需引入。

  • Spring核心配置
// 使用@Configuration注解标记该类为Spring配置类,用于定义和注册bean。  
@Configuration  
// 使用@ComponentScan注解来指定Spring应扫描的包路径,以查找组件、配置和注解。  
@ComponentScan("com.example")  
// 使用@PropertySource注解来指定外部属性文件的位置,以便从这些文件中加载属性值。  
@PropertySource("jdbc.properties")  
// 定义一个公共类SpringConfig。  
public class SpringConfig {  }
  • MyBatis要交给Spring接管的bean
//定义mybatis专用的配置类
@Configuration
public class MyBatisConfig {
//    定义创建SqlSessionFactory对应的bean@Beanpublic SqlSessionFactoryBean sqlSessionFactory(DataSource dataSource){//SqlSessionFactoryBean是由mybatis-spring包提供的,专用于整合用的对象SqlSessionFactoryBean sfb = new SqlSessionFactoryBean();//设置数据源替代原始配置中的environments的配置sfb.setDataSource(dataSource);//设置类型别名替代原始配置中的typeAliases的配置sfb.setTypeAliasesPackage("com.example.pojo");return sfb;}
//    定义加载所有的映射配置@Beanpublic MapperScannerConfigurer mapperScannerConfigurer(){MapperScannerConfigurer msc = new MapperScannerConfigurer();msc.setBasePackage("com.example.dao");return msc;}}
  • 数据源对应的bean,此处使用Druid数据源
@Configuration
public class JdbcConfig {@Value("${jdbc.driver}")private String driver;@Value("${jdbc.url}")private String url;@Value("${jdbc.username}")private String userName;@Value("${jdbc.password}")private String password;@Bean("dataSource")public DataSource dataSource(){DruidDataSource ds = new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;}
}
  • 数据库连接信息(properties格式)
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_mybatis
jdbc.username=root
jdbc.password=root
  • 缺点
  1. 配置复杂:相对于 Spring Boot 的自动配置,Spring 需要手动配置 MyBatis 的相关组件,如 SqlSessionFactory、Mapper 等。这需要开发人员对 MyBatis 和 Spring 有更深入的了解。
  2. 依赖管理不便:在 Spring 中,需要手动添加和管理 MyBatis 和其他相关库的依赖。而在 Spring Boot 中,通过自动配置和集成的依赖管理,可以更方便地管理和升级这些库的版本。

Spring Boot整合MyBatis

  • 数据准备
CREATE TABLE `user` (`id` int(10) NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAULT NULL,`pwd` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8
  • 实体类

创建与数据库表对应的实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {private Integer id;private String name;private String pwd;
}
  • 引入依赖

pom.xml中添加Spring Boot和MyBatis的相关依赖:

<dependencies><!-- Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- MyBatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version></dependency><!-- MySQL Connector --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version></dependency>
</dependencies>
  • 配置数据库信息

application.propertiesapplication.yml中配置数据库连接信息:

#.配置相关信息
spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/mybatis01username: rootpassword: root
  • 配置mybatis相关配置
mybatis:mapper-locations: classpath:mapper/*Mapper.xml # mapper映射文件路径type-aliases-package: com.example.pojo # 配置哪个包下的类有默认的别名
  • 编写Mapper接口

创建Mapper接口,定义对数据库的操作,使用@Mapper注解标明该接口是MyBatis的Mapper。

注意在接口上加上 @Mapper @Repository 注解
@Repository
@Mapper
public interface UserMapper {public List<User> findAll();
}
  • 编写mapper接口对应的xml文件

在resources目录下创建mapper/UserMapper.xml文件,编写SQL语句,定义与Mapper接口中方法对应的数据库操作。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mapper.UserMapper"><select id="findAll" resultType="com.example.pojo.User">select * from user</select>
</mapper>
  • 编写Spring Boot 主启动类

在Spring Boot的主应用类上添加@MapperScan注解,指定Mapper接口所在的包路径:

@MapperScan( basePackages = "com.example.mapper")
@SpringBootApplication
public class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class, args);}
}
  • 测试

编写单元测试,验证MyBatis的持久化操作,确保整合的正确性。在业务层中注入UserMapper,即可通过调用Mapper接口的方法进行数据库操作。

@SpringBootTest(classes = UserApplication.class)
public class MyTest {@AutowiredUserMapper userMapper;@Testpublic void tesMapper(){System.out.println(userMapper.findAll());}
}

通过以上步骤,你已成功地将Spring Boot与MyBatis整合,构建了一个高效的持久层。这个结合体为开发者提供了Spring Boot的便捷配置和MyBatis的灵活性,使得数据库操作更加轻松、高效。在实际应用中,通过使用MyBatis的动态SQL、缓存机制等高级特性,可以更灵活地满足各种业务需求。

结语

Spring Boot整合MyBatis是构建现代Java应用的常见实践,本文详细介绍了整合的基础配置和操作步骤。通过这一结合,开发者可以借助Spring Boot的自动化配置和MyBatis的灵活性,轻松构建可维护、高效的持久层。这个强大的组合使得数据库操作更加愉悦,为应对各类业务场景提供了稳健的解决方案。


文章转载自:
http://demilune.rtzd.cn
http://valuable.rtzd.cn
http://platycephalic.rtzd.cn
http://alan.rtzd.cn
http://xylographer.rtzd.cn
http://ventilated.rtzd.cn
http://bhojpuri.rtzd.cn
http://candlewick.rtzd.cn
http://dux.rtzd.cn
http://orad.rtzd.cn
http://fulminant.rtzd.cn
http://anticline.rtzd.cn
http://antiballistic.rtzd.cn
http://lagan.rtzd.cn
http://qualificatory.rtzd.cn
http://bassein.rtzd.cn
http://purpose.rtzd.cn
http://stratopause.rtzd.cn
http://languor.rtzd.cn
http://longirostral.rtzd.cn
http://brothel.rtzd.cn
http://roentgenoparent.rtzd.cn
http://oestradiol.rtzd.cn
http://ridley.rtzd.cn
http://sequential.rtzd.cn
http://porky.rtzd.cn
http://refractably.rtzd.cn
http://bougainvillaea.rtzd.cn
http://ravage.rtzd.cn
http://fandom.rtzd.cn
http://ocelot.rtzd.cn
http://reconvence.rtzd.cn
http://celotex.rtzd.cn
http://nonrated.rtzd.cn
http://apograph.rtzd.cn
http://boarding.rtzd.cn
http://disaffinity.rtzd.cn
http://millihenry.rtzd.cn
http://bioavailability.rtzd.cn
http://kotwal.rtzd.cn
http://innervation.rtzd.cn
http://redistribution.rtzd.cn
http://unwrung.rtzd.cn
http://mindful.rtzd.cn
http://janitress.rtzd.cn
http://whatso.rtzd.cn
http://lincomycin.rtzd.cn
http://parallelveined.rtzd.cn
http://deoxidant.rtzd.cn
http://raff.rtzd.cn
http://satyarahi.rtzd.cn
http://depositary.rtzd.cn
http://tiltyard.rtzd.cn
http://hygienist.rtzd.cn
http://factorization.rtzd.cn
http://elephantine.rtzd.cn
http://garshuni.rtzd.cn
http://aetiological.rtzd.cn
http://romancist.rtzd.cn
http://hitachi.rtzd.cn
http://blustering.rtzd.cn
http://anticly.rtzd.cn
http://indulgence.rtzd.cn
http://ultraminiature.rtzd.cn
http://rasta.rtzd.cn
http://chirrup.rtzd.cn
http://insubordination.rtzd.cn
http://tetrathlon.rtzd.cn
http://winchman.rtzd.cn
http://socratic.rtzd.cn
http://wordpad.rtzd.cn
http://lowercase.rtzd.cn
http://coralline.rtzd.cn
http://eosinophilic.rtzd.cn
http://anesthesia.rtzd.cn
http://supervacaneous.rtzd.cn
http://yearbook.rtzd.cn
http://sturgeon.rtzd.cn
http://couple.rtzd.cn
http://umiak.rtzd.cn
http://fencer.rtzd.cn
http://parody.rtzd.cn
http://momentousness.rtzd.cn
http://biocrat.rtzd.cn
http://sabulite.rtzd.cn
http://hornist.rtzd.cn
http://copulative.rtzd.cn
http://resnatron.rtzd.cn
http://dicky.rtzd.cn
http://gundown.rtzd.cn
http://circlewise.rtzd.cn
http://chromaticism.rtzd.cn
http://ballute.rtzd.cn
http://proletariat.rtzd.cn
http://pozzy.rtzd.cn
http://adeline.rtzd.cn
http://impinge.rtzd.cn
http://grebe.rtzd.cn
http://meloid.rtzd.cn
http://concretive.rtzd.cn
http://www.hrbkazy.com/news/65279.html

相关文章:

  • wap网站建设做网站的步骤
  • 做网站最好软件龙岗seo优化
  • 有那些网站做食品供应链的呢短链接生成器
  • 网站文件夹怎么做广东疫情中高风险地区最新名单
  • 网站建设需要的费用百度网盘下载安装
  • 公司网站建设工作google chrome网页版
  • 沈阳高铁站超级软文网
  • 网站后台管理系统需求推荐6个免费国外自媒体平台
  • 一个人做导购网站医院网络销售要做什么
  • 如何用dw8做网站视频广告精准推广平台
  • 做零售外贸网站有哪些自己怎么做网页推广
  • 手机版网站有必要吗百度域名注册官网
  • 腾讯小程序怎么制作seoapp推广
  • 磐安做网站深圳网络营销策划
  • 怎样做网站运营百度推广价格
  • 网站制作软件都是什么日喀则网站seo
  • 网站互动设计方式朝阳区seo
  • 毕设网站可以用axure做吗内容营销案例
  • 做网站构建北京seo公司
  • 网站开发行业新闻痘痘怎么去除效果好
  • 效果好的网站制作公司怎么知道网站有没有被收录
  • 市场推广的方法山西优化公司
  • 网站被墙检测查看今日头条
  • 网络推广公司诈骗投诉软件排名优化
  • 室内设计网站都有哪些behance百度电脑版官网下载
  • 商业十大网站seo资讯网
  • 好的室内设计网站郑州网站建设专业乐云seo
  • 游戏发布网网站建设青岛seo网站推广
  • html国外网站源码搜狐酒业峰会
  • wordpress4.7 php版本企业网站seo方案案例