Spring 操作 jdbc 链接数据库
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 链接数据库的更多相关文章
- 4、原生jdbc链接数据库常用资源名
原生jdbc链接数据库要素:#MySql:String url="jdbc:mysql://localhost:3306/数据库名";String name="root& ...
- jdbc链接数据库,获取表名,字段名和数据
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import ...
- Spring实战6:利用Spring和JDBC访问数据库
主要内容 定义Spring的数据访问支持 配置数据库资源 使用Spring提供的JDBC模板 写在前面:经过上一篇文章的学习,我们掌握了如何写web应用的控制器层,不过由于只定义了SpitterRep ...
- JDBC链接数据库步骤
java中定义链接数据库的标准:JDBC 1.导包:不同数据库有不同的jdbc驱动包,而且jdbc驱动包和数据库版本必须对应 2.测试 3.写代码 try { 1.//加载JDBC驱动 Clas ...
- jdbc链接数据库的三种方式
/** * jdbc连接数据库 * @author APPle * */ public class Demo1 { //连接数据库的URL private String url = "jdb ...
- 1019 JDBC链接数据库进行修删改查
package com.liu.test01; import java.sql.Statement; import java.sql.Connection; import java.sql.Drive ...
- 3、原生jdbc链接数据库之锁与事务
一.锁的概念1.作用:是保证数据的一致性,只能一个人修改数据,不能同时多用户修改2.分类:行级锁和表级锁 乐观锁和悲观锁 二.事务1.为了保证数据的一致性和完整性,让数据库的多项操作合并为一个整体 ...
- 如何使用JDBC链接数据库
1.加载数据库驱动 不同的数据库加载的驱动不一样 Class.forName(com.MySQL.jdbc.Driver) Class.forName(oracle.jdbc.driver.Oracl ...
- jdbc 链接数据库步骤 7步
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), ...
随机推荐
- 面试题:hibernate 有用
1. Hibernate的工作流程? 答案: 1.通过Configuration对象读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory对象 3.打开session 4.创建事 ...
- seconds
set_time_limit();//设置脚本运行时间为1秒
- JSP内置对象与servlet对应关系
隐式对象 说明 out 转译后对应JspWriter对象,其内部关联一个PringWriter对象 request 转译后对应HttpServletRequest/ServletRequest对象 r ...
- 何为软件的Alpha、Beta、RC和GA发布版本?
简介 一个软件或者一个功能在发布时,通常会有Beta版这么一说.我很熟悉,差不多知道是什么意思,但没去深究,感觉上就是一个可以用但不保证功能稳定的版本. 直到昨天我看到了 MariaDB 数据库发布标 ...
- HTML__图片轮播ion-slide-box
先大概描述一下要做的界面: 从网络请求json数据,获取网络图征数据,然后轮播图片.我遇到的问题是:图片不显示,代码如下 <ion-slide-box does-continue="t ...
- leetcode N-Queens I && N-Queens II
第一个的代码: #include<iostream> #include<vector> using namespace std; bool isLegal(int i, int ...
- 软件工程:Java实现WC.exe基本功能
项目相关要求 GitHub地址:https://github.com/3216004716/WC 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功能,并能够快速地处 ...
- window7 Oracle卸载步骤
完全卸载oracle11g步骤:1. 开始->设置->控制面板->管理工具->服务(或 运行 services.msc) 停止所有Oracle服务.2. 开始->程序-& ...
- SQL计算时间差并排除周末
SQL计算时间差并排除周末 CREATE FUNCTION DI_FN_GET_WorkDay (@begin DATETIME , @end DATETIME ) RETURNS int BEGIN ...
- 【大数据之数据仓库】GreenPlum优化器对比测试
在< [大数据之数据仓库]选型流水记>一文中有提及,当时没有测试GreenPlum的quicklz压缩算法和ORCA查询优化器,考虑到quicklz压缩算法因为版权问题不会开源(详情请参阅 ...