Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate org.springframework.beans.factory.unsatifiedDependencyException:创建名为';用户控制器';_Hibernate_Spring Boot_Javabeans_Crud - Fatal编程技术网

Hibernate org.springframework.beans.factory.unsatifiedDependencyException:创建名为';用户控制器';

Hibernate org.springframework.beans.factory.unsatifiedDependencyException:创建名为';用户控制器';,hibernate,spring-boot,javabeans,crud,Hibernate,Spring Boot,Javabeans,Crud,相关的问题似乎对我没有帮助。这是我第一次使用SpringBoot开发webapp,我遇到了这个错误。这是我的密码 用户控制器 package com.rtc_insurance.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import or

相关的问题似乎对我没有帮助。这是我第一次使用SpringBoot开发webapp,我遇到了这个错误。这是我的密码

用户控制器

package com.rtc_insurance.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.rtc_insurance.dao.UserDAO;
import com.rtc_insurance.entity.Users;

@Controller
@RequestMapping("/user")
public class UserController {

    //inject DAO
    //scan for a component that implements UserDAO interface
    @Autowired
    private UserDAO userDAO;


    @RequestMapping("/list")
    public String listUsers(Model theModel) {

        //get user from the dao
        List<Users> theUsers = userDAO.getUsers();

        //add the customer to the model
        //users = table name
        theModel.addAttribute("users",theUsers);

        return "list-users";
    }
}
package com.rtc_insurance.controller;
导入java.util.List;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.context.annotation.Bean;
导入org.springframework.stereotype.Controller;
导入org.springframework.ui.Model;
导入org.springframework.web.bind.annotation.RequestMapping;
导入com.rtc_insurance.dao.UserDAO;
导入com.rtc_insurance.entity.Users;
@控制器
@请求映射(“/user”)
公共类用户控制器{
//注入刀
//扫描实现UserDAO接口的组件
@自动连线
私有UserDAO UserDAO;
@请求映射(“/list”)
公共字符串列表用户(模型){
//从dao获取用户
列出users=userDAO.getUsers();
//将客户添加到模型中
//users=表名
model.add属性(“users”,theUsers);
返回“列表用户”;
}
}
用户道

package com.rtc_insurance.dao;

import java.util.List;
import com.rtc_insurance.entity.Users;

public interface UserDAO {

    public List<Users> getUsers();
}
package com.rtc_insurance.dao;
导入java.util.List;
导入com.rtc_insurance.entity.Users;
公共接口UserDAO{
公共列表getUsers();
}
UserDAOImpl

package com.rtc_insurance.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;


import com.rtc_insurance.entity.Users;

@Repository
public class UserDAOImpl implements UserDAO {

    //need to inject the session factory
    @Autowired
    private SessionFactory sessionFactory;

    @Override
    @Transactional
    public List<Users> getUsers() {

        //get current hibernate session
        Session currentSession = sessionFactory.getCurrentSession();

        //query
        Query<Users> theQuery = 
                currentSession.createQuery("from users", Users.class);

        //execute result
        List<Users> users = theQuery.getResultList();

        //return list of users
        return users;

    }

}
package com.rtc_insurance.dao;
导入java.util.List;
导入org.hibernate.Session;
导入org.hibernate.SessionFactory;
导入org.hibernate.query.query;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.context.annotation.Bean;
导入org.springframework.stereotype.Repository;
导入org.springframework.transaction.annotation.Transactional;
导入com.rtc_insurance.entity.Users;
@存储库
公共类UserDAOImpl实现UserDAO{
//需要注入会话工厂
@自动连线
私人会话工厂会话工厂;
@凌驾
@交易的
公共列表getUsers(){
//获取当前休眠会话
会话currentSession=sessionFactory.getCurrentSession();
//质疑
查询查询=
currentSession.createQuery(“来自用户”,users.class);
//执行结果
List users=theQuery.getResultList();
//返回用户列表
返回用户;
}
}
Servlet

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- Add support for component scanning -->
    <context:component-scan base-package="com.rtc_insurance" />

    <!-- Add support for conversion, formatting and validation support -->
    <mvc:annotation-driven/>

    <!-- Define Spring MVC view resolver -->
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/view/" />
        <property name="suffix" value=".jsp" />
    </bean>

    <!-- Step 1: Define Database DataSource / connection pool -->
    <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
        destroy-method="close">
        <property name="driverClass" value="com.mysql.cj.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/rtc_insurance?useSSL=false&amp;characterEncoding=latin1&amp;serverTimezone=UTC" />
        <property name="user" value="root" />
        <property name="password" value="root" /> 

        <!-- these are connection pool properties for C3P0 -->
        <property name="initialPoolSize" value="5"/>
        <property name="minPoolSize" value="5" />
        <property name="maxPoolSize" value="20" />
        <property name="maxIdleTime" value="30000" />
    </bean>  

    <!-- Step 2: Setup Hibernate session factory -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="myDataSource" />
        <property name="packagesToScan" value="com.rtc_insurance.entity" />
        <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
        </property>
