Spring抽象JDBC,使用JdbcTemplate

<?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:mvc="http://www.springframework.org/schema/mvc"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:c="http://www.springframework.org/schema/c"
	xmlns:cache="http://www.springframework.org/schema/cache" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.0.xsd
		http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

	<context:component-scan base-package="com.icss.hr"></context:component-scan>
	<!-- 1.配置数据源 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/hr"/>
		<property name="driverClass" value="com.mysql.jdbc.Driver"/>
		<property name="user" value="root" />
		<property name="password" value="admin" />
		<property name="initialPoolSize" value="3" />
		<property name="maxPoolSize" value="10" />
		<property name="minPoolSize" value="1" />
		<property name="acquireIncrement" value="3" />
		<property name="maxIdleTime" value="60" />
	</bean>
	<!-- 2.JDBCTemplate -->
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource"></property>
	</bean>

	<!-- 3.配置事务 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	<tx:advice id="txa" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="add*" isolation="DEFAULT" propagation="REQUIRED" read-only="false"/>
			<tx:method name="update*" isolation="DEFAULT" propagation="REQUIRED" read-only="false"/>
			<tx:method name="delete*" isolation="DEFAULT" propagation="REQUIRED" read-only="false"/>
			<tx:method name="query*"  read-only="true"/>
		</tx:attributes>
	</tx:advice>
	<aop:config>
		<aop:pointcut expression="execution(* com.icss.hr.*.service.*.*(..))" id="txCut"/>
		<aop:advisor advice-ref="txa" pointcut-ref="txCut"/>
	</aop:config>

	<!-- 配置视图解析器 -->
		<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!--  跳转路径 字符串前面加上路径 -->

		<!-- view里面的字符串加上后缀 -->
		<property name="suffix" value=".jsp"></property>
	</bean>
</beans>

Dept.java

package com.icss.hr.dept.pojo;
/**
 * 部门类
 * @author Administrator
 *
 */
public class Dept {
	private int dept_id;
	private String dept_name;
	private String dept_loc;

	public Dept() {
		super();
	}
	public Dept(int dept_id, String dept_name, String dept_loc) {
		super();
		this.dept_id = dept_id;
		this.dept_name = dept_name;
		this.dept_loc = dept_loc;
	}
	public int getDept_id() {
		return dept_id;
	}
	public void setDept_id(int dept_id) {
		this.dept_id = dept_id;
	}
	public String getDept_name() {
		return dept_name;
	}
	public void setDept_name(String dept_name) {
		this.dept_name = dept_name;
	}
	public String getDept_loc() {
		return dept_loc;
	}
	public void setDept_loc(String dept_loc) {
		this.dept_loc = dept_loc;
	}
	@Override
	public String toString() {
		return "Dept [dept_id=" + dept_id + ", dept_name=" + dept_name + ", dept_loc=" + dept_loc + "]";
	}
}

Dao.java

package com.icss.hr.dept.dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.icss.hr.dept.pojo.Dept;
@Repository
public interface DeptDao {
	public boolean addDept(Dept dept);
	public boolean updateDept(Dept dept);
	public boolean deleteDept(int dept_id);

	public List<Dept> queryAllDept();
	public Dept queryDeptById(int dept_id);

}

DaoImpl.java

package com.icss.hr.dept.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;

import com.icss.hr.dept.pojo.Dept;
@Repository
public class DeptDaoImpl implements DeptDao {

	@Autowired
	private JdbcTemplate jdbcTemplate;

	public JdbcTemplate getJdbcTemplate() {
		return jdbcTemplate;
	}

	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

	@Override
	public boolean addDept(Dept dept) {
		StringBuilder sql = new StringBuilder()
				.append("INSERT INTO dept ")
				.append("VALUES(?,?,?)");
		System.out.println(sql);
		int res = jdbcTemplate.update(sql.toString(),dept.getDept_id(),dept.getDept_name(),dept.getDept_loc());
		return res > 0 ? true : false;
	}

	@Override
	public boolean updateDept(Dept dept) {
		StringBuilder sql = new StringBuilder()
				.append("update dept ")
				.append("SET dept_name=?,dept_loc=? ")
				.append("WHERE dept_id=?");
		System.out.println(sql);
		int res = jdbcTemplate.update(sql.toString(),dept.getDept_name(),dept.getDept_loc(),dept.getDept_id());
		return res > 0 ? true : false;
	}

