User:IOIOCL
<dependency>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
@Configuration public class DataSourceConfig {
@Primary @Bean @Qualifier("dataSource") public DataSource dataSource(DataSourceProperties dataSourceProperties) { return dataSourceProperties.initializeDataSourceBuilder().build(); }
}
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component @ConfigurationProperties(prefix = "custom.datasource") public class DatabaseProperties {
private String url; private String username; private String password; // Getters and setters
}
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param;
public interface UserRepository extends JpaRepository<User, Long> {
@Query("SELECT u FROM User u WHERE u.username = :username") User findByUsername(@Param("username") String username);
@Query("SELECT u FROM User u WHERE u.email = :email") List<User> findByEmail(@Param("email") String email);
@Query("SELECT u FROM User u WHERE u.age > :age") List<User> findByAgeGreaterThan(@Param("age") int age);
}
<dependency>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency> <dependency>
<groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope>
</dependency>
spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password spring.jpa.hibernate.ddl-auto=update
@Entity
public class User {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username; private String email; // Getters and setters
}
public interface UserRepository extends JpaRepository<User, Long> {
// You can define custom queries here if needed
}
@Service public class UserService {
private final UserRepository userRepository;
@Autowired public UserService(UserRepository userRepository) { this.userRepository = userRepository; }
public User saveUser(User user) { return userRepository.save(user); }
public List<User> getAllUsers() { return userRepository.findAll(); }
custom.datasource.url=jdbc:mysql://localhost:3306/mydb custom.datasource.username=root custom.datasource.password=mypassword
import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource;
@Configuration public class DataSourceConfig {
private final DatabaseProperties databaseProperties;
public DataSourceConfig(DatabaseProperties databaseProperties) { this.databaseProperties = databaseProperties; }
@Bean public DataSource dataSource() { return DataSourceBuilder .create() .url(databaseProperties.getUrl()) .username(databaseProperties.getUsername()) .password(databaseProperties.getPassword()) .build(); }
}
import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.Configuration; import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@Configuration @EntityScan(basePackages = "com.example.domain") @EnableJpaRepositories(basePackages = "com.example.repository", entityManagerFactoryRef = "entityManagerFactory", transactionManagerRef = "transactionManager") public class JpaConfig { }