</bean>   

    <!-- Step 3: Setup Hibernate transaction manager -->
    <bean id="myTransactionManager"
            class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"/>
    </bean>

    <!-- Step 4: Enable configuration of transactional behavior based on annotations -->
    <tx:annotation-driven transaction-manager="myTransactionManager" />

    <!-- Add support for reading web resources: css, images, js, etc ... -->
    <mvc:resources location="/resources/" mapping="/resources/**"></mvc:resources>



</beans>

org.hibernate.dialogue.mysqldialogue
真的

我一直在犯这个错误。

Spring boot为您做了很多开箱即用的事情

配置
数据源
首先是数据源。遗憾的是,C3P0不是受支持的连接池提供程序(只有DBCP、Hikari和Tomcat是)。这意味着您必须手动创建
DataSource
bean,例如:

@Bean
@ConfigurationProperties(“custom.datasource”)
公共组合池数据源数据源(){
返回新的ComboPooledDataSource();
}
如果将此方法添加到主类中,或者添加了
@Configuration
注释的任何其他类中,Spring将自动拾取数据源bean,并为您创建一个
TransactionManager
和一个
SessionFactory
。它还支持注释驱动的事务

由于我们使用的是
@ConfigurationProperties
,所有以
custom.datasource.*
开头的属性都会自动注入到数据源中。这允许您从
应用程序.properties
中配置数据源。如果您还没有这样的文件,请在类路径上创建一个,并添加以下属性:

custom.datasource.jdbc-url=jdbc:mysql://localhost:3306/rtc_insurance?useSSL=false&amp;characterEncoding=latin1&amp;serverTimezone=UTC
custom.datasource.user=root
custom.datasource.password=root
custom.datasource.initial-pool-size=5
custom.datasource.min-pool-size=5
custom.datasource.max-pool-size=20
custom.datasource.max-idle-time=30000
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp
用Spring数据替换DAO 下一部分是刀。Spring数据项目试图使这些事情变得更容易。首先,您需要将
springbootstarter数据jpa
依赖项添加到您的项目中。如果使用Maven,可以执行以下操作:


org.springframework.boot
spring引导启动器数据jpa
com.zaxxer
希卡里普
排除是可选的,但允许您排除默认连接池(即Hikari),因为您不使用它。之后,您可以用以下内容替换整个
UserDAO
UserDAOImpl

public interface UserRepository扩展了JpaRepository{
}
通过创建一个接口并从
JpaRepository
(或
crudepository
,…)扩展,Spring知道它应该为您创建一个存储库bean,类型为
User
,标识符类型为
Long
(您没有共享您的
用户
实体,因此如果它不是
,您可以更改泛型)

它还将包括一些默认方法,例如
findAll()
findById()
save()
delete()
,…这些方法您不再需要编写。因为您是
getUsers()
方法基本上与
findAll()相同
操作。这意味着您不需要该代码,只需将
UserRepository
自动连接到控制器中,然后使用
findAll()
操作即可

元件扫描 在XML配置中,您还有一个组件扫描:


这不再是必需的,因为Spring boot将自动扫描同一个包中的组件,或主类的任何子包。如果您想添加额外的componentscan,可以通过在主类顶部添加
@componentscan(“com.xyz”)
注释,或使用
注释的任何其他类来完成