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

网站可以分为哪些类型上海建设部门网站

网站可以分为哪些类型,上海建设部门网站,管理系统门户网站开发路线,福建百度推广开户一、基础介绍 1.1 MyBatis MyBatis 是一款优秀的持久层框架#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息#xff0c;将接口和 Java 的 P… 一、基础介绍 1.1 MyBatis MyBatis 是一款优秀的持久层框架它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息将接口和 Java 的 POJOPlain Old Java Objects映射成数据库中的记录。 1.2 Spring Boot 集成 MyBatis 的优势 将 Spring Boot 和 MyBatis 集成能够充分发挥 Spring Boot 的快速开发特性和 MyBatis 灵活的数据库操作能力。通过这种集成可以快速搭建一个稳定、高效的数据库访问层简化开发流程提高开发效率。 二、集成步骤 2.1 创建 Spring Boot 项目 可以使用 Spring Initializrhttps://start.spring.io/来快速创建一个 Spring Boot 项目。在创建项目时需要选择以下依赖 Spring WebSpring Data JPAMySQL DriverMyBatis Framework 2.2 配置数据源 在 application.properties 文件中配置数据库连接信息 spring.datasource.urljdbc:mysql://localhost:3306/yourdatabase spring.datasource.usernameyourusername spring.datasource.passwordyourpassword spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver2.3 配置 MyBatis 在 application.properties 文件中配置 MyBatis 的相关属性 mybatis.mapper-locationsclasspath:/mapper/*.xml mybatis.type-aliases-packagecom.example.demo.entitymybatis.mapper-locations 配置 MyBatis 映射文件的位置mybatis.type-aliases-package 配置实体类的包名这样在 MyBatis 映射文件中就可以直接使用实体类名而无需写全限定名。 2.4 创建实体类 创建一个 Java 实体类用于映射数据库表中的记录。例如创建一个 User 实体类 package com.example.demo.entity;public class User {private Long id;private String username;private String password;// 省略 getters 和 setters }2.5 创建 Mapper 接口 创建一个 Mapper 接口用于定义数据库操作方法。例如创建一个 UserMapper 接口 package com.example.demo.mapper;import com.example.demo.entity.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select;import java.util.List;Mapper public interface UserMapper {Select(SELECT * FROM user)ListUser findAll(); }Mapper 注解用于将该接口标记为 MyBatis 的 Mapper 接口。 2.6 创建 Mapper 映射文件 在 resources/mapper 目录下创建一个 UserMapper.xml 文件用于实现 Mapper 接口中的方法 ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.mapper.UserMapperselect idfindAll resultTypecom.example.demo.entity.UserSELECT * FROM user/select /mappernamespace 属性指定 Mapper 接口的全限定名id 属性指定要实现的方法名resultType 属性指定返回结果的类型。 2.7 创建 Service 层 创建一个 Service 层用于调用 Mapper 接口中的方法。例如创建一个 UserService 接口和其实现类 UserServiceImpl package com.example.demo.service;import com.example.demo.entity.User;import java.util.List;public interface UserService {ListUser findAll(); }package com.example.demo.service.impl;import com.example.demo.entity.User; import com.example.demo.mapper.UserMapper; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.List;Service public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;Overridepublic ListUser findAll() {return userMapper.findAll();} }2.8 创建 Controller 层 创建一个 Controller 层用于处理客户端请求。例如创建一个 UserController package com.example.demo.controller;import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;import java.util.List;RestController RequestMapping(/users) public class UserController {Autowiredprivate UserService userService;GetMappingpublic ListUser findAll() {return userService.findAll();} }三、示例完整代码 1. 创建 application.yml 在 src/main/resources 目录下创建 application.yml 文件。 2. 配置数据源和 MyBatis 将原本 application.properties 中的配置内容转换为 YAML 格式如下 spring:datasource:url: jdbc:mysql://localhost:3306/yourdatabaseusername: yourusernamepassword: yourpassworddriver-class-name: com.mysql.cj.jdbc.Driver mybatis:mapper-locations: classpath:/mapper/*.xmltype-aliases-package: com.example.demo.entity说明 在 YAML 中使用缩进表示层级关系。例如spring 和 mybatis 是顶级配置项datasource 是 spring 的子配置项url、username、password 和 driver-class-name 是 datasource 的子配置项。冒号后面需要跟一个空格然后再写具体的值。 完整项目示例 以下是基于上述 application.yml 配置的完整项目示例包括之前提到的各个部分 项目结构 src ├── main │ ├── java │ │ ├── com │ │ │ ├── example │ │ │ │ ├── demo │ │ │ │ │ ├── controller │ │ │ │ │ │ └── UserController.java │ │ │ │ │ ├── entity │ │ │ │ │ │ └── User.java │ │ │ │ │ ├── mapper │ │ │ │ │ │ ├── UserMapper.java │ │ │ │ │ │ └── UserMapper.xml │ │ │ │ │ ├── service │ │ │ │ │ │ ├── UserService.java │ │ │ │ │ │ └── impl │ │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ │ └── DemoApplication.java │ └── resources │ ├── application.yml │ └── mapper │ └── UserMapper.xml └── test└── java└── com└── example└── demo└── DemoApplicationTests.java依赖配置pom.xml dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.mybatis.spring/groupIdartifactIdmybatis-spring/artifactIdversion2.0.6/version/dependencydependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion3.5.9/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdscoperuntime/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency /dependencies实体类User.java package com.example.demo.entity;public class User {private Long id;private String username;private String password;// 构造函数public User() {}public User(String username, String password) {this.username username;this.password password;}// getters 和 setterspublic Long getId() {return id;}public void setId(Long id) {this.id id;}public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;} }Mapper 接口UserMapper.java package com.example.demo.mapper;import com.example.demo.entity.User; import org.apache.ibatis.annotations.*;import java.util.List;Mapper public interface UserMapper {Select(SELECT * FROM user)ListUser findAll();Select(SELECT * FROM user WHERE id #{id})User findById(Long id);Insert(INSERT INTO user (username, password) VALUES (#{username}, #{password}))Options(useGeneratedKeys true, keyProperty id)void save(User user);Update(UPDATE user SET username #{username}, password #{password} WHERE id #{id})void update(User user);Delete(DELETE FROM user WHERE id #{id})void delete(Long id); }Mapper 映射文件UserMapper.xml ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.demo.mapper.UserMapperselect idfindAll resultTypecom.example.demo.entity.UserSELECT * FROM user/selectselect idfindById resultTypecom.example.demo.entity.UserSELECT * FROM user WHERE id #{id}/selectinsert idsave keyPropertyid useGeneratedKeystrueINSERT INTO user (username, password) VALUES (#{username}, #{password})/insertupdate idupdateUPDATE user SET username #{username}, password #{password} WHERE id #{id}/updatedelete iddeleteDELETE FROM user WHERE id #{id}/delete /mapperService 层 UserService.java package com.example.demo.service;import com.example.demo.entity.User;import java.util.List;public interface UserService {ListUser findAll();User findById(Long id);void save(User user);void update(User user);void delete(Long id); }UserServiceImpl.java package com.example.demo.service.impl;import com.example.demo.entity.User; import com.example.demo.mapper.UserMapper; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import java.util.List;Service public class UserServiceImpl implements UserService {Autowiredprivate UserMapper userMapper;Overridepublic ListUser findAll() {return userMapper.findAll();}Overridepublic User findById(Long id) {return userMapper.findById(id);}Overridepublic void save(User user) {userMapper.save(user);}Overridepublic void update(User user) {userMapper.update(user);}Overridepublic void delete(Long id) {userMapper.delete(id);} }Controller 层UserController.java package com.example.demo.controller;import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*;import java.util.List;RestController RequestMapping(/users) public class UserController {Autowiredprivate UserService userService;GetMappingpublic ResponseEntityListUser findAll() {ListUser users userService.findAll();return new ResponseEntity(users, HttpStatus.OK);}GetMapping(/{id})public ResponseEntityUser findById(PathVariable Long id) {User user userService.findById(id);if (user! null) {return new ResponseEntity(user, HttpStatus.OK);} else {return new ResponseEntity(HttpStatus.NOT_FOUND);}}PostMappingpublic ResponseEntityVoid save(RequestBody User user) {userService.save(user);return new ResponseEntity(HttpStatus.CREATED);}PutMappingpublic ResponseEntityVoid update(RequestBody User user) {userService.update(user);return new ResponseEntity(HttpStatus.NO_CONTENT);}DeleteMapping(/{id})public ResponseEntityVoid delete(PathVariable Long id) {userService.delete(id);return new ResponseEntity(HttpStatus.NO_CONTENT);} }测试DemoApplicationTests.java package com.example.demo;import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;import static org.junit.jupiter.api.Assertions.*;SpringBootTest public class DemoApplicationTests {Autowiredprivate UserService userService;Testpublic void testFindAll() {assertEquals(0, userService.findAll().size());}Testpublic void testSaveAndFindById() {User user new User(testuser, testpassword);userService.save(user);assertNotNull(userService.findById(user.getId()));}Testpublic void testUpdate() {User user new User(testuser, testpassword);userService.save(user);user.setPassword(newpassword);userService.update(user);assertEquals(newpassword, userService.findById(user.getId()).getPassword());}Testpublic void testDelete() {User user new User(testuser, testpassword);userService.save(user);userService.delete(user.getId());assertNull(userService.findById(user.getId()));} }通过上述配置和代码示例你可以在 Spring Boot 项目中使用 application.yml 配置文件来集成 MyBatis并实现完整的用户管理功能。
http://www.hkea.cn/news/14263436/

