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虚拟机), ...
随机推荐
- Apache htcacheclean命令
一.简介 htcacheclean可以用于将mod_disk_cache的磁盘缓冲区占用的空间保持在一个合理的水平.这个工具可以手动运行也可以作为后台守护进程运行.当作为守护进程运行的时候,它将每隔一 ...
- cakephp中sql查询in
$list = $this->Capital->find('all', array('conditions'=>array('remark in '=>array('银联支付' ...
- Mr_matcher的细节2
1.参数服务器 ROS参数服务器能保存数据类型包括:strings, integers, floats, booleans, lists, dictionaries, iso8601 dates, a ...
- LightOJ 1079 Just another Robbery (01背包)
题意:给定一个人抢劫每个银行的被抓的概率和该银行的钱数,问你在他在不被抓的情况下,能抢劫的最多数量. 析:01背包,用钱数作背包容量,dp[j] = max(dp[j], dp[j-a[i] * (1 ...
- 编写高质量代码改善C#程序的157个建议——建议6: 区别readonly和const的使用方法
建议6: 区别readonly和const的使用方法 很多初学者分不清readonly和const的使用场合.在我看来,要使用const的理由只有一个,那就是效率.但是,在大部分应用情况下, “效率” ...
- LSI SAS3008 RAID配置方法
7.1 概述 LSI SAS3008 RAID 控制卡(以下简称LSI SAS3008)是基于Fusion-MPT™ (消息传递技术)架构的8端口12Gbit/s SAS控制器,并采用PCIe3.0 ...
- android studio中使用recyclerview小白篇(二)
前面一个说了怎么把这个包引用进来,这一节说怎么做一个简单的例子出来,我也是照着别人的例子写的,然后慢慢改就行了,做好的效果如下图 1.在我们的activity_main中把recyclerview填加 ...
- SourceTree使用
SourceTree的基本使用 1. SourceTree是什么 拥有可视化界面的项目版本控制软件,适用于git项目管理 window.mac可用 2. 获取项目代码 1. 点击克隆/新建 2. ...
- 生成MySql数据库的数据字典代码参考
Code: /** * 生成mysql数据字典 */ //配置数据库 $dbserver = "127.0.0.1"; $dbusername = "root" ...
- SpringMVC+Hibernate 使用 session.update(obj) 未更新的问题
1.使用spring控制事务 2.使用session.update(obj)执行更新 spring事务配置: <bean id="transactionBese" class ...