Spring JDBC、Spring DAO 和 Spring ORM是什么
时间: 2023-08-23 21:47:37 浏览: 66
Spring JDBC是Spring框架中用于简化JDBC编程的模块,它提供了一组模板类和辅助类,使得JDBC编程更加快速、简单、安全和易于维护。
Spring DAO是Spring框架中用于支持数据访问对象(Data Access Object)的模块,它提供了一组模板类和辅助类,使得开发者可以更加方便地实现数据访问对象,同时也提供了对数据访问的事务管理支持。
Spring ORM是Spring框架中用于支持对象关系映射(Object Relational Mapping)的模块,它提供了对多种ORM框架(如Hibernate、MyBatis等)的支持,同时也提供了对数据访问的事务管理支持。它可以让开发者更加方便地使用ORM框架进行数据库操作。
相关问题
spring orm使用教程
Spring ORM 是 Spring 框架的一个模块,它提供了一种方便的方式来集成 ORM 框架,如 Hibernate、JPA 等,以便于在 Spring 应用中使用 ORM 技术。下面是 Spring ORM 的使用教程:
1. 添加依赖
在 Maven 或 Gradle 中添加 Spring ORM 依赖:
Maven:
```xml
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.3.8</version>
</dependency>
```
Gradle:
```groovy
implementation 'org.springframework:spring-orm:5.3.8'
```
2. 配置数据源
在 Spring 应用中使用 ORM 技术,需要先配置数据源。可以使用 Spring 提供的 DriverManagerDataSource 或者使用连接池技术,如 C3P0。
例如,配置 DriverManagerDataSource:
```xml
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean>
```
3. 配置 ORM 框架
Spring ORM 提供了对多种 ORM 框架的集成支持,如 Hibernate、JPA 等。在使用之前,需要先配置相应的 ORM 框架。
例如,配置 Hibernate:
```xml
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="com.example.entity" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
```
4. 配置事务管理器
Spring ORM 还提供了事务管理器,通过它可以方便地管理事务。在 Spring 应用中使用 ORM 技术,需要先配置事务管理器。
例如,配置 Hibernate 的事务管理器:
```xml
<bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
```
5. 配置 DAO 层
DAO 层是 ORM 框架和业务逻辑层之间的桥梁。在 Spring 应用中使用 ORM 技术,需要先配置 DAO 层。
例如,配置 Hibernate 的 DAO 层:
```java
@Repository
public class UserDaoImpl extends HibernateDaoSupport implements UserDao {
public User findUserById(int id) {
return getHibernateTemplate().get(User.class, id);
}
public void saveUser(User user) {
getHibernateTemplate().save(user);
}
public void updateUser(User user) {
getHibernateTemplate().update(user);
}
public void deleteUser(User user) {
getHibernateTemplate().delete(user);
}
}
```
6. 使用 ORM 技术
配置完成后,就可以在业务逻辑层中使用 ORM 技术了。
例如,使用 Hibernate:
```java
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
public User findUserById(int id) {
return userDao.findUserById(id);
}
public void saveUser(User user) {
userDao.saveUser(user);
}
public void updateUser(User user) {
userDao.updateUser(user);
}
public void deleteUser(User user) {
userDao.deleteUser(user);
}
}
```
以上就是 Spring ORM 的使用教程,希望能对你有所帮助。
spring boot xml与dao 映射关系
在 Spring Boot 中,我们可以使用 MyBatis 或者 Hibernate 等 ORM 框架来进行数据库操作。下面分别介绍一下这两种框架在 Spring Boot 中的使用方法。
1. 使用 MyBatis
MyBatis 是一种半自动化的 ORM 框架,它与 Spring Boot 集成非常简单。
第一步,我们需要在 pom.xml 中添加 MyBatis 和 MyBatis-Spring 的依赖:
```xml
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.7</version>
</dependency>
</dependencies>
```
第二步,我们需要在 application.properties 文件中配置数据库连接信息:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
```
第三步,我们需要编写 MyBatis 的映射文件。例如,我们有一个 User 表,对应的实体类为 User,那么我们可以在 resources/mapper 目录下创建 UserMapper.xml 文件,包含如下内容:
```xml
<mapper namespace="com.example.demo.mapper.UserMapper">
<select id="getUserById" parameterType="long" resultType="com.example.demo.entity.User">
select * from user where id = #{id}
</select>
<insert id="insertUser" parameterType="com.example.demo.entity.User">
insert into user(id, name, age) values (#{id}, #{name}, #{age})
</insert>
</mapper>
```
第四步,我们需要编写 UserMapper 接口,用于调用 MyBatis 的映射文件。例如:
```java
@Repository
public interface UserMapper {
User getUserById(long id);
void insertUser(User user);
}
```
第五步,我们需要在 Spring Boot 应用程序中注入 UserMapper,并使用它进行数据库操作。例如:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getUserById(long id) {
return userMapper.getUserById(id);
}
@Override
public void insertUser(User user) {
userMapper.insertUser(user);
}
}
```
2. 使用 Hibernate
Hibernate 是一种全自动化的 ORM 框架,它与 Spring Boot 集成也非常简单。
第一步,我们需要在 pom.xml 中添加 Hibernate 的依赖:
```xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.5.4</version>
</dependency>
</dependencies>
```
第二步,我们需要在 application.properties 文件中配置数据库连接信息:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
```
第三步,我们需要编写实体类,用于映射数据库表。
```java
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String name;
private int age;
// getters and setters
}
```
第四步,我们需要编写 UserRepository 接口,用于调用 Hibernate 进行数据库操作。例如:
```java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
```
第五步,我们需要在 Spring Boot 应用程序中注入 UserRepository,并使用它进行数据库操作。例如:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
public User getUserById(long id) {
return userRepository.findById(id).orElse(null);
}
@Override
public void insertUser(User user) {
userRepository.save(user);
}
}
```