JavaWeb对数据库操作
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/ftd9 著作权归作者所有。请勿转载和采集!