JavaWeb 数据库操作:JDBC 和 ORM 框架详解
JavaWeb 对数据库操作主要使用 JDBC 和 ORM 框架两种方式。
- JDBC
JDBC (Java Database Connectivity) 是 Java 语言访问数据库的标准 API。通过 JDBC 可以实现对关系型数据库的连接、查询、插入、更新、删除等操作。
JDBC 的使用步骤如下:
1)加载数据库驱动程序 2)建立数据库连接 3)创建 Statement 对象 4)执行 SQL 语句 5)处理结果集 6)关闭数据库连接
示例代码:
Class.forName('com.mysql.jdbc.Driver');
Connection conn = DriverManager.getConnection('jdbc:mysql://localhost:3306/test', 'root', '123456');
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery('select * from user');
while (rs.next()) {
System.out.println(rs.getString('username'));
}
rs.close();
stmt.close();
conn.close();
- ORM 框架
ORM (Object-Relational Mapping) 框架是一种将对象模型和关系型数据库模型进行映射的技术,可以避免编写大量的 SQL 语句,简化开发流程。
常用的 ORM 框架有 Hibernate、MyBatis 等。
以 Hibernate 为例,使用步骤如下:
1)配置 Hibernate 环境 2)定义实体类,并映射到数据库表 3)配置 Hibernate 映射文件 4)编写 DAO 层接口和实现类 5)编写业务逻辑层
示例代码:
实体类:
@Entity
@Table(name='user')
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String username;
private String password;
//getter 和 setter
}
DAO 层:
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private SessionFactory sessionFactory;
private Session getCurrentSession() {
return sessionFactory.getCurrentSession();
}
@Override
public User findById(int id) {
return (User) getCurrentSession().get(User.class, id);
}
@Override
public void save(User user) {
getCurrentSession().save(user);
}
@Override
public void delete(User user) {
getCurrentSession().delete(user);
}
@Override
public void update(User user) {
getCurrentSession().update(user);
}
@Override
public List<User> findAll() {
Query query = getCurrentSession().createQuery('from User');
return query.list();
}
}
业务逻辑层:
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User findById(int id) {
return userDao.findById(id);
}
@Override
public void save(User user) {
userDao.save(user);
}
@Override
public void delete(User user) {
userDao.delete(user);
}
@Override
public void update(User user) {
userDao.update(user);
}
@Override
public List<User> findAll() {
return userDao.findAll();
}
}
原文地址: https://www.cveoy.top/t/topic/jomB 著作权归作者所有。请勿转载和采集!