2015-04-13 4 views
-3

У меня есть простой проект, основанный на this guide. Я создал простой интерфейс REST, и я хочу, чтобы он использовал мою базу данных. Я добавил Hibernate в зависимости и создал класс DAO. Я использую Spring Tool-Suite для IDE. Насколько я понимаю, я должен добавить некоторые бобы, чтобы рассказать классам о том, что использовать, но я не понимаю, как это сделать. Вот мои занятия.Как подключить Spring с базой данных MySQL?

Application.java

package com.learnspring.projectfirst; 

@SpringBootApplication 
public class Application { 

    public static void main(String[] args) { 
      SpringApplication.run(Application.class, args); 
     } 
} 

Marker.java

package com.learnspring.projectfirst; 

@Entity 
public class Marker { 

    @Id 
    @Column 
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private long id; 
    @Column 
    private double longitude; 
    @Column 
    private double latitude; 

    @Column 
    private String address; 

    public Marker() { 
     // Empty constructor 
    } 

    public Marker(long id, double longitude, double latitude, String address) { 
     this.id = id; 
     this.longitude = longitude; 
     this.latitude = latitude; 
     this.address = address; 
    } 

    //Getters and Setters 
} 

MarkerController.java

package com.learnspring.projectfirst.controller; 

@Controller 
public class MarkerController { 
    private Logger logger = Logger.getLogger(MarkerController.class.getName()); 
    @Autowired 
    private MarkerServiceImplementation markerService; 

    @RequestMapping(value="/markers", method=RequestMethod.GET) 
    public @ResponseBody List<Marker> getMarkers(@RequestParam(value="city", defaultValue="") String city) { 
     return this.markerService.getAllMarkers(); 
    } 

    @RequestMapping(value="/markers/new", method=RequestMethod.POST) 
    public @ResponseBody Marker addMarker(@RequestBody Marker marker) { 
     this.markerService.addMarker(marker); 
     return marker; 
    } 

} 

MarkerDaoImplementation.java

package com.learnspring.projectfirst.dao; 

@Repository 
public class MarkerDaoImplementation implements MarkerDaoInterface { 

    @Autowired 
    private SessionFactory sessionFactory; 

    @Override 
    public void addMarker(Marker marker) { 
     this.sessionFactory.getCurrentSession().save(marker); 
    } 

    @Override 
    public void deleteMarker(int markerId) { 
     this.sessionFactory.getCurrentSession().delete(this.getMarker(markerId)); 
    } 

    @Override 
    public Marker getMarker(int markerId) { 
     return (Marker) this.sessionFactory.getCurrentSession().get(Marker.class, markerId); 
    } 

    @Override 
    public List<Marker> getAllMarkers() { 
     return this.sessionFactory.getCurrentSession().createQuery("from Marker").list(); 
    } 

} 

MarkerServiceImplementation.java

package com.learnspring.projectfirst.service; 

@Service 
public class MarkerServiceImplementation implements MarkerServiceInterface { 
    @Autowired 
    private MarkerDaoImplementation markerDao; 

    @Transactional 
    public void addMarker(Marker marker) { 
     this.markerDao.addMarker(marker); 
    } 

    @Transactional 
    public void deleteMarker(int markerId) { 
     this.markerDao.deleteMarker(markerId); 
    } 

    @Transactional 
    public Marker getMarker(int markerId) { 
     return this.markerDao.getMarker(markerId); 
    } 

    @Transactional 
    public List<Marker> getAllMarkers() { 
     return this.markerDao.getAllMarkers(); 
    } 
} 

А вот структура файла:

enter image description here

Я понимаю, что я должен сказать свою программу базы данных имя и столбцы, используя бобы, но Я не понимаю, как это сделать. Как связать код Java с бобами? Извините, что я наклеил столько кода, я просто хотел убедиться, что у вас есть все необходимое. Заранее спасибо!

+0

Есть 10s образцов на GitHub. см. этот поиск https://www.google.com/search?q=site%3Agithub.com+spring+4+mysql – tgkprog

+0

Взгляните на Spring Boot [documentation] (http://docs.spring.io/spring -boot/документы/ток/ссылка/HTML/загрузка функция-sql.html). – kazbeel

ответ

0

Аннотации в классе «Маркер» определяют таблицу MySQL и имена столбцов (на основе класса и класса имен переменных). Табличное имя будет «маркером», с столбцами «id», «longitude», «latitude», «address».

Вы забыли наиболее важную часть вашего кода: конфигурацию пружины. он определяет, как экземпляр SessionFactory будет инициализирован, прежде чем вводится в ваш класс DAO. Здесь вы должны установить соответствующее соединение с сервером MySQL (например, с помощью JNDI ресурса)

+0

Да, я знаю об аннотациях в классе Marker. Где я должен добавить конфигурацию пружины, и должен ли я сделать что-то конкретное, чтобы сообщить моей программе о ее использовании? – definera

+0

Существует несколько альтернатив (конфигурация XML или java). Я не знаю о конфигурации весенней загрузки, но я думаю, вы можете использовать аннотацию (@Configuration) для этого – soylentgreen81

Смежные вопросы