`
hongmeikaile
  • 浏览: 116417 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Spring中使用JDBC做的增删改查

阅读更多

Spring中使用JDBC做的增删改查

    有三种方式使用JDBC。

1、使用JdbcTemplate类,实现使用JDBC ,参数是用object数组传递的

 

业务类:

public class UserDaoImpl implements UserDao{
//	定义一个Jdbc
	private JdbcTemplate jt;
//	必须有set 方法,因为是通过set方法装配的
	public void setJt(JdbcTemplate jt) {
		this.jt = jt;
	}
	@Override
	public void delete(int id) {
		// TODO Auto-generated method stub
		String sql="delete from user where id="+id;
		int temp=this.jt.update(sql);
		if(temp>0){
			System.out.println("删除成功!");
		}else{
			System.out.println("删除失败!");
		}
	}

	@Override
	public void insert(User entity) {
		// TODO Auto-generated method stub
		String sql="insert into user(name,age,sex) values(?,?,?)";
		Object obj[]={entity.getName(),entity.getAge(),entity.getSex()};
		int temp=this.jt.update(sql,obj);
		if(temp>0){
			System.out.println("插入成功!");
		}else{
			System.out.println("插入失败!");
		}
	}

	

	@Override
	public List<User> selectAll() {
		String sql="select * from user";
		List list=this.jt.query(sql,new RowMapper(){

			@Override
			public Object mapRow(ResultSet rs, int row) throws SQLException {
				// TODO Auto-generated method stub
				User user=new User();
				user.setId(rs.getInt("id"));
				user.setName(rs.getString("name"));
				user.setAge(rs.getInt("age"));
				user.setSex(rs.getString("sex"));				
				return user;
			}
			
		});
		System.out.println(list.size());
		// TODO Auto-generated method stub
		return list;
	}

	@Override
	public User selectById(int id) {
		// TODO Auto-generated method stub
		String sql="select id,name,age,sex from user where id="+id;
		User user=(User)jt.queryForObject(sql, new RowMapper(){

			@Override
			public Object mapRow(ResultSet rs, int arg1) throws SQLException {
				// TODO Auto-generated method stub
				User user=new User();
				user.setId(rs.getInt("id"));
				user.setName(rs.getString("name"));
				user.setAge(rs.getInt("age"));
				user.setSex(rs.getString("sex"));				
				return user;
			}
			
		});

		return user;
	}

	@Override
	public void update(User entity) {
		// TODO Auto-generated method stub
		String sql="update user set name=?,age=?,sex=? where id=?";
		Object obj[]={entity.getName(),entity.getAge(),entity.getSex(),entity.getId()};
		int temp=jt.update(sql,obj);
		if(temp>0){
			System.out.println("更新成功!");
		}else{
			System.out.println("更新失败!");
		}
	}

}
  

Xml中的部分代码:

	<!-- 分散配置 -->
	<context:property-placeholder location="jdbc.properties" />
	<!--  c3p0的数据源,设置它是为了配置jbdcTemplate-->
	<bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<!-- 驱动程序 -->
		<property name="driverClass">
			<value>${driverClass}</value>
		</property>
		<!-- 用户名 -->
		<property name="user">
			<value>${username}</value>
		</property>
		<!-- 密码 -->
		<property name="password">
			<value>${password}</value>
		</property>
		<!-- url -->
		<property name="jdbcUrl">
			<value>${url}</value>
		</property>
		<!-- 最大池数 -->
		<property name="maxPoolSize">
			<value>${c3p0.pool.max}</value>
		</property>
		<!-- 最小池数 -->
		<property name="minPoolSize">
			<value>${c3p0.pool.min}</value>
		</property>
		<!-- 初始化的池数 -->
		<property name="initialPoolSize">
			<value>${c3p0.pool.init}</value>
		</property>
	</bean>
	<!-- 配置jdbcTemplate的bean ,设置它是为了设置业务bean中的jdbcTemplate参数-->
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<constructor-arg ref="comboPooledDataSource" />
	</bean>
	<!-- 设置业务bean -->
	<bean id="userDaoImpl" class="cn.csdn.dao.UserDaoImpl">
		<property name="jt" ref="jdbcTemplate" />
	</bean>
  

2、使用NamedParameterJdbcTemplate类,实现JDBC,参数是用Map集合传递的

业务类:

public class UserDaoImpl2 implements UserDao{
//	定义一个Jdbc
	private NamedParameterJdbcTemplate npjt;
//	必须有set 方法,因为NamedParameterJdbcTemplate类是用set方法加载的
	public void setNpjt(NamedParameterJdbcTemplate npjt){
		this.npjt=npjt;
	}
	@Override
	public void delete(int id) {
		// TODO Auto-generated method stub
		String sql="delete from user where id=:id";
		Map<String,Object> map=new HashMap<String,Object>();
		map.put("id", id);
		int temp=this.npjt.update(sql,map);
		if(temp>0){
			System.out.println("删除成功!");
		}else{
			System.out.println("删除失败!");
		}
	}

	@Override
	public void insert(User entity) {
		// TODO Auto-generated method stub
		String sql="insert into user(name,age,sex) values(:name,:age,:sex)";
		Map<String,Object> map=new HashMap<String,Object>();
		map.put("name", entity.getName());
		map.put("age", entity.getAge());
		map.put("sex", entity.getSex());
		int temp=npjt.update(sql, map);
		if(temp>0){
			System.out.println("插入成功!");
		}else{
			System.out.println("插入失败!");
		}
	}
//
//	
//
	@Override
	public List<User> selectAll() {
		String sql="select * from user";
//		List list=this.npjt.queryForList(sql, new HashMap());
		List list=npjt.query(sql, new HashMap(),new RowMapper(){

			@Override
			public Object mapRow(ResultSet rs, int arg1) throws SQLException {
				// TODO Auto-generated method stub
				User user=new User();
				user.setId(rs.getInt("id"));
				user.setName(rs.getString("name"));
				user.setAge(rs.getInt("age"));
				user.setSex(rs.getString("sex"));				
				return user;
			}
			
		});
		System.out.println(list.size());
		return list;
	}
	
	@Override
	public User selectById(int id) {
		// TODO Auto-generated method stub
		String sql="select id,name,age,sex from user where id=1";
		
		Map<String,Object> map=new HashMap<String,Object>();		
		map.put("id", id);
		User user=(User)npjt.queryForObject(sql, map, new RowMapper(){

			@Override
			public Object mapRow(ResultSet rs, int arg1) throws SQLException {
				User user=new User();
				user.setId(rs.getInt("id"));
				user.setName(rs.getString("name"));
				user.setAge(rs.getInt("age"));
				user.setSex(rs.getString("sex"));				
				return user;
			}
			
		});
		return user;	
	}
//
	@Override
	public void update(User entity) {
		// TODO Auto-generated method stub
		String sql="update user set name=:name,age=:age,sex=:sex where id=:id";
		Map<String,Object> map=new HashMap<String,Object>();
		map.put("name", entity.getName());
		map.put("age", entity.getAge());
		map.put("sex", entity.getSex());
		map.put("id", entity.getId());
		int temp=npjt.update(sql, map);
		if(temp>0){
			System.out.println("更新成功!");
		}else{
			System.out.println("更新失败!");
		}
	}

}

  xml中的代码:

<!-- 分散配置 -->
	<context:property-placeholder location="jdbc.properties" />
	<!--  c3p0的数据源,设置它是为了配置jbdcTemplate-->
	<bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<!-- 驱动程序 -->
		<property name="driverClass">
			<value>${driverClass}</value>
		</property>
		<!-- 用户名 -->
		<property name="user">
			<value>${username}</value>
		</property>
		<!-- 密码 -->
		<property name="password">
			<value>${password}</value>
		</property>
		<!-- url -->
		<property name="jdbcUrl">
			<value>${url}</value>
		</property>
		<!-- 最大池数 -->
		<property name="maxPoolSize">
			<value>${c3p0.pool.max}</value>
		</property>
		<!-- 最小池数 -->
		<property name="minPoolSize">
			<value>${c3p0.pool.min}</value>
		</property>
		<!-- 初始化的池数 -->
		<property name="initialPoolSize">
			<value>${c3p0.pool.init}</value>
		</property>
	</bean>
	
	
	
	<!-- 配置jdbcTemplate的bean ,设置它是为了设置业务bean中的jdbcTemplate参数-->
	<bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
	<constructor-arg ref="comboPooledDataSource"/>
	</bean>
	<!-- 设置业务bean -->
	<bean id="userDaoImpl" class="cn.csdn.dao.UserDaoImpl2">
		<property name="npjt" ref="namedParameterJdbcTemplate" />
	</bean>
  

3、使用SimpleJdbcTemplate类,实现JDBC,参数是用可变参数传递的

业务类:

public class UserDaoImpl3 implements UserDao{
//	定义一个Jdbc
	private SimpleJdbcTemplate sjt;
//	必须有set 方法
	public void setSjt(SimpleJdbcTemplate sjt){
		this.sjt=sjt;
	}
	
	@Override
	public void delete(int id) {
		// TODO Auto-generated method stub
		String sql="delete from user where id=?";		
		int temp=this.sjt.update(sql, id);
		if(temp>0){
			System.out.println("删除成功!");
		}else{
			System.out.println("删除失败!");
		}
	}

	@Override
	public void insert(User entity) {
		// TODO Auto-generated method stub
		String sql="insert into user(name,age,sex) values(?,?,?)";

		int temp=sjt.update(sql,entity.getName(),entity.getAge(),entity.getSex());
		if(temp>0){
			System.out.println("插入成功!");
		}else{
			System.out.println("插入失败!");
		}
	}

	@Override
	public List<User> selectAll() {
		String sql="select * from user";
		List list=this.sjt.queryForList(sql);

		System.out.println(list.size());
		return list;
	}

	@Override
	public User selectById(int id) {
		// TODO Auto-generated method stub
		String sql="select id,name,age,sex from user where id=?";
		User user=(User) sjt.queryForObject(sql, new ParameterizedRowMapper() {

			@Override
			public Object mapRow(ResultSet rs, int arg1) throws SQLException {
				User user=new User();
				user.setId(rs.getInt("id"));
				user.setName(rs.getString("name"));
				user.setAge(rs.getInt("age"));
				user.setSex(rs.getString("sex"));				
				return user;
			}
		}, id);
		return user;
	}

	@Override
	public void update(User entity) {
		// TODO Auto-generated method stub
		/**第一种方法*/
//		String sql="update user set name=?,age=?,sex=? where id=?";
		
//		int temp=sjt.update(sql, entity.getName(),entity.getAge(),entity.getSex(),entity.getId());
	/**第二种方法*/	
		String sql="update user set name=:name,age=:age,sex=:sex where id=:id";
		Map<String,Object> map=new HashMap<String,Object>();
		map.put("name", entity.getName());
		map.put("age", entity.getAge());
		map.put("sex", entity.getSex());
		map.put("id", entity.getId());
		int temp=sjt.update(sql, map);
		if(temp>0){
			System.out.println("更新成功!");
		}else{
			System.out.println("更新失败!");
		}
	}

}

  xml中的部分代码:

<!-- 分散配置 -->
	<context:property-placeholder location="jdbc.properties" />
	<!--  c3p0的数据源,设置它是为了配置jbdcTemplate-->
	<bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<!-- 驱动程序 -->
		<property name="driverClass">
			<value>${driverClass}</value>
		</property>
		<!-- 用户名 -->
		<property name="user">
			<value>${username}</value>
		</property>
		<!-- 密码 -->
		<property name="password">
			<value>${password}</value>
		</property>
		<!-- url -->
		<property name="jdbcUrl">
			<value>${url}</value>
		</property>
		<!-- 最大池数 -->
		<property name="maxPoolSize">
			<value>${c3p0.pool.max}</value>
		</property>
		<!-- 最小池数 -->
		<property name="minPoolSize">
			<value>${c3p0.pool.min}</value>
		</property>
		<!-- 初始化的池数 -->
		<property name="initialPoolSize">
			<value>${c3p0.pool.init}</value>
		</property>
	</bean>
	
	
	
	<!-- 配置jdbcTemplate的bean ,设置它是为了设置业务bean中的jdbcTemplate参数-->
	<bean id="simpleJdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">
	<constructor-arg ref="comboPooledDataSource"/>
	</bean>
	<!-- 设置业务bean -->
	<bean id="userDaoImpl" class="cn.csdn.dao.UserDaoImpl3">
		<property name="sjt" ref="simpleJdbcTemplate" />
	</bean>
 
分享到:
评论

相关推荐

    Spring使用JDBC做的增删改查

    本文将详细介绍Spring使用JDBC进行增删改查的三种主要方法。 首先,让我们了解Spring JDBC的基础。Spring JDBC模块通过`JdbcTemplate`和`SimpleJdbcTemplate`类提供了数据库访问的抽象层,简化了数据库操作。这两种...

    前期项目 Spring+Spring MVC+JDBC Template 增删改查

    本项目聚焦于Spring、Spring MVC和JDBC Template的集成应用,用于实现数据库的增删改查操作。这是一套常见的企业级应用开发模式,对于理解和掌握Java Web开发至关重要。 首先,Spring框架是一个开源的应用框架,它...

    Spring JDBC 增删改查

    Spring JDBC是Spring框架的一部分,它提供了一种抽象层,使得我们能够更方便地使用Java数据库连接(JDBC)来处理数据库操作,如增删改查(CRUD)。在这个主题下,我们将深入探讨Spring JDBC的核心概念、配置、以及...

    Spring实现增删改查

    在这个“Spring实现增删改查”的项目中,我们将深入探讨如何利用Spring框架来实现数据库操作的基础功能。 1. **依赖注入(DI)**:在Spring框架中,DI是一种设计模式,它允许对象之间的关系在运行时被外部容器管理...

    springjdbc.zip_SpringJDBC_spring jdbc_spring 增删改查_springjdbc xml

    综上所述,`springjdbc.zip`文件中的示例可能展示了如何在Spring环境中配置和使用JDBC,包括数据源配置、事务管理、以及使用`JdbcTemplate`执行增删改查操作的完整流程。通过学习这些示例,开发者可以更好地理解和...

    Java Servlet+JDBC的增删改查

    Java Servlet+JDBC的增删改查是Java Web开发中的基础操作,主要涉及数据库交互以及服务器端处理。在这个过程中,IntelliJ IDEA作为强大的集成开发环境(IDE)扮演着核心角色,提供了一个高效的编程环境。下面我们将...

    spring4+hibernate4实现增删改查

    本文将深入探讨如何使用Spring4和Hibernate4实现数据库的增删改查操作,以及在这个过程中可能涉及的关键知识点。 首先,Spring4是一个全面的Java应用程序框架,它提供了一种方式来管理组件(或称为bean)之间的依赖...

    jsp+servlet+jdbc开发增删改查

    再者,`JDBC(Java Database Connectivity)`是Java中用于与各种数据库交互的API,它提供了一套标准的接口和方法,使得Java程序可以连接、操作数据库,执行SQL语句,实现数据的增删改查。 在开发过程中,我们首先...

    员工表增删改查springjdbc,springboot

    jsp + servlet + springboot + springJdbc + druid + mysql 员工列表 ID 姓名 性别 入职日期 所属部门 部门地址 操作 1 张三 男 1982-2-2 开发部 北京 修改|删除 2 李四 男 1982-2-2 开发部 北京 修改|删除

    struts2+spring+ibatis做的增删改查的小例子

    这个"struts2+spring+ibatis做的增删改查的小例子"是一个针对初学者的实践教程,旨在帮助学习者理解这三个框架如何协同工作以实现数据的CRUD(创建、读取、更新、删除)操作。 首先,Struts2作为MVC(Model-View-...

    springMVC+mybatis实现登录和增删改查

    在本项目中,"springMVC+mybatis实现登录和增删改查"是一个典型的Web应用程序,它结合了SpringMVC、MyBatis两大主流框架,以及Bootstrap前端库,来构建一个用户友好的数据管理平台。以下是这个项目涉及到的主要知识...

    springboot增删改查

    本知识点将深入探讨如何利用SpringBoot实现数据库的增删改查操作。 一、SpringBoot入门 SpringBoot的核心理念是“约定优于配置”,它内置了Tomcat服务器,自动配置了Spring MVC、Spring Data JPA等模块,使得开发者...

    Spring与Hibernate整合实例(博客用户登录增删改查)

    在这个“Spring与Hibernate整合实例(博客用户登录增删改查)”中,我们将探讨如何将这两个强大的框架——Spring和Hibernate——结合起来,以实现一个博客系统的用户管理功能,包括用户登录、注册、信息修改以及数据...

    spring的增删改查

    在“spring的增删改查”这个主题中,我们将深入探讨Spring如何与Oracle数据库配合,实现数据的CRUD(Create、Read、Update、Delete)操作。 1. **Spring JDBC模块** Spring提供了JDBC模块,使得开发者可以避免繁琐...

    ssm简单的增删改查(初学者)

    在Oracle数据库中,增删改查操作会涉及到SQL语法,例如,INSERT INTO语句用于插入数据,SELECT语句用于查询数据,UPDATE语句用于更新数据,DELETE FROM语句用于删除数据。Oracle还提供了丰富的函数和特性,如索引、...

    springmvc jdbc的增删改查

    在Spring MVC项目中集成JDBC,可以方便地进行数据的增删改查操作,无需编写大量重复的SQL代码。下面我们将深入探讨这两个技术以及如何在实际项目中结合使用。 首先,Spring MVC的核心是DispatcherServlet,它作为...

    spring boot增删改查

    在本项目中,我们主要探讨的是如何利用Spring Boot框架与Oracle 11g数据库...以上就是关于“Spring Boot增删改查”项目的主要知识点,通过这个小例子,我们可以深入理解Spring Boot与数据库集成的基本流程和最佳实践。

    jsp+servlet+jdbc原生实现增删改查两张表

    本教程将详细讲解如何使用JSP、Servlet和JDBC(Java Database Connectivity)原生实现对数据库的增删改查操作,无需依赖任何框架。这个项目适合Java Web开发初学者,通过学习,你可以了解到基础的数据库交互逻辑。 ...

    Spring3.x MySql 增删改查 非常适合初学者

    在"Spring3.x MySql 增删改查"项目中,初学者可以学习如何配置Spring的JDBC支持。这通常涉及以下步骤: 1. 添加Spring JDBC的依赖到项目构建配置(如Maven或Gradle)。 2. 创建DataSource bean,配置数据库连接参数...

    Eclipse MavenSSM 增删改查示例

    本示例项目"**Eclipse Maven SSM 增删改查示例**"旨在帮助开发者理解和实践这些技术的集成使用,实现数据的CRUD(Create、Read、Update、Delete)操作。接下来,我们将详细探讨这个项目中的关键知识点。 **1. ...

Global site tag (gtag.js) - Google Analytics