繁体   English   中英

Spring Hibernate MySQL-没有连接?

[英]Spring Hibernate MySQL - No connection?

我与mysql连接有问题。 这是我的代码:

依存关系:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.12</version>
    </dependency>
    <dependency>
        <groupId>org.apache.velocity</groupId>
        <artifactId>velocity</artifactId>
        <version>1.7</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>7.0</version>
        <scope>provided</scope>
    </dependency>

    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${org.springframework-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${org.springframework-version}</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>

    <!-- Servlet -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>javax.servlet.jsp-api</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>      
    </dependency>

    <!-- Apache Database Connection Pool -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-dbcp2</artifactId>
        <version>2.1</version>
    </dependency>

    <!-- Hibernate -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.3.10.Final</version>
    </dependency>

    <!-- MySQL JDBC Driver -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.30</version>       
    </dependency>  
</dependencies>

内容:

  <mvc:annotation-driven /> 
<mvc:resources mapping="/resources/**" location="/resources/" />
<context:component-scan base-package="com.packt.app" />

<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
    <property name="resourceLoaderPath" value="/WEB-INF/view/"/>
</bean>

<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
    <property name="cache" value="true"/>
    <property name="prefix" value=""/>
    <property name="suffix" value=".html"/>
    <property name="exposeSpringMacroHelpers" value="true"/>
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://ADMIN-PC:3306/data"/>
    <property name="username" value="root"/>
    <property name="password" value="root"/>
</bean> 

<bean id="sessionFactory"
      class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configLocation" value="/WEB-INF/hibernate.cfg.xml" />
</bean>

<tx:annotation-driven />
<bean id="transactionManager"
      class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

<bean id="testDAO" class="com.packt.app.DAO.Impl.TestDAOImpl">
    <constructor-arg>
        <ref bean="sessionFactory" />
    </constructor-arg>
</bean>   

控制器:

@Controller
@RequestMapping("/tests")
public class TestController {

@Autowired
TestService testService;

@RequestMapping("/testslist.json")
public @ResponseBody List<Test> getTestList() {
    return testService.getTests();
}

@RequestMapping("/layout")
public String getTestPartialPage(ModelMap modelMap) {
    return "tests/layout";
}
}

模型:

@Entity
@Table(name = "test") 
public class Test{
@Id
@GeneratedValue
@Column(name = "id")
private int id;

@Column(name = "name")
private String name;

///gettters and setters
}

Impl:

@Repository
public class TestDAOImpl implements TestDAO {

@Autowired
private SessionFactory sessionFactory;

public TestDAOImpl() {
}

public TestDAOImpl(SessionFactory sessionFactory) {
    this.sessionFactory = sessionFactory;
}

@Override
@Transactional
public List<Test> getTests() {
    @SuppressWarnings("unchecked")
    List<Test> tests = (List<Test>) sessionFactory.getCurrentSession()
            .createCriteria(Test.class)
            .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
    return tests;
}
}

角度控制器:

var TestsController = function($scope, $http) {
$scope.test = {};
$scope.editMode = false;

$scope.fetchTestList = function() {
    $http.get('tests/testslist.json').success(function(testList){
        $scope.tests = testList;
    });
};

$scope.resetTestForm = function() {
    $scope.resetError();
    $scope.test = {};
    $scope.editMode = false;
};

$scope.resetError = function() {
    $scope.error = false;
    $scope.errorMessage = '';
};

$scope.setError = function(message) {
    $scope.error = true;
    $scope.errorMessage = message;
};

$scope.fetchTestList()();

$scope.predicate = 'id';
};

休眠配置:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>        
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property> 

<mapping class="com.packt.app.model.Test"/>   
 </session-factory>
</hibernate-configuration>

即使关闭MySql Server,应用程序也可以正常运行。 在html视图中,向我显示列表计数“ getTests”为0。看起来应用程序未与MySQL Server连接。 怎么了? 请帮我。

休眠配置中的方言缺少L

我认为应该是mysqlDialect。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM