数据库查询到信息不能注入到类中

 

 sql语句放到数据库中可以查询出信息 但是idea中查到的user是null

 

 

在排除掉sql语句注入之后查看代码问题 结果发现在执行UserMapper之后本应该拿到的user是null

而且这样判断经常会出现空指针异常,所以就去对应了一下 但是找了好久都发现没有问题

 解决方法 

1 检查sql语句 还有其返回类型是否匹配数据库返回信息的类型

2  没有开启驼峰命名 导致注入不到user实体类

#驼峰命名开启
mybatis.configuration.map-underscore-to-camel-case=true

我这里是第二种方法 忘记开启驼峰命名了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要在Spring Cloud应用程序查询数据库注入到Bean,您可以使用Spring Data JPA或MyBatis等持久层框架。 在使用Spring Data JPA的情况下,您可以使用@Repository注解在应用程序定义存储库,并使用@Autowired注解将其注入到您的服务。以下是一个简单的示例: ``` @Repository public class UserRepositoryImpl implements UserRepositoryCustom { @PersistenceContext private EntityManager entityManager; @Override public List<User> findUsersByAgeGreaterThan(int age) { CriteriaBuilder cb = entityManager.getCriteriaBuilder(); CriteriaQuery<User> query = cb.createQuery(User.class); Root<User> root = query.from(User.class); query.select(root).where(cb.greaterThan(root.get("age"), age)); return entityManager.createQuery(query).getResultList(); } } @Service public class UserServiceImpl implements UserService { @Autowired private UserRepositoryCustom userRepositoryCustom; @Override public List<User> getUsersByAgeGreaterThan(int age) { return userRepositoryCustom.findUsersByAgeGreaterThan(age); } } ``` 在上面的代码,@Repository注解用于定义一个Spring Data JPA存储库。在存储库,您可以使用@PersistenceContext注解注入EntityManager实例,并使用Criteria API构建查询语句。在服务,您可以使用@Autowired注解将存储库注入到服务,并调用自定义查询方法。 在使用MyBatis的情况下,您需要在应用程序定义一个Mapper接口,并在应用程序创建一个SqlSessionFactory实例。然后,您可以使用@Autowired注解将Mapper接口注入到您的服务,并调用Mapper接口定义的方法。以下是一个简单的示例: ``` @Mapper public interface UserMapper { @Select("SELECT * FROM user WHERE age > #{age}") List<User> findUsersByAgeGreaterThan(@Param("age") int age); } @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public List<User> getUsersByAgeGreaterThan(int age) { return userMapper.findUsersByAgeGreaterThan(age); } } ``` 在上面的代码,@Mapper注解用于定义一个Mapper接口。在Mapper接口,您可以使用@Select注解定义从数据库检索数据的SQL查询语句。在服务,您可以使用@Autowired注解将Mapper接口注入到服务,并调用Mapper接口定义的方法。 无论使用哪种持久层框架,您需要在应用程序配置数据源,并将其与持久层框架关联起来。例如,在使用Spring Data JPA的情况下,您可以在application.properties文件添加以下配置项: ``` spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=admin spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update ``` 在上面的代码,您需要将URL、用户名和密码设置为您的MySQL数据库连接信息,并将驱动程序名设置为com.mysql.cj.jdbc.Driver。此外,您还需要设置Hibernate方言、是否显示SQL语句和自动DDL生成策略。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

岂有此李同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值