Spring+JDBC-1
Spring 通过配置文件 操作数据库
一、文件结构
二、java代码
![](/assets/blank.gif)
![](/assets/blank.gif)
1 package entity; 2 3 /** 4 * 该类为实体类,与dept表对应 类---表 对象---记录 成员变量---字段 5 * 6 * ORM:对象关系型数据映射 mybatis hibernate 7 * 8 */ 9 public class Entity { 10 private int id; 11 private String name; 12 private String sex; 13 14 public Entity() { 15 super(); 16 } 17 18 public Entity(int id, String name, String sex) { 19 super(); 20 this.id = id; 21 this.name = name; 22 this.sex = sex; 23 } 24 25 public int getId() { 26 return id; 27 } 28 29 public void setId(int id) { 30 this.id = id; 31 } 32 33 public String getName() { 34 return name; 35 } 36 37 public void setName(String name) { 38 this.name = name; 39 } 40 41 public String getSex() { 42 return sex; 43 } 44 45 public void setSex(String sex) { 46 this.sex = sex; 47 } 48 49 @Override 50 public String toString() { 51 return "Entity [id=" + id + ", name=" + name + ", sex=" + sex + "]"; 52 } 53 54 }
Entity
![](/assets/blank.gif)
![](/assets/blank.gif)
1 package inter; 2 3 import java.util.List; 4 5 import entity.Entity; 6 7 public interface DaoInter { 8 public int insertDept(); 9 10 public List<Entity> selectDeptAll(); 11 }
DaoInter
![](/assets/blank.gif)
![](/assets/blank.gif)
1 package impl; 2 3 import java.sql.ResultSet; 4 import java.sql.SQLException; 5 import java.util.List; 6 7 import org.springframework.jdbc.core.JdbcTemplate; 8 import org.springframework.jdbc.core.RowMapper; 9 import org.springframework.jdbc.datasource.DataSourceTransactionManager; 10 import org.springframework.jdbc.datasource.DriverManagerDataSource; 11 import org.springframework.transaction.TransactionDefinition; 12 import org.springframework.transaction.TransactionStatus; 13 import org.springframework.transaction.support.DefaultTransactionDefinition; 14 15 import entity.Entity; 16 import inter.DaoInter; 17 18 /** 19 * dao层实现类 20 * 21 * @author Administrator 22 */ 23 public class DaoImpl implements DaoInter { 24 25 public JdbcTemplate jdbcTemplate; 26 public int insertDept() { 27 //1.创建事务管理器 28 DataSourceTransactionManager transactionManager =new DataSourceTransactionManager(); 29 transactionManager.setDataSource(jdbcTemplate.getDataSource()); 30 //2.创建一个事务 31 DefaultTransactionDefinition dtd=new DefaultTransactionDefinition(); 32 //3. 获取事务状态 33 TransactionStatus status=transactionManager.getTransaction(dtd); 34 //4设定事务级别及属性 35 //隔离 36 dtd.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED); 37 //传播 38 dtd.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); 39 //只读 40 dtd.setReadOnly(false); 41 //超时 42 dtd.setTimeout(-1); 43 //执行sql 44 int flag=jdbcTemplate.update("INSERT INTO person2 VALUES(?,?,?)", 300,"红绸军","男"); 45 System.out.println(flag); 46 //提交事务 47 transactionManager.commit(status); 48 return flag; 49 } 50 51 public JdbcTemplate getJdbcTemplate() { 52 return jdbcTemplate; 53 } 54 55 public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { 56 this.jdbcTemplate = jdbcTemplate; 57 } 58 59 60 public List<Entity> selectDeptAll() { 61 String sql="select * from person2"; 62 List<Entity> list=jdbcTemplate.query(sql, new RowMapper() { 63 public Object mapRow(ResultSet rs, int rowNum) throws SQLException { 64 Entity en=new Entity(); 65 en.setId(rs.getInt("id")); 66 en.setName(rs.getString("name")); 67 en.setSex(rs.getString("sex")); 68 return en; 69 } 70 }); 71 return list; 72 } 73 }
DaoImpl
![](/assets/blank.gif)
![](/assets/blank.gif)
1 package test; 2 3 import java.util.List; 4 5 import org.springframework.context.ApplicationContext; 6 import org.springframework.context.support.ClassPathXmlApplicationContext; 7 8 import entity.Entity; 9 import impl.DaoImpl; 10 import inter.DaoInter; 11 12 public class TestJDBC { 13 public static void main(String[] args) { 14 // 加载ioc容器 15 ApplicationContext context = 16 new ClassPathXmlApplicationContext("applicationContext.xml"); 17 DaoInter dao=(DaoImpl)context.getBean("DaoImpl"); 18 //dao.insertDept(); 19 List<Entity> list=dao.selectDeptAll(); 20 for(Entity d:list) { 21 System.out.println(d); 22 } 23 } 24 }
TestJDBC
三、配置文件
![](/assets/blank.gif)
![](/assets/blank.gif)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:aop="http://www.springframework.org/schema/aop" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd 8 http://www.springframework.org/schema/context 9 http://www.springframework.org/schema/context/spring-context-4.3.xsd 10 http://www.springframework.org/schema/aop 11 http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"> 12 13 <!-- 加载数据库配置文件 --> 14 <context:property-placeholder location="classpath:db.properties"></context:property-placeholder> 15 <!-- 创建数据源 --> 16 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" 17 init-method="init" destroy-method="close"> 18 <!-- 配置数据库连接基本信息 --> 19 <property name="driverClassName" value="${driverClass}" /> 20 <property name="url" value="${url}" /> 21 <property name="username" value="${name}" /> 22 <property name="password" value="${password}" /> 23 <!-- ******配置数据库连接池相关信息******* --> 24 <!-- 配置初始化大小、最小、最大 --> 25 <property name="initialSize" value="5" /> 26 <property name="minIdle" value="2" /> 27 <property name="maxActive" value="10" /> 28 <!-- 配置获取连接等待超时的时间 --> 29 <property name="maxWait" value="10000" /> 30 <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --> 31 <property name="timeBetweenEvictionRunsMillis" value="60000" /> 32 <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --> 33 <property name="minEvictableIdleTimeMillis" value="300000" /> 34 <property name="testWhileIdle" value="true" /> 35 <!-- 这里建议配置为TRUE,防止取到的连接不可用 --> 36 <property name="testOnBorrow" value="true" /> 37 <property name="testOnReturn" value="false" /> 38 <!-- 打开PSCache,并且指定每个连接上PSCache的大小 --> 39 <property name="poolPreparedStatements" value="true" /> 40 <property name="maxPoolPreparedStatementPerConnectionSize" 41 value="20" /> 42 <!-- 这里配置提交方式,默认就是TRUE,可以不用配置 --> 43 <property name="defaultAutoCommit" value="true" /> 44 <!-- 验证连接有效与否的SQL,不同的数据配置不同 --> 45 <property name="validationQuery" value="select 1" /> 46 </bean> 47 <!-- 声明JdbcTemplate --> 48 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 49 <property name="dataSource" ref="dataSource"></property> 50 </bean> 51 52 <!-- dao层 --> 53 <bean id="DaoImpl" class="impl.DaoImpl" p:jdbcTemplate-ref="jdbcTemplate"/> 54 </beans>
IOC.xml
![](/assets/blank.gif)
![](/assets/blank.gif)
1 <project xmlns="http://maven.apache.org/POM/4.0.0" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <groupId>spring</groupId> 6 <artifactId>spring_JDBC</artifactId> 7 <version>0.0.1-SNAPSHOT</version> 8 <dependencies> 9 <!-- druid数据源 --> 10 <dependency> 11 <groupId>com.alibaba</groupId> 12 <artifactId>druid</artifactId> 13 <version>1.1.8</version> 14 </dependency> 15 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> 16 <dependency> 17 <groupId>mysql</groupId> 18 <artifactId>mysql-connector-java</artifactId> 19 <version>8.0.11</version> 20 </dependency> 21 22 <!-- https://mvnrepository.com/artifact/org.springframework/spring-tx --> 23 <dependency> 24 <groupId>org.springframework</groupId> 25 <artifactId>spring-tx</artifactId> 26 <version>4.3.2.RELEASE</version> 27 </dependency> 28 <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> 29 <dependency> 30 <groupId>org.springframework</groupId> 31 <artifactId>spring-jdbc</artifactId> 32 <version>4.3.2.RELEASE</version> 33 </dependency> 34 <!-- https://mvnrepository.com/artifact/org.springframework/spring-core --> 35 <dependency> 36 <groupId>org.springframework</groupId> 37 <artifactId>spring-core</artifactId> 38 <version>4.3.2.RELEASE</version> 39 </dependency> 40 <dependency> 41 <groupId>org.springframework</groupId> 42 <artifactId>spring-context</artifactId> 43 <version>4.3.2.RELEASE</version> 44 </dependency> 45 <dependency> 46 <groupId>org.springframework</groupId> 47 <artifactId>spring-beans</artifactId> 48 <version>4.3.2.RELEASE</version> 49 </dependency> 50 <dependency> 51 <groupId>org.springframework</groupId> 52 <artifactId>spring-expression</artifactId> 53 <version>4.3.2.RELEASE</version> 54 </dependency> 55 </dependencies> 56 </project>
pom.xml
转载于:https://www.cnblogs.com/cjxyu/articles/9688076.html
Spring+JDBC-1相关推荐
- Struts2+spring+jdbc 以xml配置形式整合
今天做作业,练习一下Struts2+spring+jdbc 以xml配置形式整合 整合步骤: 工程结构图: 重要配置文件 web.xml <?xml version="1.0" ...
- Java EE---通过Spring JDBC实现数据库的增、删、改、查
Spring JDBC之update.query方法 1.项目清单 2.全部代码 2.1.student 2.2.stuDao 2.3.applicationContext.xml 2.4.test ...
- Spring JDBC详解
<Spring JDBC详解> 本文旨在讲述Spring JDBC模块的用法.Spring JDBC模块是Spring框架的基础模块之一. 一.概述 在Spring JDBC模块中,所有的 ...
- Spring JDBC Template
Spring为我们提供了JDBC的模板来连接数据库,Spring JDBC Template. 使用: 第一,导入相关的jar包 第二,要连接数据库首先要加载驱动,获得连接,然后才能进行相关的数据库操 ...
- 使用Spring JDBC框架连接并操作数据库
在前一篇博文JAVA通过JDBC连接并操作MySQL数据库中,我们知道如何通过JDBC连接并操作数据库,但是请看程序,整个程序连接数据库和关闭数据库占了很大一部分代码量,而且每次我们执行一下数据库操作 ...
- Spring + JDBC + Struts联合开发(实现单表的CRUD)
这里使用Spring + JDBC +Struts,完成新闻表的添加,修改,删除和查询功能. 建立数据库: [sql] view plain copy CREATE TABLE news_type ( ...
- Spring4.X系列之Spring JDBC
专栏 导读 源码 专栏 欢迎关注 : Spring-JDBC手札 导读 Spring JDBC-Spring对DAO的支持 Apache-DBCP数据库连接池解读 C3P0-数据库连接池解读 Spri ...
- Spring JDBC-使用Spring JDBC获取本地连接对象以及操作BLOB/CLOB类型数据
概述 如何获取本地数据连接 示例从DBCP数据源中获取Oracle的本地连接对象 相关接口操作 LobCreator LobHandler 插入LOB类型的数据 以块数据的方式读取LOB数据 以流数据 ...
- Spring JDBC-使用Spring JDBC访问数据库
概述 使用Spring JDBC 基本的数据操作 更改数据 返回数据库表的自增主键值 批量更改数据 查询数据 使用RowCallbackHandler处理结果集 使用RowMapperT处理结果集 R ...
- Spring-Spring MVC + Spring JDBC + Spring Transaction + Maven 构建web登录模块
概述 功能简介 环境准备 构建工具Maven 数据库脚本Oracle 建立工程 类包及Spring配置文件规划 持久层 建立领域对象 用户领域对象 登录日志领域对象 UserDao LoginLogD ...
最新文章
- NFS 网络文件系统
- 一个linux提权用的技巧
- java怎么获取服务器文件夹,java获取远程服务器的文件夹
- Go-Web框架-Beego架构(二)
- kafka偏移量保存到mysql里_Kafka 新版消费者 API(二):提交偏移量
- 【渝粤教育】广东开放大学 Linux操作系统 形成性考核 (55)
- js菜单自适应的实现
- 〖Linux〗穿越城墙之后,直接连接国内网站的路由配置
- android音乐播放器案例,Android MediaPlayer实现音乐播放器实例代码
- linux lamp实验报告,我的LAMP过程
- opencv python 生成画布_第16章 坚持一百秒(《Python趣味创意编程》教学视频)
- Harmony OS — Text文本框
- 详解PWM原理、频率与占空比
- 学大数据应该会什么?
- JAVA_OPTS讲解【转】
- Featuretools 学习3 - 深度特征合成
- 为了沙漠中的奋进者:“视人为人”的陕煤曹家滩 智慧矿区
- 用R语言拟合Eurogenes G25祖源坐标的学习笔记
- 苹果8黑屏无法强制开机_iphonexr突然黑屏无法开机怎么解决?
- Android Q app内存压缩优化方案介绍