[size=medium][color=blue] 最近学了下Spring JDBC 这块,发现还是蛮有趣的。现在展示一个入门基本的实例吧!
第一步: create 一个table
引用
CREATE TABLE Student(
ID INT NOT NULL AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
PRIMARY KEY (ID)
);
第二步:引入spring的包。
第三步:编写一个实体类。Student 实体类
public class Student {
private Integer age;
private String name;
private Integer id;
public void setAge(Integer age) {
this.age = age;
}
public Integer getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getId() {
return id;
}
}
第四步。编写一个操作该实体的接口,StudentDao
public interface StudentDAO {
public void setDataSource(DataSource ds);
public void create(String name, Integer age);
public Student getStudent(Integer id);
public List<Student> listStudents();
public void delete(Integer id);
public void update(Integer id, Integer age);
}
第五步。编写一个Mapper类
public class StudentMapper implements RowMapper<Student> {
public Student mapRow(ResultSet rs, int rowNum) throws SQLException {
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setAge(rs.getInt("age"));
return student;
}
第六步。编写一个实现StudentDao的类,这里就要用到SpringJDBC了。
public class StudentJDBCTemplate implements StudentDAO {
private DataSource dataSource;
private JdbcTemplate jdbcTemplateObject;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
this.jdbcTemplateObject = new JdbcTemplate(dataSource);
}
public void create(String name, Integer age) {
String SQL = "insert into Student (name, age) values (?, ?)";
jdbcTemplateObject.update( SQL, name, age);
System.out.println("Created Record Name = " + name + " Age = " + age);
return;
}
public Student getStudent(Integer id) {
String SQL = "select * from Student where id = ?";
Student student = jdbcTemplateObject.queryForObject(SQL,
new Object[]{id}, new StudentMapper());
return student;
}
public List<Student> listStudents() {
String SQL = "select * from Student";
List <Student> students = jdbcTemplateObject.query(SQL,
new StudentMapper());
return students;
}
public void delete(Integer id){
String SQL = "delete from Student where id = ?";
jdbcTemplateObject.update(SQL, id);
System.out.println("Deleted Record with ID = " + id );
return;
}
public void update(Integer id, Integer age){
String SQL = "update Student set age = ? where id = ?";
jdbcTemplateObject.update(SQL, age, id);
System.out.println("Updated Record with ID = " + id );
return;
}
}
第七步。编写测试类
public class TestMainApp {
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
StudentJDBCTemplate studentJDBCTemplate =
(StudentJDBCTemplate)context.getBean("studentJDBCTemplate");
System.out.println("------Records Creation--------" );
studentJDBCTemplate.create("Zara", 11);
studentJDBCTemplate.create("Nuha", 2);
studentJDBCTemplate.create("Ayan", 15);
System.out.println("------Listing Multiple Records--------" );
List<Student> students = studentJDBCTemplate.listStudents();
for (Student record : students) {
System.out.print("ID : " + record.getId() );
System.out.print(", Name : " + record.getName() );
System.out.println(", Age : " + record.getAge());
}
System.out.println("----Updating Record with ID = 2 -----" );
studentJDBCTemplate.update(2, 20);
System.out.println("----Listing Record with ID = 2 -----" );
Student student = studentJDBCTemplate.getStudent(2);
System.out.print("ID : " + student.getId() );
System.out.print(", Name : " + student.getName() );
System.out.println(", Age : " + student.getAge());
}
}
最后一步配置applicationContext文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<!-- 测试数据库-->
<property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/test" />
<property name="maxPoolSize" value="30" />
<property name="minPoolSize" value="5" />
<property name="idleConnectionTestPeriod" value="60" />
<property name="acquireIncrement" value="5" />
<property name="maxStatements" value="300" />
<property name="properties">
<props>
<prop key="user">root</prop>
<prop key="password">password</prop>
</props>
</property>
</bean>
<!-- Definition for studentJDBCTemplate bean -->
<bean id="studentJdbcTempalte" class="com.spring.jdbc.example.lession1.JdbcTemplate.StudentJDBCtemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
</beans>
现在就可以简单的使用Spring jdbc 进行CRUD操作了。
注意这样用DateSource,其实可以直接通过配置Spring jdbcTemplate来实现。这样通过加载配置文件就可以使用到jdbcTemplate。我上面是使用DataSource。
如果直接使用jdbcTemplate的话,配置及可以写成
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg ref="dataSource" />
</bean>
<bean id="studentJdbcTempalte" com.spring.jdbc.example.lession1.JdbcTemplate.StudentJDBCtemplate">
<property name="jdbcTemplate" ref="jdbcTemplate" />
</bean>
两种不同的引人其实都一样的效果。[/color][/size]
分享到:
相关推荐
**Spring 框架概述** Spring 是一个开源的 Java 应用框架,它以其轻量级、模块化和面向切...希望这篇入门笔记能为你开启 Spring 的探索之旅,欢迎在学习过程中发现错误或有任何疑问时,通过博主的博客进行交流和指正。
【Spring入门笔记】主要介绍了Spring框架的基础知识,包括Spring的核心概念、Bean的配置与作用域、依赖注入、SpringAop和SpringJdbc,以及事务声明。以下是对这些知识点的详细说明: 1. **什么是Spring?** Spring...
在本次的Java Spring框架学习笔记中,将对Spring框架的核心概念进行详细解析,包括Spring的 IOC(控制反转)、AOP(面向切面编程)、jdbcTemplate、事务管理、Spring5新特性以及与Mybatis的整合。本学习笔记提供了...
Spring事务管理的核心接口是PlatformTransactionManager,Spring为不同数据访问技术提供了具体的事务管理实现,如JDBC、Hibernate、JPA等。Spring事务管理还提供了传播行为和隔离级别等事务属性配置,以满足不同业务...
6. **数据访问**:Spring对各种数据访问技术的支持,如JDBC、Hibernate、MyBatis等,以及Spring Data JPA和Spring Data MongoDB等高级特性的使用。 7. **Spring Boot**:Spring Boot简化了Spring应用的创建和运行,...
4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML标签笔记 9-Struts高级部分(1)(解决重复提交、上传组件)笔记 10-Struts高级部分(2)(常用Action...
Spring是一个全栈的Java/Java EE框架,它提供了从基础的IoC容器到高级应用如Spring MVC、Spring JDBC以及事务管理等全面的解决方案。IoC使得开发者能够将应用程序的控制权交由Spring管理,从而降低了组件之间的耦合...
4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML标签笔记 9-Struts高级部分(1)(解决重复提交、上传组件)笔记 10-Struts高级部分(2)(常用Action...
4-Struts入门笔记 005_Struts+DAO登陆 6-Struts标签-BEAN标签笔记 7-Struts标签 -LOGIC标签笔记 8-Struts标签- HTML标签笔记 9-Struts高级部分(1)(解决重复提交、上传组件)笔记 10-Struts高级部分(2)(常用Action...
本入门教程资料是针对初学者和求职者设计的,旨在帮助他们快速掌握 Spring 的基础和关键概念。 在提供的压缩包文件中,我们看到包含了一些以日期或课程编号命名的文件夹,比如 "6-09"、"6-13"、"6-07spring"、"6-08...
本总结笔记是Spring、Mybatis、SpringMVC的综合学习资源,涵盖了这些框架的基本概念、配置方式、优点与适用场景,以及它们各自组件和功能点的详细解释。适用于初学者入门学习,同时也可以作为面试时的参考资料,帮助...
Spring框架是Java开发中的一个核心框架,以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP...通过Spring教程和笔记,你可以深入理解并运用这些知识,提升你的Java开发能力。
Spring框架是Java开发中的核心组件,它为应用程序提供了一个全面的基础设施,支持bean的依赖注入、面向切面编程(AOP)...通过阅读"Spring笔记整理",你将能更深入地理解Spring的每个组件,并能在实际项目中熟练运用。
4-Struts入门笔记.pdf 44登陆案例(Struts+DAO+Hibernate)笔记.pdf 45-Struts+Hibernate完成分页笔记.pdf 46-Spring入门.pdf 47-Spring_IOC-v(上)笔记.pdf 47Spring_IOC(下)笔记.pdf 48Spring_AOP笔记.pdf 49-...
通过以上内容,我们可以了解到Spring的基本概念、优势和入门实践。随着学习深入,Spring的更多高级特性,如Spring Boot、Spring Data、Spring Security等,都会进一步提升开发效率和应用的健壮性。
在`13-Hibernate入门(上)笔记.pdf`至`19-Hibernate实体层设计笔记.pdf`中,详细介绍了Hibernate的配置、实体类的创建、映射文件的编写、HQL(Hibernate Query Language)的使用,以及如何处理复合主键等复杂情况。...
Spring的另一个重要模块是数据访问/集成层,它提供了对JDBC、ORM(Object-Relational Mapping)框架如Hibernate、MyBatis的支持。通过DataSource的配置,我们可以方便地管理数据库连接,使用JdbcTemplate或...
15、MySQL和JDBC 16、前端:Html5 17、前端:CSS3 18、前端:JavaScript、jQuery 19、JavaWeb 20、MyBatis 21、Spring 22、SpringMVC 23、大前端串讲 24、Vue精讲 25、SpringBoot入门及原理 26、...
“spring入门笔记源码.rar”可能包含了与教程对应的示例代码,读者可以下载并跟随代码实践,以加深理解和掌握。 总的来说,Spring入门的学习涵盖了一系列Java企业级开发的关键技能,从基础的框架配置到复杂的业务...