网站建设 音频插件,addthis wordpress,互联网营销师培训方案,海南在线个人简介#xff1a;Java领域新星创作者#xff1b;阿里云技术博主、星级博主、专家博主#xff1b;正在Java学习的路上摸爬滚打#xff0c;记录学习的过程~ 个人主页#xff1a;.29.的博客 学习社区#xff1a;进去逛一逛~ 通过JdbcTemplate实现 增删查改一、添加相关依… 个人简介Java领域新星创作者阿里云技术博主、星级博主、专家博主正在Java学习的路上摸爬滚打记录学习的过程~ 个人主页.29.的博客 学习社区进去逛一逛~ 通过JdbcTemplate实现 增删查改一、添加相关依赖二、jdbc.properties配置文件三、创建数据源对象配置JdbcTemplateXML配置文件四、实现CRUD操作①添加操作②删除操作③修改操作④查询操作一、添加相关依赖 maven依赖 dependencies!--spring jdbc Spring 持久化层支持jar包--dependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.2.6.RELEASE/version/dependency!-- MySQL驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.31/version/dependency!-- 数据源 --dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.15/version/dependency!--junit5测试--dependencygroupIdorg.junit.jupiter/groupIdartifactIdjunit-jupiter-api/artifactIdversion5.9.0/version/dependency!--当你引入Spring Context依赖之后表示将Spring的基础依赖引入了--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.2.6.RELEASE/version/dependency!--spring对junit的支持相关依赖--dependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion5.2.6.RELEASE/version/dependency注意MySQL驱动的版本需要与下载使用的MySQL版本一致...二、jdbc.properties配置文件 配置文件内容 ①用户 ②密码 ③url ④驱动 jdbc.userroot
jdbc.passwordabc123
jdbc.urljdbc:mysql://localhost:3306/spring?characterEncodingutf8useSSLfalse
jdbc.drivercom.mysql.cj.jdbc.Driver三、创建数据源对象配置JdbcTemplateXML配置文件 这里通过XML配置文件的方式读取外部属性文件jdbc.properties,根据读取的信息来获取数据源对象。
这样做的好处是当我们需要更换数据库账用户或者是修改数据库地址时只需要对外部配置文件进行修改即可。
配置jdbcTemplate对象时id jdbcTemplate ; class org.springframework.jdbc.core.JdbcTemplate
?xml version1.0 encodingUTF-8?
beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd!-- 导入外部属性文件 --context:property-placeholder locationclasspath:jdbc.properties /!-- 创建数据源对象 --bean iddruidDataSource classcom.alibaba.druid.pool.DruidDataSourceproperty nameurl value${jdbc.url}/property nameusername value${jdbc.user}/property namepassword value${jdbc.password}/property namedriverClassName value${jdbc.driver}//bean!-- 配置jdbcTemplate对象注入数据源 --bean idjdbcTemplate classorg.springframework.jdbc.core.JdbcTemplateproperty namedataSource refdruidDataSource//bean
/beans四、实现CRUD操作 无论是增删改操作还是查询操作第一步都是先编写SQL语句。
增删改操作时调用jdbcTemplate.update()方法查询操作时可调用jdbcTemplate.queryForObject()和jdbcTemplate.query()等方法
①添加操作
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;/*** author .29.* create 2023-02-06 19:34*/SpringJUnitConfig(locations classpath:beans.xml)
public class JDBCTemplateTest {Autowiredprivate JdbcTemplate jdbcTemplate;Testpublic void testUpdate(){//1、添加操作//第一步 编写sql语句String sql insert into t_emp values(NULL,?,?,?);;//第二步 调用jdbcTemplate的方法完成更新int rows jdbcTemplate.update(sql, 高启兰, 20, 女);//按顺序传入参数/*也可通过数组传入参数* Object[] params {高启强, 27, 男}* int rows jdbcTemplate.update(sql,params);* */System.out.println(影响行数 rows);}
}②删除操作
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;/*** author .29.* create 2023-02-06 19:34*/SpringJUnitConfig(locations classpath:beans.xml)
public class JDBCTemplateTest {Autowiredprivate JdbcTemplate jdbcTemplate;Testpublic void testUpdate(){//2.删除操作String sql delete from t_emp where id ?;int rows jdbcTemplate.update(sql,2);System.out.println(rows);}
}③修改操作
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;/*** author .29.* create 2023-02-06 19:34*/SpringJUnitConfig(locations classpath:beans.xml)
public class JDBCTemplateTest {Autowiredprivate JdbcTemplate jdbcTemplate;Testpublic void testUpdate(){//3.修改操作String sql update t_emp set name ? where id ?;int rows jdbcTemplate.update(sql,强盛集团老总,1);System.out.println(rows);}
} ④查询操作
查询操作可以查询对象查询集合查询单个值等...import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;import java.util.List;/*** author .29.* create 2023-02-06 19:34*/SpringJUnitConfig(locations classpath:beans.xml)
public class JDBCTemplateTest {Autowiredprivate JdbcTemplate jdbcTemplate;//一、查询返回对象Testpublic void testSelectObject(){String sql select * from t_emp where id ?;//方法一手动封装对象(不推荐麻烦)Emp empResult jdbcTemplate.queryForObject(sql,((resultSet, i) - {Emp emp new Emp();emp.setId(resultSet.getInt(id));emp.setName(resultSet.getString(name));emp.setAge(resultSet.getInt(age));emp.setSex(resultSet.getString(sex));return emp;}),1);System.out.println(empResult);//方法二直接调用方法封装对象 (new BeanPropertyRowMapper(Emp.class))Emp empResult2 jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper(Emp.class),1);System.out.println(empResult2);}//二、查询返回List集合Testpublic void testSelectList(){String sql select * from t_emp;ListEmp list jdbcTemplate.query(sql,new BeanPropertyRowMapper(Emp.class));System.out.println(list);}//三、查询返回单个值Testpublic void testSelectSingle(){String sql select count(*) from t_emp;Integer count jdbcTemplate.queryForObject(sql,Integer.class);System.out.println(count);}