2016-03-04 1 views
1

Я новичок с весной, и теперь я обращаюсь к базе данных и показываю результаты в jsp. Это файл XML я использую для подключения к базе данных:Доступ к базе данных с Spring и Jdbc

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 

<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 

    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://192.168.1.11:3306/databasename" /> 
    <property name="username" value="****" /> 
    <property name="password" value="****" /> 
</bean> 

<bean id="Am_facultyentityDAO" class="com.bdAlmamater.model.Am_facultyentityJdbcDAO"> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 
<bean id="Am_campusentityDAO" class="com.bdAlmamater.model.Am_campusentityJdbcDAO"> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 

Это все работает нормально, но у меня есть много таблиц в моей базе данных, и я хотел бы знать, если я должен поставить для каждого стола примерно так:

<bean id="Am_campusentityDAO" class="com.bdAlmamater.model.Am_campusentityJdbcDAO"> 
    <property name="dataSource" ref="dataSource" /> 
</bean> 

или это более короткий способ написать его? Заранее спасибо.

+1

Это использует версию Spring, которая десять лет назад. Посмотрите на Spring Boot. – chrylis

ответ

1

Вам не нужно объявлять классы в бобе конфигурационного файл каждый раз, вы можете использовать типы стерео весны (как компонент, обслуживание, Repository и контроллер), чтобы определить классы.

Для того, чтобы использовать эти стереотипы,

Вы должны сначала указать

<content:componet-scan base-package="com.bdAlmamater.model" > 

и определить пакеты для сканирования (т.е. пакеты, в которых ваш стерео тип аннотированный класс существует)

Если вы выровняйте нижнюю версию пружины (например, 2.x), вам необходимо указать

<context:annotation-config> 

Чтобы пружина идентифицировала аннотации, если вы используете более высокие версии (3.x, 4.x) весны, вам не нужно указывать ее.

, а затем аннотировать классы с @Repository стереотипа (Потому что вы usign его на слое Dao)

я.е

@Repository 
class Am_campusentityJdbcDAO 

, если это необходимо какая-либо зависимость, вам просто нужно вводить их с помощью @Autowired аннотацию

в вашем случае

@Autowired 
Datasource datasource; 
+0

Благодарим за решение! : D – Yckeb

2

Вы должны подумать об использовании Hibernate/JPA и/или данных Spring JPA.

Таким образом вам не придется писать глубокие DAO, а просто простые интерфейсы с обычным наименованием, возможно, с некоторыми пользовательскими запросами.

Следующие две ссылки помогут вам:

Или, если вы хотите использовать Spring контекста XML, чтобы иметь план приложения, вы могли бы просто использовать:

<bean id="Am_campusentityDAO" class="com.bdAlmamater.model.Am_campusentityJdbcDAO"/> 

и autowire поле DataSource :

@Autowired 
Datasource datasource; 
+0

Весна Данные действительно здорово! – Ward

+0

@sahel как это могло бы ответить на вопрос? вы должны, скорее всего, дать ответ вместо предоставления альтернатив. Потому что я не хочу использовать Hibernate или Jpa – Pragnani

+0

@PragnaniKinnera Вопрос был: «или есть более короткий путь?» Это подразумевает альтернативу, потому что нет никаких ограничений AFAIK. Позвольте мне отредактировать ответ и добавить еще одну альтернативу. – sahel

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