CREATE TABLE Person(
ID int generated by default as identity (start with 1) not null,
FIRSTNAME VARCHAR(20) NOT NULL,
LASTNAME VARCHAR(20) NOT NULL,
PRIMARY KEY (ID)
);
package domainmodel;
public class Person {
private String firstName;
private String lastName;
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
package dao;
import java.util.List;
import javax.sql.DataSource;
import domainmodel.Person;
public interface IDao {
void setDataSource(DataSource ds);
void create(String firstName, String lastName);
List<Person> select(String firstname, String lastname);
List<Person> selectAll();
void deleteAll();
void delete(String firstName, String lastName);
}
package dao.mapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.ResultSetExtractor;
import domainmodel.Person;
public class PersonResultSetExtractor implements ResultSetExtractor {
@Override
public Object extractData(ResultSet rs) throws SQLException {
Person person = new Person();
person.setFirstName(rs.getString(1));
person.setLastName(rs.getString(2));
return person;
}
}
package dao.mapper;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.springframework.jdbc.core.RowMapper;
public class PersonRowMapper implements RowMapper {
@Override
public Object mapRow(ResultSet rs, int line) throws SQLException {
PersonResultSetExtractor extractor = new PersonResultSetExtractor();
return extractor.extractData(rs);
}
}
package dao;
import java.util.List;
import javax.sql.DataSource;
import org.springframework.jdbc.core.JdbcTemplate;
import dao.mapper.PersonRowMapper;
import domainmodel.Person;
public class DerbyDao implements IDao {
private DataSource dataSource;
public void setDataSource(DataSource ds) {
dataSource = ds;
}
public void create(String firstName, String lastName) {
JdbcTemplate insert = new JdbcTemplate(dataSource);
insert.update("INSERT INTO PERSON (FIRSTNAME, LASTNAME) VALUES(?,?)",
new Object[] { firstName, lastName });
}
public List<Person> select(String firstname, String lastname) {
JdbcTemplate select = new JdbcTemplate(dataSource);
return select
.query(
"select FIRSTNAME, LASTNAME from PERSON where FIRSTNAME = ? AND LASTNAME= ?",
new Object[] { firstname, lastname },
new PersonRowMapper());
}
public List<Person> selectAll() {
JdbcTemplate select = new JdbcTemplate(dataSource);
return select.query("select FIRSTNAME, LASTNAME from PERSON",
new PersonRowMapper());
}
public void deleteAll() {
JdbcTemplate delete = new JdbcTemplate(dataSource);
delete.update("DELETE from PERSON");
}
public void delete(String firstName, String lastName) {
JdbcTemplate delete = new JdbcTemplate(dataSource);
delete.update("DELETE from PERSON where FIRSTNAME= ? AND LASTNAME = ?",
new Object[] { firstName, lastName });
}
}
package test;
import java.util.List;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import dao.DerbyDao;
import domainmodel.Person;
public final class Main {
private Main() {
};
public static void main(String[] args) {
DerbyDao dao = new DerbyDao();
// Initialize the datasource, could /should be done of Spring
// configuration
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("org.apache.derby.jdbc.EmbeddedDriver");
dataSource.setUrl("jdbc:derby:c:\\temp\\database\\test01;create=true");
dataSource.setUsername("");
dataSource.setPassword("");
// Inject the datasource into the dao
dao.setDataSource(dataSource);
dao.create("Lars", "Vogel");
dao.create("Jim", "Knopf");
dao.create("Lars", "Man");
dao.create("Spider", "Man");
System.out.println("Now select and list all persons");
List<Person> list = dao.selectAll();
for (Person myPerson : list) {
System.out.print(myPerson.getFirstName() + " ");
System.out.println(myPerson.getLastName());
}
System.out
.println("Now select and list all persons with have the firstname Lars and lastname Vogel");
list = dao.select("Lars", "Vogel");
for (Person myPerson : list) {
System.out.print(myPerson.getFirstName() + " ");
System.out.println(myPerson.getLastName());
}
// Clean-up
dao.deleteAll();
}
}
分享到:
相关推荐
3. **数据访问对象(DAO)**:在Spring中,通常我们会创建一个DAO接口,定义增删改查的方法,然后实现这个接口。DAO层的作用是隔离业务逻辑和数据访问逻辑,提高代码的可测试性和可维护性。 4. **事务管理**:...
在“spring的增删改查”这个主题中,我们将深入探讨Spring如何与Oracle数据库配合,实现数据的CRUD(Create、Read、Update、Delete)操作。 1. **Spring JDBC模块** Spring提供了JDBC模块,使得开发者可以避免繁琐...
在"Spring+Hibernate 增删改查等基本操作"这个主题中,我们主要探讨的是如何整合这两个框架来实现数据持久化。以下是一些关键的知识点: 1. **Spring**: - **依赖注入(DI)**:Spring的核心特性之一,通过XML...
在实际的"SSH案例(增删改查)"项目中,开发者可能还使用了JDBC或者Spring的JdbcTemplate进行数据库交互,这些工具可以帮助简化数据库操作。同时,为了增强用户体验,界面可能使用了JSP(Java Server Pages)和HTML...
4. **数据访问层(DAO)**:创建UserDAO接口,定义增删改查的方法。然后用Spring的JdbcTemplate或MyBatis实现该接口,与数据库进行交互。 5. **服务层(Service)**:创建UserService接口,包含对UserDAO方法的包装...
在增删改查操作中,Spring通过它的数据访问集成(Data Access/Integration)模块,如JdbcTemplate或JPA,与数据库进行交互。 2. **Struts框架**:Struts是MVC(Model-View-Controller)设计模式的实现,主要负责...
在"增删改查"中,Spring可以提供数据访问对象(DAO)抽象,通过JdbcTemplate或MyBatis等工具与数据库交互,简化了数据库操作。 Hibernate是一个强大的对象关系映射(ORM)框架,它允许开发者用Java对象来操作数据库...
在"Spring3.x MySql 增删改查"项目中,初学者可以学习如何配置Spring的JDBC支持。这通常涉及以下步骤: 1. 添加Spring JDBC的依赖到项目构建配置(如Maven或Gradle)。 2. 创建DataSource bean,配置数据库连接参数...
在这个示例中,可能使用了Spring JDBC来连接数据库,执行SQL语句进行学生信息的增删改查。Spring JDBC提供了Template类,如JdbcTemplate或SimpleJdbcTemplate,它们封装了常见的数据库操作,使得代码更加简洁且易于...
在本文中,我们将深入探讨如何使用Spring框架,特别是Spring MVC和JdbcTemplate,来实现一个功能齐全的数据操作系统,包括单表的增删改查、条件查询以及分页功能,并涉及文件上传。对于初学者来说,这是一个很好的...
**Spring MVC + SimpleJdbcDaoSupport 增删改查小例子详解** Spring MVC 是一个广泛使用的Java Web框架,用于构建高效、灵活的Web应用程序。它提供了模型-视图-控制器(MVC)架构,使得开发者可以将业务逻辑、数据...
在这个“ssh_dome实现数据增删改查的示例”中,我们将深入理解如何使用这三个框架来实现数据库操作的核心功能。 首先,让我们从Struts开始。Struts是一个基于MVC(Model-View-Controller)设计模式的开源框架,它...
在这个"SSH增删改查+分页+图片上传"的项目中,我们将深入探讨这三个框架在实际应用中的结合以及它们如何协同工作来实现数据管理、页面展示和文件上传等功能。 首先,Struts1是一个基于MVC(Model-View-Controller)...
Spring MVC实现mysql数据库增删改查完整实例 本资源主要介绍了Spring MVC实现mysql数据库增删改查完整实例,从创建一个web项目开始,分享了项目结构以及具体Java代码和前端页面等相关内容,具有一定借鉴价值。 一...
本主题将深入探讨如何使用Java实现数据库的增删改查(CRUD)操作,同时结合多线程和网络编程来提升程序的效率和扩展性。我们将主要关注以下几个方面: 1. **JDBC(Java Database Connectivity)基础**: JDBC是...
在J2EE应用程序开发中,数据访问是...总的来说,J2EE连接Oracle数据库进行增删改查涉及了JDBC、Model2架构、DAO设计模式和数据库操作的多个层面。理解并熟练掌握这些知识,对于开发高效、健壮的企业级应用至关重要。
在增删改查操作中,Hibernate扮演了关键角色,它使得数据操作更加便捷且易于维护。 在本示例中,Struts的验证框架被用来确保用户输入的数据符合预设的规则,防止无效或恶意的数据进入系统。Struts的验证框架通过...
标题中的“可二次开发的java项目,简单的增删改查”指的是这个项目提供了一个基础的Java应用程序,设计用于与MySQL数据库交互,实现了基本的数据操作功能,即增(添加)、删(删除)、改(修改)和查(查询)。...
本项目旨在为初学者提供一个基础的增删改查(CRUD)操作和用户登录功能的实现教程。下面我们将深入探讨这个组合中的每个组件及其在实际开发中的作用。 **Maven** 是一个项目管理和综合工具,主要用于管理Java项目的...
在CRUD操作中,Spring通过IoC容器管理Bean的生命周期,可以方便地注入DAO(数据访问对象)和Service层组件,实现数据的增删改查。同时,Spring的JdbcTemplate或MyBatis支持简化数据库操作,使得SQL执行更加便捷和...