测试代码:
ApplicationContext ctx = new ClassPathXmlApplicationContext("JDBC.xml");
DataSource datasource = (DataSource)ctx.getBean("dataSource",DataSource.class);
//测试能否连上
//System.out.println(datasource);

JdbcTemplate jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate");

//执行update
//String sql = "update student set sname=? where id =?";
//jdbcTemplate.update(sql, "MrChengs",3);
String sql = "update student set sname = ? where id = ?";
jdbcTemplate.update(sql,"Mc",4 );

//批量更新:可以执行的目标方法insert update delete
//batchArgs:是Object[] 事物List类型,因为需要修改一条Object的数组,那么多条就需要多个数组
//String sql = "insert student(sname,sclass) values(?,?)";
//List<Object []> batchArgs = new ArrayList<>();
//batchArgs.add(new Object []{"Rui",1221});
//batchArgs.add(new Object []{"Ruis",1212});
//jdbcTemplate.batchUpdate(sql, batchArgs);
String sql1 = "insert into student(sname,sclass) values(?,?)";
List<Object []> batchArgs = new ArrayList<Object []>();
batchArgs.add(new Object [] {"asd",12});
batchArgs.add(new Object [] {"qwe",321});
jdbcTemplate.batchUpdate(sql1, batchArgs);

//从数据库中获取一条记录,实际得到的是一个对象
//queryForObject(String sql, Object[] args, RowMapper<T> rowMapper)
//其中的RowMapper指定如何去映射结果集的行,常用的实现类为BeanPropertyRowMapper
//使用SQL中的列的别名完成列名和属性别名的映射
//不支持级联属性:jdbcTemplate到底是jdbc的小工具,而不是ORM框架
//String sql = "select * from student where id =?";
//RowMapper<Student> rowMapper = new BeanPropertyRowMapper<Student>(Student.class);
//Student student = jdbcTemplate.queryForObject(sql, rowMapper, 3);
//System.out.println(student);
String sql2 = "select * from student where id = ?";
RowMapper<Student> rowMapper = new BeanPropertyRowMapper<Student>();
Student stu = jdbcTemplate.queryForObject(sql2, rowMapper);

//查到实体类的集合
//.query(String sql, RowMapper<Student> rowMapper, Object... args)
//String sql = "select * from student where id < ?";
//RowMapper<Student> rowMapper = new BeanPropertyRowMapper<Student>(Student.class);
//List<Student> stu = jdbcTemplate.query(sql, rowMapper,10);
//System.out.println(stu);

//获取单个列数据的值
//queryForObject(String sql, Class<Long> requiredType)
//String sql = "select count(id) from student";
//long count = jdbcTemplate.queryForObject(sql, Long.class);
//System.out.println(count);

///////////////////////////////////////////////////////////////////
//具名参数
//NamedParameterJdbcTemplate
//可以为参数起名字,参数多的情况下,这种方法的稳定正确性
NamedParameterJdbcTemplate namedParameterJdbcTemplate = (NamedParameterJdbcTemplate) ctx.getBean("namedParameterJdbcTemplate");

//.update(String sql, SqlParameterSource paramSource)
//String sql = "insert into student(sname,sclass) values(:sname,:sclass)";
//Map<String, Object> paramMap = new HashMap<String, Object>();
//paramMap.put("sname", "jack");
//paramMap.put("sclass", 3424);
//namedParameterJdbcTemplate.update(sql, paramMap);

//update(String sql, SqlParameterSource paramSource)
//String sql = "insert into student(sname,sclass) values(:sname,:sclass)";
//Student stu = new Student();
//stu.setSname("Tom");
//stu.setSclass(0000);
//SqlParameterSource paramSource = new BeanPropertySqlParameterSource(stu);
//namedParameterJdbcTemplate.update(sql, paramSource);

//事务简介
//用来确保数据的完整性和一致性
//他们被当作一个独立的单元,要么全部起作用,要么全部不起作用
//事物的四个特性
//-->原子性,一致性,隔离性,持久性

//从不同的事物管理机制API中抽取了一整套事物机制,开发人员不必了解底层的事物的Api,就可以利用这些事物管理机制
//有了这些事物管理机制,事物管理代码就能独立于特定的事物技术了

xml文件的配置:

<bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://127.0.0.1:3307/shijian" />
  <property name="username" value="root" />
  <property name="password" value="1234" />
</bean>

<!-- 配置Spring的JdbcTemplate -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  <property name="dataSource" ref="dataSource"></property>
</bean>

<!--namedParameterJdbcTemplate具名参数,可以使用具名参数,其没有无参的构造器,必须为其构造函数指定参数 -->
  <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
  <constructor-arg ref="dataSource" ></constructor-arg>
</bean>

