1. 新建资源文件 db.properities  

jdbc.user=root
jdbc.password=root
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql:///hibernate jdbc.initialPoolSize=5
jdbc.maxPoolSize=10

2. 新建配置文件 bean-jdbc.xml

  

<!-- 导入资源文件 -->
<context:property-placeholder location="classpath:db.properties"/>

<!-- 配置C3P0数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  <property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="initialPoolSize" value="${jdbc.initialPoolSize}"></property>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>
</bean> <!-- 配置 Spring 的 JdbcTemplate -->

  <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
    <property name="dataSource" ref="dataSource"></property>
  </bean>

3. 测试联通性, 更新 或 插入 或 删除 一条数据  使用  jdbcTemplate.update() 函数来实现

package test;

import java.sql.SQLException;
import javax.sql.DataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate; public class Test {
ApplicationContext ctx = null;
JdbcTemplate jdbcTemplate = null; {
ctx = new ClassPathXmlApplicationContext("bean-jdbc.xml");
jdbcTemplate = (JdbcTemplate) ctx.getBean("jdbcTemplate");
} @org.junit.Test
public void testConnection() throws SQLException {
DataSource ds = ctx.getBean(DataSource.class);
System.out.println(ds.getConnection());
} @org.junit.Test
public void testUpdata() {
//更新一条数据
String sql = "update user set name = ? where id = ?";
int update = jdbcTemplate.update(sql, "Jack", 1);
System.out.println(update); //插入一条数据
String sql2 = "insert into user(id, name, age) values(?,?,?)";
int update2 = jdbcTemplate.update(sql2, "5","hello",40);
System.out.println(update2); //删除一条数据
String sql3 = "delete from user where id = ?";
int update3 = jdbcTemplate.update(sql3, 5);
System.out.println(update3);
}
}

4. 批量更新 或 插入, 删除数据

     String sql4 = "insert into user(name, age) values(?,?)";
List<Object[]> batchArgs = new ArrayList();
batchArgs.add(new Object[] {"a1",10});
batchArgs.add(new Object[] {"a2",20});
batchArgs.add(new Object[] {"a3",30});
batchArgs.add(new Object[] {"a4",40});
jdbcTemplate.batchUpdate(sql4, batchArgs);

5.  查询一条语句

  @org.junit.Test
public void testSelect() {
//使用 sql 中的别名 可以使对象和sql字段一一对应
String sql = "select id, name userName, age from user where id = ?"; //指定如何去映射结果集的行, 常用的实现类为 BeanPropertyRowMapper
RowMapper<User> rowMapper = new BeanPropertyRowMapper<>(User.class);
User user = jdbcTemplate.queryForObject(sql, rowMapper, 1);
System.out.println(user.getUserName());
}

5.  查询一组对象

  @org.junit.Test
public void testListSelect() {
//使用 sql 中的别名 可以使对象和sql字段一一对应
String sql = "select id, name userName, age from user where id > ?"; RowMapper<User> rowMapper = new BeanPropertyRowMapper<>(User.class); List<User> user = jdbcTemplate.query(sql, rowMapper, 5); for(User u: user) {
System.out.println(u);
}
}

6.  统计查询,  查询数据条数

  @org.junit.Test
public void testListSelectCount() {
String sql = "select count(id) from user";
Long long1 = jdbcTemplate.queryForObject(sql, Long.class);
System.out.println(long1);
}

Spring 操作 jdbc 链接数据库的更多相关文章

  1. 4、原生jdbc链接数据库常用资源名

    原生jdbc链接数据库要素:#MySql:String url="jdbc:mysql://localhost:3306/数据库名";String name="root& ...

  2. jdbc链接数据库,获取表名,字段名和数据

    import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import  ...

  3. Spring实战6:利用Spring和JDBC访问数据库

    主要内容 定义Spring的数据访问支持 配置数据库资源 使用Spring提供的JDBC模板 写在前面:经过上一篇文章的学习,我们掌握了如何写web应用的控制器层,不过由于只定义了SpitterRep ...

  4. JDBC链接数据库步骤

    java中定义链接数据库的标准:JDBC 1.导包:不同数据库有不同的jdbc驱动包,而且jdbc驱动包和数据库版本必须对应 2.测试 3.写代码 try { 1.//加载JDBC驱动    Clas ...

  5. jdbc链接数据库的三种方式

    /** * jdbc连接数据库 * @author APPle * */ public class Demo1 { //连接数据库的URL private String url = "jdb ...

  6. 1019 JDBC链接数据库进行修删改查

    package com.liu.test01; import java.sql.Statement; import java.sql.Connection; import java.sql.Drive ...

  7. 3、原生jdbc链接数据库之锁与事务

    一.锁的概念1.作用:是保证数据的一致性,只能一个人修改数据,不能同时多用户修改2.分类:行级锁和表级锁   乐观锁和悲观锁 二.事务1.为了保证数据的一致性和完整性,让数据库的多项操作合并为一个整体 ...

  8. 如何使用JDBC链接数据库

    1.加载数据库驱动 不同的数据库加载的驱动不一样 Class.forName(com.MySQL.jdbc.Driver) Class.forName(oracle.jdbc.driver.Oracl ...

  9. jdbc 链接数据库步骤 7步

    JDBC连接数据库   •创建一个以JDBC连接数据库的程序,包含7个步骤:   1.加载JDBC驱动程序:       在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), ...

随机推荐

  1. 面试题:HTTP必知必会——常见面试题总结 背1

    1.常用的HTTP方法有哪些?GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST ...

  2. Vue 与Angular、React框架的对比

    首先,我们先了解什么是MVX框架模式? MVX框架模式:MVC+MVP+MVVM 1.MVC:Model(模型)+View(视图)+controller(控制器),主要是基于分层的目的,让彼此的职责分 ...

  3. Log4J 配置 详解

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...

  4. 3、python的传入参数

    转载:https://blog.csdn.net/abc_12366/article/details/79627263 1.位置参数: def func(a, b): print(a+b) func( ...

  5. R dataframe 遗忘, which 矩阵搜索

    A data frame is used for storing data tables. It is a list of vectors of equal length. For example, ...

  6. vue.js的生命周期 及其created和mounted的部分

    网上很多人有所总结,转载自: https://segmentfault.com/a/1190000008570622   关于created和mounted的部分,也可以参考: https://blo ...

  7. [转]asp.net使用uploadify上传出现的IO Error问题

    原文链接:http://blog.csdn.net/w3031213101/article/details/6335878 解决方法:1.uploadify控件的自定义size必须调整大小,即属性:s ...

  8. VC解决方案,项目,开发一段时间启动调试很慢,半天才开始链接

    笔者这两天写代码过程中,发现自己解决方案下的程序启动调试,半天才开始加载相关的各种库.导致调试的时候很是郁闷 开始以为是项目关联的工程太多导致,但是在相同的解决方案sln下面,新建一个简单的控制台程序 ...

  9. Java 线程不安全问题分析

    当多个线程并发访问同一个资源对象时,可能会出现线程不安全的问题 public class Method implements Runnable { private static int num=50; ...

  10. C++读取txt文件(VS)

    最常用的方法?https://www.cnblogs.com/nkzhangcheng/p/7722568.html https://blog.csdn.net/a125930123/article/ ...