文章目录
- 一、导入spring-jdbc和spring-tx坐标
- 二、创建数据库表和实体
- 在`applicationContext.xml`中配置`连接池`和`JdbcTemplate`
- 在test数据库中创建account表
- 三、创建JdbcTemplate对象
- 四、执行数据库操作
一、导入spring-jdbc和spring-tx坐标
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
二、创建数据库表和实体
在applicationContext.xml
中配置连接池
和JdbcTemplate
<!--加载jdbc.properties-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!--配置数据源-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--配置JDBCTemplate-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"/>
</bean>
- jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=root
在test数据库中创建account表
- 表名:account
- 两列:name和money
三、创建JdbcTemplate对象
//获取spring容器
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
//获取jdbcTemplate对象
JdbcTemplate jdbcTemplate = (JdbcTemplate) app.getBean("jdbcTemplate");
四、执行数据库操作
- 向account表中添加数据{name=“tom”,money=5000}
//执行sql语句
int tom = jdbcTemplate.update("insert into account values (?,?)", "tom", "5000");
//输出结果
System.out.println(tom);
结果:1
表示成功
- 查询name="张三"的数据
//查询一个对象
public void testQueryOne() {
Account account = jdbcTemplate.queryForObject("select * from account where name=?", new BeanPropertyRowMapper<Account>(Account.class), "张三");
System.out.println(account);
}
- 查询所有数据
//查询所有数据,封装进list集合
public void testQueryAll() {
System.out.println(jdbcTemplate.queryForList("select * from account"));
}
结果:[{name=tom, money=5000.0}, {name=张三, money=300.0}, {name=李四, money=500.0}]
- 查询数据总数
//查询数据总数
public void testQueryCountAll() {
Long count = jdbcTemplate.queryForObject("select count(*) from account", Long.class);
System.out.println(count);
}