	@Override
	public boolean deleteDept(int dept_id) {
		StringBuilder sql = new StringBuilder()
				.append("DELETE FROM dept ")
				.append("WHERE dept_id=?");
		System.out.println(sql);
		int res = jdbcTemplate.update(sql.toString(),dept_id);
		return res > 0 ? true : false;
	}

	@Override
	public List<Dept> queryAllDept() {
		StringBuilder sql = new StringBuilder()
				.append("SELECT *  ")
				.append("FROM dept");

		return jdbcTemplate.query(sql.toString(), new RowMapper<Dept>() {

			@Override
			public Dept mapRow(ResultSet rs, int arg1) throws SQLException {
				//解析行
				Dept d = new Dept(rs.getInt("dept_id"),rs.getString(2),rs.getString(3));
				return d;
			}
		});

	}

	@Override
	public Dept queryDeptById(int dept_id) {
		// TODO Auto-generated method stub
		return null;
	}

}

DeptService.java

package com.icss.hr.dept.service;

import java.util.List;

import org.springframework.stereotype.Service;

import com.icss.hr.dept.pojo.Dept;
@Service
public interface DeptService {
	public boolean addDept(Dept dept);
	public boolean updateDept(Dept dept);
	public boolean deleteDept(int dept_id);
	public List<Dept> queryDepts();
}

DeptServiceImpl.java

package com.icss.hr.dept.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import com.icss.hr.dept.dao.DeptDao;
import com.icss.hr.dept.pojo.Dept;
@Service
public class DeptServiceImpl implements DeptService {
	@Autowired
	@Qualifier(value="deptDaoImpl")
	private DeptDao deptDao;

	public DeptDao getDeptDao() {
		return deptDao;
	}

	public void setDeptDao(DeptDao deptDao) {
		this.deptDao = deptDao;
	}

	@Override
	public boolean addDept(Dept dept) {
		//日志文件

		return deptDao.addDept(dept);
	}

	@Override
	public boolean updateDept(Dept dept) {
		// TODO Auto-generated method stub
		return deptDao.updateDept(dept);
	}

	@Override
	public boolean deleteDept(int dept_id) {
		// TODO Auto-generated method stub
		return deptDao.deleteDept(dept_id);
	}

	@Override
	public List<Dept> queryDepts() {
		// TODO Auto-generated method stub
		return deptDao.queryAllDept();
	}

}

DeptAction.java

package com.icss.hr.dept.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.icss.hr.dept.pojo.Dept;
import com.icss.hr.dept.service.DeptService;

@Controller
@RequestMapping("/dept")
public class DeptAction {
	@Autowired
	@Qualifier(value="deptServiceImpl")
	private DeptService deptService;

	public DeptService getDeptService() {
		return deptService;
	}
	public void setDeptService(DeptService deptService) {
		this.deptService = deptService;
	}

	@RequestMapping("/add.action")
	public String addDept(Model mo,Dept dept){
		boolean res = deptService.addDept(dept);
		return res ? "redirect:/dept/show.action" : "../error";
	}
	@RequestMapping("/show.action")
	public String showDept(Model mo){
		List<Dept> depts = deptService.queryDepts();
		mo.addAttribute("depts",depts);
		return "../show";
	}
	@RequestMapping("/delete.action")
	public String deleteDept(int dept_id){
		boolean res = deptService.deleteDept(dept_id);
		return res ? "redirect:/dept/show.action" : "../error";
	}
	@RequestMapping("/update.action")
	public String updateDept(Dept dept){
		System.out.println(dept.getDept_id());
		boolean res = deptService.updateDept(dept);
		System.out.println(res);
		return res ? "redirect:/dept/show.action" : "../error";
	}
}

TestDept.java

package com.icss.hr.dept.test;

import java.util.List;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.icss.hr.dept.pojo.Dept;
import com.icss.hr.dept.service.DeptService;

public class TestDept {
	@Test
	public void test(){
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		DeptService service = (DeptService)ac.getBean("deptServiceImpl");
		boolean b = service.updateDept(new Dept(7,"国防部","北京"));
		System.out.println(b);
	}

}

  

  

  