相关文章:

  • 移动云服务器租用南宁百度seo排名优化
  • 百度搜索关键词数据杭州seook优屏网络
  • 合作行业网站建设新浪微博做wordpress图床
  • 镇江教育云平台网站建设下列属于网页制作平台的是
  • 房地产网页设计网站建设高端建站平台设计风格出众
  • 广州购物网站建设雍熙网站建设
  • ps做全屏网站画布要多大wordpress 4.7
  • 网站制作计划书模板网站建设编辑叫什么岗位
  • 洛阳霞光高端定制网站建设建设搜索引擎友好的网站
  • 金融 网站 模板code wordpress
  • 上海酒店团购网站建设wordpress 分段循环
  • 贵金属如何用网站开发客户重庆网站运营公司
  • 重庆新闻发布会直播seo和sem的区别与联系
  • 网站解析后显示在建设中wordpress oracle
  • 深圳网站建设优化服务wordpress蜘蛛爬虫记录
  • 网站建设洽谈方案生成logo的网站
  • 网站是否上线我想创业做网站
  • 重庆网站建设重庆零臻科技价设计平台化
  • 网站自己做还是找人做襄阳门做网站
  • 网站开发工具简述石家庄外贸网站建设公司排名
  • 做pc端网站用什么框架做英文网站要做适合已经的
  • 闸北区网站制作电子产品网站建设模板
  • 公众号电影网站是怎么做的网站建设的职位
  • 网站建站建设公司重庆李家沱网站建设
  • 优秀企业网站建设公司一个新的网站怎么做优化
  • 备案期间怎么关闭网站会声会影模板免费网站
  • 南宁网站建设哪家公司wordpress 拖动
  • 做私活一个网站大概多少钱网站建设方案书可自行撰写
  • 揭阳企业建站服务公司易优cms怎么样
  • 石家庄做网络科技公司杭州seo薪资水平