首先,数据库是这样的,很简单。
当然,要引入spring的包,这里我全部导入了,省事。
applicationContext.xml是这样的:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
- <bean id="test" class="jdbc.Test">
- <property name="dataSource" ref="dataSource"></property>
- </bean>
- <bean id="dataSource"
- class="org.springframework.jdbc.datasource.DriverManagerDataSource">
- <property name="driverClassName" value="com.mysql.jdbc.Driver" />
- <property name="url" value="jdbc:mysql://localhost:3306/testspring" />
- <property name="username" value="root" />
- <property name="password" value="" />
- </bean>
- </beans>
User.java是这样的:
- package jdbc;
- public class User {
- private int id;
- private String name;
- private String password;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
下面来对比一下三种写法:
1、spring
- package jdbc;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.SQLException;
- import javax.sql.DataSource;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- public class Test {
- private DataSource dataSource;
- public void setDataSource(DataSource dataSource) {
- this.dataSource = dataSource;
- }
- public void insert(User u) {
- String sql = "insert into _user " + "values(null, ?, ?)";//普通的sql语句
- Connection conn = null;
- try {
- conn = dataSource.getConnection();
- PreparedStatement ps = conn.prepareStatement(sql);
- ps.setString(1, u.getName());
- ps.setString(2, u.getPassword());
- ps.executeUpdate();
- ps.close();
- } catch (SQLException e) {
- throw new RuntimeException(e);
- } finally {
- if (conn != null) {
- try {
- conn.close();
- } catch (SQLException e) {
- }
- }
- }
- }
- public static void main(String[] args) {
- ApplicationContext ctx = new ClassPathXmlApplicationContext(
- "applicationContext.xml");
- Test t = (Test) ctx.getBean("test");
- User u = new User();
- u.setName("dd");
- u.setPassword("dd");
- t.insert(u);
- }
- }
运行结果是这样的:
2、JdbcTemplate
- package jdbc;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.SQLException;
- import javax.sql.DataSource;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import org.springframework.jdbc.core.JdbcTemplate;
- public class Test {
- private DataSource dataSource;
- public void setDataSource(DataSource dataSource) {
- this.dataSource = dataSource;
- }
- public void insert(User u) {
- String sql = "insert into _user " + "values(null, ?, ?)";//普通的sql语句
- JdbcTemplate template = new JdbcTemplate(dataSource);
- template.update(sql, new Object[]{u.getName(), u.getPassword()});
- }
- public static void main(String[] args) {
- ApplicationContext ctx = new ClassPathXmlApplicationContext(
- "applicationContext.xml");
- Test t = (Test) ctx.getBean("test");
- User u = new User();
- u.setName("dd");
- u.setPassword("dd");
- t.insert(u);
- }
- }
可以看得出简单了很多,不用Connection了。
3、JdbcDaoSupport
这个更简单,不用new JdbcTemplate了。
- package jdbc;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import org.springframework.jdbc.core.support.JdbcDaoSupport;
- public class Test extends JdbcDaoSupport {
- //JdbcDaoSupport类已经有了public final void setDataSource(DataSource dataSource)了
- //不用重写也不能重写
- public void insert(User u) {
- String sql = "insert into _user " + "values(null, ?, ?)";//普通的sql语句
- this.getJdbcTemplate().update(sql, new Object[]{u.getName(), u.getPassword()});
- }
- public static void main(String[] args) {
- ApplicationContext ctx = new ClassPathXmlApplicationContext(
- "applicationContext.xml");
- Test t = (Test) ctx.getBean("test");
- User u = new User();
- u.setName("dd");
- u.setPassword("dd");
- t.insert(u);
- }
- }
三种方法哪一种更简单一目了然。
相关推荐
在Spring框架中,`JdbcTemplate`和`JdbcDaoSupport`是两个重要的组件,它们用于简化Java数据库连接(JDBC)的操作,提高了代码的可读性和可维护性。本篇文章将详细阐述这两个类的核心概念、使用场景以及如何在实际...
### Spring中的JdbcTemplate #### JdbcTemplate概述 JdbcTemplate是Spring框架提供的一种用于简化JDBC编程的对象。通过封装原生的JDBC API,JdbcTemplate不仅提高了代码的可读性和可维护性,还帮助开发者避免了...
在Spring框架中,可以为每个DAO配置单独的`JdbcTemplate`实例,或者让DAO类继承`JdbcDaoSupport`类,这样可以通过调用`getJdbcTemplate()`方法来获取`JdbcTemplate`实例。书中提到的做法是为每个DAO添加一个`...
2. 然后,创建一个DAO(Data Access Object)层,继承自JdbcDaoSupport类,Spring会自动注入JdbcTemplate实例。 3. 在DAO中,你可以定义方法,如`selectUsers()`、`insertUser()`等,这些方法内部调用JdbcTemplate的...
在Spring框架中,`JdbcDaoSupport`是一个非常重要的类,它是Spring为简化数据库操作而提供的基础支持类。本文将深入探讨如何利用`JdbcDaoSupport`进行批量插入数据的操作,以及其背后的原理和源码分析。 首先,`...
在Java的Spring框架中,`JdbcDaoSupport`是一个非常重要的工具类,它为基于JDBC的数据访问对象(DAO)提供了一种简化数据库操作的方法。这个类是`org.springframework.jdbc.core.support`包下的一个抽象基类,它为...
这里,`dataSource`是一个已定义的数据源bean,Spring会自动将它注入到`myJdbcDao` bean的`dataSource`属性中,从而确保`JdbcDaoSupport`能够正确地创建和初始化`JdbcTemplate`。 总结来说,`JdbcDaoSupport`是...
2. **使用方式**:通过继承SimpleJdbcDaoSupport,我们可以获取到一个JdbcTemplate实例,通过这个实例进行数据库操作。 3. **主要方法**:`update(String sql, Object... args)`用于更新数据,`queryForObject...
**Spring JdbcDaoSupport详解:** `SpringJdbcDaoSupport`是Spring提供的一个抽象类,它提供了对JDBC操作的基本支持。继承这个类的DAO可以方便地使用Spring的JdbcTemplate进行数据库操作,而无需手动管理数据库连接...
本文将深入探讨Spring对JDBCTemplate和HibernateTemplate的整合使用方法,以及JdbcDaoSupport和HibernateDaoSupport的支持。 **JdbcTemplate** JdbcTemplate是Spring提供的一个简单、灵活且强大的JDBC抽象层。它...
- **Spring JDBC**:提供JdbcTemplate和JdbcDaoSupport等工具类简化JDBC操作,同时支持声明式事务管理。 - **Spring+Hibernate**:Spring整合Hibernate,通过HibernateTemplate进行数据库操作,并提供声明式事务...
Spring的JdbcDaoSupport是JdbcTemplate的一个抽象基类,为DAO层提供了便捷的支持。开发人员可以通过继承JdbcDaoSupport,自动获得JdbcTemplate实例,无需手动初始化。这样,DAO类可以专注于业务逻辑,而无需关心底层...
JdbcTemplate是Spring JDBC模块的基石,它提供了一系列预定义的SQL执行方法,如`queryForList`, `update`, `execute`等。这些方法自动处理了数据库连接的获取与释放,降低了代码的复杂度,同时也提高了代码的健壮性...
Spring提供了`JdbcDaoSupport`类,它已经包含了`JdbcTemplate`和`DataSource`的属性。只需继承`JdbcDaoSupport`,并注入`DataSource`,Spring会自动创建`JdbcTemplate`实例。 ```java // Java代码 public class ...
JdbcDaoSupport、使用 NamedParameterJdbcTemplate、Spring 的声明式事务、事务的属性(传播行为、隔离级别、回滚属性、只读属性、过期时间)、使用 XML 文件的方式配置事务、整合 Hibernate、整合 Struts2 等。
### Spring JDBC 模板类(JdbcTemplate)使用详解 #### 一、Spring JDBC 概述 Spring 提供了一个强大的模板类 `JdbcTemplate` 来简化 JDBC 操作。通过使用 `JdbcTemplate`,开发者能够减少大量的样板代码,提高...
3. **自动注入与便利获取**:Spring还提供了`JdbcDaoSupport`等类,这些类可以方便地进行数据源的自动注入,并且很容易地获取到模板对象,进一步减少了代码量。 #### 三、Spring与Hibernate的集成 **Hibernate** ...
它包括JdbcTemplate和JdbcDaoSupport等类,帮助处理SQL语句和事务管理。 6. **Spring ORM**:对象关系映射模块,与各种ORM框架(如Hibernate、JPA)集成,简化了数据库操作。通过Spring,可以统一处理数据访问异常...
Spring提供了JdbcDaoSupport和JpaDaoSupport等抽象类,以及JdbcTemplate、SimpleJdbcInsert等工具类,可以方便地与ibatis结合,实现DAO层的操作。 ### 示例代码分析 在给定的部分内容中,首先介绍了导入所需的包,...
- 继承`JdbcDaoSupport`类:该类内部已经实现了`JdbcTemplate`的注入,可以通过`getJdbcTemplate()`方法直接获取。 - **HibernateTemplate** - **特点**: - 对Hibernate进行了封装,可以自动管理Session的生命...