时间: 2024-11-05 11:41:00

Spring抽象JDBC,使用JdbcTemplate的相关文章

Spring 对JDBC的支持(JdbcTemplate)

Spring对数据库的操作,使用JdbcTemplate对象 需要引入相关的jar文件 如版本:(Spring核心jar包就不列了) spring-jdbc-3.2.5.RELEASE.jar spring-tx-3.2.5.RELEASE.jar C3P0连接池:c3p0-0.9.1.2.jar 数据库驱动包:mysql-connector-java-5.1.22-bin.jar 例:(对象的获取及注入通过spring来实现) 核心jdbc操作 1 package test.jdbc; 2 3

Spring对 JDBC 的支持,JdbcTemplate类的使用

导包:spring框架的包 和 连接数据库连接池的c3p0包 连接mysql数据库的包; 在src目录下建立jdbc.properties文件:存放连接数据库的属性值 jdbc.user=root jdbc.password=lxn123 jdbc.driverClass=com.mysql.jdbc.Driver jdbc.jdbcUrl=jdbc:mysql:///spring1 jdbc.initPoolSize=5 jdbc.maxPoolSize=10 在src目录下建立spring

跟着刚哥学习Spring框架--JDBC(六)

Spring的JDBC框架 Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简化JDBC编程 Spring提供了3个模板类: JdbcTemplate:Spring里最基本的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问. NamedParameterJdbcTemplate:能够在执行查询时把值绑定到SQL里的命名参数,而不是使用索引参数. Simpl

Spring的JDBC框架

转自: http://www.cnblogs.com/windlaughing/p/3287750.html Spring JDBC提供了一套JDBC抽象框架,用于简化JDBC开发. Spring主要提供JDBC模板方式.关系数据库对象化方式.SimpleJdbc方式.事务管理来简化JDBC编程 Spring提供了3个模板类: JdbcTemplate:Spring里最基本的JDBC模板,利用JDBC和简单的索引参数查询提供对数据库的简单访问. NamedParameterJdbcTemplat

spring对JDBC的支持

传统应用程序开发中,进行JDBC编程是相当痛苦的,如下所示: Java代码   //cn.javass.spring.chapter7. TraditionalJdbcTest @Test public void test() throws Exception { Connection conn = null; PreparedStatement pstmt = null; try { conn = getConnection();              //1.获取JDBC连接 //2.声

Spring框架学习六:Spring对JDBC的支持

JdbcTemplate简介 为了使JDBC更加易于使用,Spring 在 JDBC API 上定义了一个抽象层,以此建立一个 JDBC 存取框架 作为 Spring JDBC 框架的核心,JDBC 模板的设计目的是为不同类型的 JDBC 操作提供模板方法.每个模板方法都能控制整个过程,并允许覆盖过程中的特定任务.通过这种方式,可以在尽可能保留灵活性的情况下,将数据库存取工作量降到最低. #添加c3p0数据库连接池 jdbc.user=root jdbc.password=000 jdbc.jd

spring boot中使用JdbcTemplate

本文将介绍如何将spring boot 与 JdbcTemplate一起工作.Spring对数据库的操作在jdbc上面做了深层次的封装,使用spring的注入功能,可以把DataSource注册到JdbcTemplate之中. JdbcTemplate 是在JDBC API基础上提供了更抽象的封装,并提供了基于方法注解的事务管理能力. 通过使用SpringBoot自动配置功能并代替我们自动配置beans. 数据源配置在maven中,我们需要增加spring-boot-starter-jdbc模块

企业分布式微服务云SpringCloud SpringBoot mybatis (七)Spring Boot中使用JdbcTemplate访问数据库

本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例. 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式. 首先,为了连接数据库需要引入jdbc支持,在pom.xml中引入如下配置: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdb

Spring数据访问之JdbcTemplate

Spring数据访问之JdbcTemplate 使用JdbcTemplate的基本操作步骤 1.引jar包 项目的基本架构 这里重点看实现类的内容 1 package cn.hmy.dao.impl; 2 3 4 import java.util.List; 5 6 import org.springframework.jdbc.core.support.JdbcDaoSupport; 7 8 import cn.hmy.beans.Emp; 9 import cn.hmy.dao.IEmpDa