一、spring jdbcTemplate基本使用
1)导入spring-jdbc 和spring-tx坐标(spring-tx(事务包))
2)创建数据库和实体类
3)创建JdbcTemplate对象
4)执行数据库操作
二、使用步骤
第1步:首先创建一个maven项目,在maven项目下,在pom中添加整个项目的依赖的jar包。有spring-context,注解jar,mysql,jdbc,spring-core,spring-context,c3p0等。
下面展示一些 内联代码片
。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.fan</groupId>
<artifactId>spring-jdbc01</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.3.RELEASE</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.32</version>
</dependency>
</dependencies>
</project>
第2.1步:创建数据库:可以用navicat,这里使用sqlyog.
第2.2步:在domain包下创建实体类User
下面展示一些 内联代码片
。
package com.fan.domain;
public class user {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "user{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
第3.1步:在resources文件中建一个file,名字叫jdbc.properties文件,内容如下:
注意如果你的mysql是8,导入的jar是5.1.6.需要如下配置。不然出错。
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=UTF8
jdbc.username=root
jdbc.password=root
第3.2步:编写spring配置文件applicationContext.xml(这里写成了app.xml)
注意:写配置文件一定要先把pom中依赖的各种jar包坐标写好。不然容器中很多报错
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--1.加载配置文件-->
<context:property-placeholder location="classpath:jdbc.properties" ></context:property-placeholder>
<!--2.设置数据源c3p0-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!--3.将数据源配到jdbcTemplate中-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!--设置属性-->
<property name="dataSource" ref="dataSource"></property>
</bean>
</beans>
第4步:编写测试类文件
Spring 可以与Junit 进行测试,引入spring-test 的jar包。
package com.fan.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)1创建Spring上下文
@ContextConfiguration("classpath:app.xml")//2加载路径在类资源下;
public class JDBCtest {
@Autowired
private JdbcTemplate jdbcTemplate;
@Test
public void test01(){
ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("app.xml");
JdbcTemplate jdbcTemplate = (JdbcTemplate) app.getBean("jdbcTemplate");
String sql = "insert into user values ( ? ,? )" ;
int update = jdbcTemplate.update(sql, "小黑", 33);
System.out.println(update);
}
}
新的测试类方法:用SpringJUnit4ClassRunner运行内核进行测试运行:注意导包时候pom文件中要有相应的jar包坐标依赖
package com.fan.test;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)//1创建Spring上下文
@ContextConfiguration("classpath:app.xml")//2加载路径在类资源下
public class JDBCtest {
@Autowired
private JdbcTemplate jdbcTemplate;
@Test
public void test01(){
ClassPathXmlApplicationContext app = new ClassPathXmlApplicationContext("app.xml");
JdbcTemplate jdbcTemplate = (JdbcTemplate) app.getBean("jdbcTemplate");
String sql = "insert into user values ( ? ,? )" ;
int update = jdbcTemplate.update(sql, "小黑", 33);
System.out.println(update);
}
}
总结
提示:这里对文章进行总结:
maven中pom依赖的jar包坐标比较多,容易疏漏,造成项目报错。大家最好列一个jar包的列表。防止少jar包。