1. Hibernate
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "username")
private String username;
}
public class UserService {
private EntityManager entityManager;
public User getUserById(Long id) {
return entityManager.find(User.class, id);
}
public void saveUser(User user) {
entityManager.persist(user);
}
}
2. MyBatis
<!-- UserMapper.xml -->
<mapper namespace="com.example.UserMapper">
<select id="getUserById" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<insert id="saveUser" parameterType="User">
INSERT INTO user (username) VALUES (#{username})
</insert>
</mapper>
public interface UserMapper {
User getUserById(Long id);
void saveUser(User user);
}
public class UserService {
private SqlSessionFactory sqlSessionFactory;
public User getUserById(Long id) {
try (SqlSession session = sqlSessionFactory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
return mapper.getUserById(id);
}
}
public void saveUser(User user) {
try (SqlSession session = sqlSessionFactory.openSession()) {
UserMapper mapper = session.getMapper(UserMapper.class);
mapper.saveUser(user);
session.commit();
}
}
}
3. Spring Data JPA
public interface UserRepository extends JpaRepository<User, Long> {
List<User> findByUsername(String username);
}
public class UserService {
private UserRepository userRepository;
public User getUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
public void saveUser(User user) {
userRepository.save(user);
}
public List<User> getUsersByUsername(String username) {
return userRepository.findByUsername(username);
}
}