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

园林景观网站模板怎样做网站卖手机号

园林景观网站模板,怎样做网站卖手机号,谷歌怎么做公司网站,百度入口提交Repository 是Spring注解,标识数据访问层组件(DAO, Data Access Object) 当一个类被标记为 Repository 时: 1、组件扫描与自动代理: Spring通过组件扫描(Component Scan)机制发现带有 Reposit…

@RepositorySpring注解,标识数据访问层组件(DAO, Data Access Object

在这里插入图片描述
当一个类被标记为 @Repository 时:
1、组件扫描与自动代理: Spring通过组件扫描(Component Scan)机制发现带有 @Repository 的类,并将其纳入Spring IoC容器管理,创建对应的Bean实例

2、异常处理增强: Spring会针对标记了 @Repository 的类捕获特定的数据访问异常(如JDBC相关的SQLException),并将其转换为Spring DataAccessException层次结构中的一个合适异常,简化异常处理。

3、事务管理: 在使用Spring AOP进行声明式事务管理的情况下,标记为 @Repository 的类的方法可以自动参与到事务中去,无需额外配置事务切面。

4、语义清晰: 尽管 @Repository 在功能上等同于 @Component@Service 注解,但是从语义上讲,它更明确地表明该类是用来执行数据库操作数据持久化工作的。

在这里插入图片描述

使用样例

基础DAO类

import org.springframework.stereotype.Repository;@Repository
public class UserRepository {// 假设这里有一个JdbcTemplate或EntityManager等数据访问工具对象private JdbcTemplate jdbcTemplate;@Autowiredpublic UserRepository(JdbcTemplate jdbcTemplate) {this.jdbcTemplate = jdbcTemplate;}public User findByUsername(String username) {// 使用jdbcTemplate执行SQL查询以根据用户名查找用户// ...}public void save(User user) {// 执行保存用户的SQL语句// ...}
}

结合Spring Data JPA

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;@Repository
public interface UserRepository extends JpaRepository<User, Long> {User findByUsername(String username);
}

与MyBatis整合

import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;@Repository
public interface UserRepositoryMapper {@Select("SELECT * FROM users WHERE username = #{username}")User findByUsername(@Param("username") String username);
}

自定义实现并处理特定异常

import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Repository;@Repository
public class CustomUserRepository {@Autowiredprivate SomeDataAccessObject dataAccessObject;public User getUserById(Long id) throws CustomNotFoundException {try {return dataAccessObject.getUser(id);} catch (DataAccessException ex) {throw new CustomNotFoundException("User not found", ex);}}
}

在组件扫描和事务管理中配合使用

@Configuration
@EnableTransactionManagement
@ComponentScan(basePackages = {"com.example.repository"})
public class AppConfig {// 配置数据源、JdbcTemplate或SessionFactory等@Beanpublic PlatformTransactionManager transactionManager(EntityManagerFactory emf) {return new JpaTransactionManager(emf);}
}// 在应用中
@Repository
public class ProductRepository {// 这里的方法将在事务中执行public void updateProduct(Product product) {// 更新产品逻辑}
}

结合@Transactional注解实现事务管理

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;@Service
public class OrderService {@Autowiredprivate OrderRepository orderRepository;@Autowiredprivate UserRepository userRepository;@Transactionalpublic void placeOrder(Order order, User user) {// 保存订单order.setUser(user);orderRepository.save(order);// 更新用户购买记录user.getOrders().add(order);userRepository.save(user);}
}@Repository
public interface UserRepository extends JpaRepository<User, Long> { }@Repository
public interface OrderRepository extends JpaRepository<Order, Long> { }

使用Spring Data REST配合@Repository

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;@Repository
public interface ProductRepository extends CrudRepository<Product, Long> {// Spring Data JPA自动提供CRUD操作,无需编写SQL或查询方法List<Product> findByCategory(Category category);// 自定义查询方法@Query("SELECT p FROM Product p WHERE p.name LIKE %:name%")List<Product> findByNameLike(@Param("name") String name);
}

使用Spring Data R2DBC配合@Repository

import org.springframework.data.r2dbc.repository.R2dbcRepository;
import org.springframework.stereotype.Repository;@Repository
public interface ProductRepository extends R2dbcRepository<Product, Long> {Flux<Product> findByCategory(String category);@Query("SELECT * FROM products WHERE name LIKE $1")Flux<Product> findByNameLike(String namePattern);
}
http://www.yayakq.cn/news/636862/

相关文章:

  • 学校网站建设培训心得体会腾讯广告推广怎么做
  • 网站建设与网页设计百度文库网页游戏大全电脑版在线玩
  • 网站营销工作流程wordpress视频缩略图不显示
  • 网站源码被注册为商标一个新网站要怎么做seo
  • 网站制作的建设大纲ppt企业所得税计算方法举例
  • 梅河口市建设局网站常见问题 网站建设
  • 毕业生就业推荐表模板网站开发本地南京网站建设
  • 佳木斯网站设计登陆建设银行wap网站
  • 网站排名上升 优帮云成都手机微信网站建设报价单
  • 保定 网站小区媒体网站建设
  • dede可以做购物网站吗成都网站建设维护
  • 中国站长站Wordpress怎么做筛选功能
  • 合肥装饰公司做的好的网站销售渠道有哪几种
  • 眉山市网站建设金融街做网站的公司
  • php网站如何导入数据库免费的wordpress主机
  • 麟游住房和城市建设局网站网页制作程序代码
  • 泉州做网站优化价格wordpress如何连接到数据库连接
  • 谷歌官方网站wordpress wp_list_pages 样式
  • 优芽动画制作官网随州seo推广
  • 上海私人做网站公司做网站的 oa办公系统
  • 电商网站设计图帮别人做非法网站
  • 佛山企业门户网站建设湛江建站免费模板
  • 网站开发类合同做网站设计怎么提升
  • 网站建设维保免费内容网络营销零基础培训
  • 做汽车保养的网站上中小型企业查询网址
  • 百度蜘蛛如何找网站网站标签优化怎么做
  • centos7怎么做网站服务器网页界面设计包括哪些原则
  • 哪里有国内网站建设公司做网站的基本流程
  • 有哪些网站可以兼职做笔译电竞网站方案设计
  • 全网模板建站系统html国庆节网页制作代码