Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Java Spring jpa存储库JNDI数据源_Java_Spring Mvc_Jpa_Spring Data_Jndi - Fatal编程技术网

Java Spring jpa存储库JNDI数据源

Java Spring jpa存储库JNDI数据源,java,spring-mvc,jpa,spring-data,jndi,Java,Spring Mvc,Jpa,Spring Data,Jndi,嘿,每个人都在使用spring MVC,我想将JPA存储库与JNDI数据源集成,我有一个没有JPA存储库的应用程序这是我的代码: 用于创建我的数据源的mvcConfiguration类: package net.codejava.spring.config; import javax.naming.NamingException; import javax.sql.DataSource; import net.codejava.spring.dao.UserDAO; import net.c

嘿,每个人都在使用spring MVC,我想将JPA存储库与JNDI数据源集成,我有一个没有JPA存储库的应用程序这是我的代码:

用于创建我的数据源的mvcConfiguration类:

package net.codejava.spring.config;

import javax.naming.NamingException;
import javax.sql.DataSource;

import net.codejava.spring.dao.UserDAO;
import net.codejava.spring.dao.UserDAOImpl;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jndi.JndiTemplate;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import   org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@ComponentScan(basePackages="net.codejava.spring")
@EnableWebMvc
public class MvcConfiguration extends WebMvcConfigurerAdapter{

@Bean
public ViewResolver getViewResolver(){
    InternalResourceViewResolver resolver = new InternalResourceViewResolver();
    resolver.setPrefix("/WEB-INF/views/");
    resolver.setSuffix(".jsp");
    return resolver;
}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}

@Bean
public UserDAO getUserDao() throws NamingException {
    JndiTemplate jndiTemplate = new JndiTemplate();
    DataSource dataSource = (DataSource)   jndiTemplate.lookup("java:comp/env/jdbc/postgres2");
    return new UserDAOImpl(dataSource);
}

}
我想用Jpa存储库替换的Dao层

package net.codejava.spring.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import javax.sql.DataSource;
import net.codejava.spring.model.User;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;

public class UserDAOImpl implements UserDAO {
private DataSource dataSource;

public UserDAOImpl(DataSource dataSource) {
    this.dataSource = dataSource;
}

@Override
public List<User> list() {
    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
    String sql = "SELECT * from users";
    List<User> listUser = jdbcTemplate.query(sql, new RowMapper<User>() {

        @Override
        public User mapRow(ResultSet rs, int rowNumber) throws SQLException  {
            User user = new User();
            user.setId(rs.getInt("id"));
            user.setUsername(rs.getString("username"));
            user.setEmail(rs.getString("email"));
            return user;
        }

    });
    return listUser;
}

}
包net.codejava.spring.dao;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.util.List;
导入javax.sql.DataSource;
导入net.codejava.spring.model.User;
导入org.springframework.jdbc.core.jdbc模板;
导入org.springframework.jdbc.core.RowMapper;
公共类UserDAOImpl实现UserDAO{
私有数据源;
public UserDAOImpl(数据源数据源){
this.dataSource=数据源;
}
@凌驾
公开名单(){
JdbcTemplate JdbcTemplate=新的JdbcTemplate(数据源);
String sql=“选择*来自用户”;
List listUser=jdbcTemplate.query(sql,新的行映射器(){
@凌驾
公共用户mapRow(ResultSet rs,int rowNumber)引发SQLException{
用户=新用户();
user.setId(rs.getInt(“id”);
user.setUsername(rs.getString(“用户名”);
user.setEmail(rs.getString(“email”);
返回用户;
}
});
返回列表用户;
}
}
和context.xml

<Context>

    <WatchedResource>WEB-INF/web.xml</WatchedResource>    
<Resource name="jdbc/postgres2" auth="Container"
      type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
      url="jdbc:postgresql://127.0.0.1:5432/mydb"
      username="postgres" password="root" maxActive="20" maxIdle="10" maxWait="-1"/>



 </Context>

WEB-INF/WEB.xml

谢谢你的指导

那么,是什么阻止了您这么做?您的问题是什么?您希望在代码中使用JPA实现而不是JdbcTemplate吗?你们的问题是什么?我想把JPA存储库和JNDI数据源集成起来,但我不知道如何集成!!!那么,是什么阻止了您这么做?您的问题是什么?您希望在代码中使用JPA实现而不是JdbcTemplate吗?你们的问题是什么?我想把JPA存储库和JNDI数据源集成起来,但我不知道如何集成!!!