JDBCTemplate操作数据库:
先将jdbc需要的jar包
mysql-connector-java-8.0.27.jar
spring-tx-5.1.10.RELEASE.jar
spring-jdbc-5.1.10.RELEASE.jar
要真正真的运行还需要其他的jar包,但是我这里用的是maven,就不需要自己导入了,这个程序需要的jar包会都通过
下面是maven中的pom文件:
<?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>org.example</groupId>
<artifactId>JDBC1</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.10.RELEASE</version>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>
填装进去之后,创建xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
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
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--扫描指定的包-->
<context:component-scan base-package="Jdbcdate"></context:component-scan>
<!--开启注解-->
<context:annotation-config></context:annotation-config>
<!--创建连接池-->
<bean id="driverManagerDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"
>
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/parent"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<!--创建jdbcTemplate来使用连接池-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="driverManagerDataSource"></property>
</bean>
</beans>
创建一个接口用来抽象定义方法,下面再创建接口的实现类,用到多态,来提高代码的复用性
接口:
package Jdbcdate;
public interface Dao {
void update(User user);
void adddatabase(User user);
void delet(User user);
}
实现类:
package Jdbcdate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
@Repository//等于<bean id="daoimpl" class="Jdbcdate.DaoImpl"/>
public class DaoImpl implements Dao {
@Autowired//相当于<property XXX ref XXX/>就是属性的注册
private JdbcTemplate jdbcTemplate;
//调用JdbcTemplate中的update方法(可以是删除,更新,也可以是增加新的内容,具体要看其中的SQL语句),下面三个方法就是增加,更新(改变一个值)
public void adddatabase(User user) {
int a=jdbcTemplate.update("insert into `mom`(name,age,career) values(?,?,?)",user.getName(),user.getAge(),user.getCareer());
System.out.println(a);
}
public void update(User user){
jdbcTemplate.update("update `mom` set name=? where career=?",user.getName(),user.getCareer());
}
public void delet(User user){
jdbcTemplate.update("delete from `mom` where name=?",user.getName());
}
}
实现类是完成工作的工具,Serve类则是调用这个方法:
Serve类:
package Jdbcdate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service("Serv")//相当于<bean id="Serv" class="Jdbcdate.Serv"/>
public class Serv{
@Autowired//等于<property XXX ref XXX>
private Dao dao;
public void adddate(User user){
dao.adddatabase(user);
}
public void update(User user){dao.update(user);}
public void delet(User user){dao.delet(user);}
}
工具和会用工具的类都有了
这时候就将提供数据用户放进去,上面的代码就是利用户类的提供的数据进行增删改查功能的实现:
用户类:
package Jdbcdate;
public class User {
private String name;
private int age;
private String career;
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;
}
public String getCareer() {
return career;
}
public void setCareer(String career) {
this.career = career;
}
}
最后创建测试类:
import Jdbcdate.Serv;
import Jdbcdate.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("Bean.xml");
Serv serv =(Serv) applicationContext.getBean("Serv");
User user=new User();
user.setAge(19);
user.setName("沅江");
user.setCareer("摄影师");
serv.adddate(user);
}
}