spring实战学习(五)jdbc模板
jdbc是什么?
JDBC和mybatis,hibernate一样都能实现数据持久化的作用,它可以让我们访问到数据库,进行一些增,删,查,改的操作。
用spring的jdbc模板访问数据的demo
创建maven项目,导入依赖
<dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.6.RELEASE</version></dependency><dependency>//使用dbcp连接池<groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency>
建立数据库里的对象
public class Person {String name;int age;int id;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 int getAge() {return age;}public void setAge(int age) {this.age = age;}}
写一个Dao类
@Repository("personDAO")
public class PersonDAO {@Resource(name="template")private JdbcTemplate template;public void save(Person person) {String sql="insert into demo values(null,?,?)";template.updata(sql,person.getName(),person.getAge());}public void delete(int id){String sql="delete * from demo where id=?";template.updata(sql,id);}public void updata(Person person) {String sql="updata demo set name=? where id=?";template.updata(sql,person.getName(),person.getId());}public Person selectById(int id) {String sql="select * from demo where id=?";return template.queryForObject(sql,new RowMapper<Person>(){public Person mapRow(ResultSet rs,int arg)throws SQLException{Person person=new Person();person.setId(rs.getInt("id"));person.setName(rs.getString("name"));person.setAge(rs.getInt("age"));return person;}}, id);}public List<Person> selectAll() {String sql="select * from demo";List<Person> list=template.query(sql,new RowMapper<Person>() {public Person mapRow(ResultSet rs, int arg1) throws SQLException {Person person = new Person();person.setId(rs.getInt("id"));person.setName(rs.getString("name"));person.setAge(rs.getString("age"));return Person;}});return list;}
}
xml配置`
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.2.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd "><context:component-scan base-package="org.csii.springjdbc"><context:annotation-config/><util:properties id="config" location="classpath:db.properties" /><bean: id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"/></bean><bean: id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="#{config.driver}"/><property name="url" value="#{config.url}"/><property name="password" value="#{config.password}"/><property name="username" value="#{config.username}"/> </bean></beans>
.properties文件
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&autoReconnect=true&autoReconnectForPools=true&characterEncoding=utf8
jdbc.username=xxx//填自己的数据库账号
jdbc.password=xxx
test测试类
public class Test {private PersonDAO dao;@Beforepublic void init(){ApplicationContext ac = new ClassPathXmlApplicationContext("springmvc.xml");dao = ac.getBean("personDAO",PersonDAO.class);}@Testpublic void test1() {Person person=new Person();person.setId(1);person.setName("tang");person.setAge(22);dao.save(person);}
}
连接池注入模板,jdbc模板再注入dao
这样就可以将数据插入数据库了
`
spring实战学习(五)jdbc模板相关推荐
- Spring实战第五版第二章字段校验返回视图报错解决及javax.validation完整pom依赖
Spring实战第五版第二章 2.3 校验表单输入 在编写"/design"页面post处理逻辑时,按照书本上直接'return "design"; '方式,会 ...
- Spring实战第五版源码
Spring实战第五版源码 链接:https://pan.quark.cn/s/11a451b1aa84 提取码:uzGW
- spring实战学习(三)配置方式
spring配置方式有xml配置和注解配置和基于java的配置方式,配置Bean是spring应用的重要一环,依赖注入也是spring实现ioc的核心. xml配置方式 常见的几种注入方式 1.set ...
- spring实战学习(六)事务管理
什么是事务? 在软件领域,我们将一组要么全部执行要么全不执行的操作叫做事物. 事务的四个特性(ACID) 原子性(atomicity):原子性确保了事物中的操作像原子操作一样要就全部执行或全不执行,如 ...
- Spring boot(五)模板引擎 Thymeleaf
Thymeleaf 是一款用于渲染 XML/XHTML/HTML 5 内容的模板引擎.类似 JSP.Velocity.FreeMaker 等,它也可以轻易的与 Spring MVC 等 Web 框架进 ...
- spring实战学习(一)简介
spring简介 spring是一个开源的一站式框架,可以理解本质上为一个容器,装有什么对象就能提供什么服务.它存在的主要目的是简化java开发,而贯穿spring最重要的两个特性是依赖注入和AOP. ...
- Spring实战第五版观后感之第一章
spring所做的一切都是在简化开发,所以今天我们就来说说我所了解到的第一章的内容 一.什么是Spring? Spring的核心是提供了一个容器,通常称为Spring应用上下文,它们会创建和管理应用组 ...
- 【Spring实战学习笔记】第4章 面向切面的Spring
目录 4.1 什么是面向切面编程 4.2 通过切点来选择连接点 4.3 使用注解创建切面 4.4 在XML中声明切面 4.5 注入AspectJ切面 4.6 小结 在软件开发中,散布于应用中多处的功 ...
- Spring Cloud 学习 (五) Zuul
Zuul 作为路由网关组件,在微服务架构中有着非常重要的作用,主要体现在以下 6 个方面: Zuul, Ribbon 以及 Eureka 相结合,可以实现智能路由和负载均衡的功能,Zuul 能够将请求 ...
最新文章
- java c 序列化_Java 序列化
- SPringMVC使用总结
- 性能更好的js动画实现方式——requestAnimationFrame
- make things simple
- ICML论文|这违反直觉的“升噪”方法,反而能很好的解决激活函数梯度弥散的问题
- 介绍Windows Azure移动服务:用于您连接的客户端应用程序的后端
- Google Guava EventBus用于事件编程
- CMOS Sensor的调试经验分享(转)
- 你可能小赚,但苹果永远不亏!华强北老板说一台新iPhone只赚10块钱?
- API 函数 MultiByteToWideChar 实现各类编码转换
- JAVA获取word书签内容_java操作word可操作书签
- 关于实验室数据结构实验错误本周总结。引用调用bug
- el-dialog中el-select的层级问题
- 【P48】锂电池充电和电源自动切换
- Android 路由框架ARouter最佳实践
- NLP初学-Word Segmentation(分词)
- 新环境-新体验-新生活_发某人南下随笔
- thinkphp5消息队列(think-queue)
- 海康双路服务器的作用,海康服务器IS-VSE2326B-BBC,四核双路服务器,多媒体服务器...
- 全面解读丨山石网科重磅发布的容器安全防护系统“云铠”,究竟是个啥?