10.spring:常用的数据库代码.....(不长使用了解即可)的更多相关文章

  1. spring jdbc分离数据库代码和java代码

    读取配置文件类 package com.eshore.ismp.contract.sql; import java.io.FileInputStream; import java.io.FileNot ...

  2. 10分钟理解Android数据库的创建与使用(附具体解释和演示样例代码)

    1.Android数据库简单介绍. Android系统的framework层集成了Sqlite3数据库.我们知道Sqlite3是一种轻量级的高效存储的数据库. Sqlite数据库具有以下长处: (1) ...

  3. Spring常用注解总结

    转载自:https://www.cnblogs.com/xiaoxi/p/5935009.html 传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点 ...

  4. Spring系列之Spring常用注解总结 转载

    Spring系列之Spring常用注解总结   传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点:1.如果所有的内容都配置在.xml文件中,那么.x ...

  5. 设计模式:java及spring观察者模式(有利于代码解耦)

    http://www.cnblogs.com/softidea/p/5716870.html 什么是ApplicationContext? 它是Spring的核心,Context我们通常解释为上下文环 ...

  6. Spring 常用配置、Bean

    spring模块 Spring-Core: Core包是框架的最基础部分,并提供依赖注入(Dependency Injection)管理Bean容器功能. Spring-Context:(Spring ...

  7. Java中常用的设计模式代码与理解

    Java中常用的设计模式代码与理解 一.单例模式 1.饿汉式 (太饿了,类加载的时候就创建实例) /** * 饿汉式单例模式 */ public class HungrySingleInstance ...

  8. 04 Spring:01.Spring框架简介&&02.程序间耦合&&03.Spring的 IOC 和 DI&&08.面向切面编程 AOP&&10.Spring中事务控制

    spring共四天 第一天:spring框架的概述以及spring中基于XML的IOC配置 第二天:spring中基于注解的IOC和ioc的案例 第三天:spring中的aop和基于XML以及注解的A ...

  9. php与数据库代码开发规范

    php与数据库代码开发规范 1/25/2016 6:00:31 PM php对各类变量命名规范 目录名 文件命名 局部变量命名 使用英文动词名词,用下划线作为单词的分割,所有字母均使用小写 目录 up ...

随机推荐

  1. 微信小程序开发框架整理

    目前除了原生的微信小程序开发外,各大厂商陆续造了自己的开发框架,现整理如下: WePY 腾讯官方开源的小程序组件化开发框架,目前有15K+Star ,一直在更新着,社区活跃,掉坑能快速的找到方法爬出来 ...

  2. SpringCloud实战之初级入门(二)— 服务注册与服务调用

    目录 1.环境介绍 2.服务提供 2.1 创建工程 2.2 修改配置文件 2.3 修改启动文件 2.5 亲测注意事项 3.服务调用 3.1 创建工程 3.2 修改配置文件 3.3 修改启动文件 3.4 ...

  3. Window 10 安装 MySQL

    1.下载 点击官网下载路径下载压缩包 点击第一个按钮后出现如下界面 下载后解压缩,我这里是放在C:\web\目录下 2.创建配置文件 注意:my.ini文件是自己创建的配置文件 文件内容如下: [my ...

  4. log4j的简单使用

    引入jar包org.apache.log4j.Logger,项目src目录下建立一个log4j.properties配置文件 log4j.rootLogger=INFO,A1,R log4j.appe ...

  5. 怎样修改织梦网站的favicon图标

    现在很多的网站浏览器栏上都有favicon图标,比如百度,大家用织梦做好网站后,可能发现自己的网站favicon图标默认的不好看,如何修改织梦网站的favicon导航图标呢,很多人肯定有过困惑,小编遇 ...

  6. (转) AJAX POST&跨域 解决方案 - CORS

    跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免 ...

  7. RoadFlowCore工作流2.8.1 更新日志

    1.2.8.1更新了2.8刚发布的一些小BUG. 2.2.8.1增加了移动端,基于微信企业号或企业微信. 详细请参阅官方网站:roadflow.net

  8. linux 的 磁盘管理

    1. 查看信息 1.1 查看磁盘信息 在linux中如果需要查看磁盘信息,需要使用df和du命令. df: 列出文件系统中整个磁盘的使用量 du:评估文件系统中磁盘的使用量,经常用来推算目录所占的容量 ...

  9. bootstrap colorscheme以及theme自动生成

    http://paintstrap.com/ 是一个根据adobe kuler color scheme自动生成theme 的工具,比较直观好用,对于调整前端theme有一定参考意义

  10. jquery实用技巧之输入框提示语句

    我们在编写网页的时候不可避免的会遇到输入框,那么怎么设计输入框才能更加优雅呢?不同的人会有不同的答案,下面分享一个比较不错的设计. 效果图 细节 这个效果主要是通过JQuery来实现,我的思路如下: ...