spring下的jdbcTemplate对数据库的操作
2022/6/17 2:20:11
本文主要是介绍spring下的jdbcTemplate对数据库的操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
spring下的jdbcTemplate对数据库的操作
pom.xml
<?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"> <parent> <artifactId>Spring</artifactId> <groupId>com.msb</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>Demo2</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <packaging>jar</packaging> <dependencies> <!--spring核心核心容器包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.5</version> </dependency> <!--junit测试文件包--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.1</version> <scope>test</scope> </dependency> <!--spring切面包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>5.3.5</version> </dependency> <!--aop联盟包--> <dependency> <groupId>aopalliance</groupId> <artifactId>aopalliance</artifactId> <version>1.0</version> </dependency> <!--德鲁伊连接池--> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> </dependency> <!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> </dependency> <!--springJDBC包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.5</version> </dependency> <!--spring事务控制包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.3.5</version> </dependency> <!--spring orm 映射依赖--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>5.3.5</version> </dependency> <!--Apache Commons日志包--> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency><!--lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> <scope>provided</scope> </dependency> </dependencies> </project>
spring配置文件
<?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 "> <!--spring注解扫描--> <context:component-scan base-package="com.msb" ></context:component-scan> <!--引入外部文件--> <context:property-placeholder location="classpath:jdbc.properties"/> <!--配置德鲁伊连接池--> <bean id="DataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="username" value="${jdbc_username}"></property> <property name="password" value="${jdbc_password}"></property> <property name="url" value="${jdbc_url}"></property> <property name="driverClassName" value="${jdbc_driver}"></property> </bean> <!--配置jdbcTemplate对象,并注入到德鲁伊数据池中--> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="DataSource"></property> </bean> <!--开启自动生成代理对象--> <aop:aspectj-autoproxy/> </beans>
jdbc配置文件
jdbc_username=root jdbc_password=root jdbc_driver=com.mysql.cj.jdbc.Driver jdbc_url=jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
service接口
package com.msb.service; import com.msb.pojo.Emp; import java.util.List; public interface EmpService { int findEmpCount(); Emp findByEmpno(int empno); List<Emp> findByDeptno(int deptno); int addEmp(Emp emp); }
service接口实现类
package com.msb.service.impl; import com.msb.dao.Empdao; import com.msb.pojo.Emp; import com.msb.service.EmpService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class EmpServiceImpl implements EmpService { @Autowired private Empdao empdao;//让spring自动调用实现empdao的方法和属性 @Override public int findEmpCount() { //alt+回车;在dao接口中创建次方法findEmpdao return empdao.findEmpdao(); } @Override public Emp findByEmpno(int empno) { return empdao.findByEmpdo(empno); } @Override public List<Emp> findByDeptno(int deptno) { return empdao.dindByDeptno(deptno); } @Override public int addEmp(Emp emp) { return empdao.addEmp(emp); } }
实现类中自动创建的方法到dao层接口方法
package com.msb.dao; import com.msb.pojo.Emp; import java.util.List; public interface Empdao { int findEmpdao(); Emp findByEmpdo(int empno); List<Emp> dindByDeptno(int deptno); int addEmp(Emp emp); }
dao层实现类
package com.msb.dao.impl; import com.msb.dao.Empdao; import com.msb.pojo.Emp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; import java.util.List; @Repository public class EmpDaoImpl implements Empdao { @Autowired private JdbcTemplate jdbcTemplate;//注入jdbcTemplate /** * 查询员工个数 * @return 返回员工数量信息 */ @Override public int findEmpdao() { Integer integer = jdbcTemplate.queryForObject("select count(1) from emp", Integer.class); return integer; } @Override public Emp findByEmpdo(int empno) { BeanPropertyRowMapper<Emp> rowMapper = new BeanPropertyRowMapper<>(Emp.class); Emp emp = jdbcTemplate.queryForObject("select * from emp where empno=?", rowMapper, empno); return emp; } @Override public List<Emp> dindByDeptno(int deptno) { BeanPropertyRowMapper<Emp> rowMapper = new BeanPropertyRowMapper<>(Emp.class); List<Emp> empList = jdbcTemplate.query("select * from emp where deptno=?", rowMapper, deptno); return empList; } @Override public int addEmp(Emp emp) { Object obj[] ={emp.getEmpno(),emp.getEname(),emp.getJob(),emp.getMgr(),emp.getHiredate(),emp.getSal(),emp.getComm(),emp.getDeptno()}; int update = jdbcTemplate.update("insert into emp values (?,?,?,?,?,?,?,?)", obj); return update; } }
实体类,数据表的字段
package com.msb.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.springframework.stereotype.Component; import java.io.Serializable; import java.util.Date; @Data @AllArgsConstructor @NoArgsConstructor public class Emp implements Serializable { private Integer empno; private String ename; private String job; private Integer mgr; //这里要使用util date private Date hiredate; private Double sal; private Double comm; private Integer deptno; }
测试调用方法
package com.msb; import com.msb.pojo.Emp; import com.msb.service.EmpService; import lombok.Builder; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.Date; import java.util.List; public class test { @Test public void test1(){ ApplicationContext context = new ClassPathXmlApplicationContext("Application.xml"); EmpService empService = context.getBean(EmpService.class); //查询员工个数 int empCount = empService.findEmpCount(); System.out.println(empCount); //根据员工编号查询 Emp byEmpno = empService.findByEmpno(7521); System.out.println(byEmpno); //添加一条数据 Emp emp =new Emp(7899,"肖邦","Singer",4500,new Date(),4500.0,200.0,20); int addEmp = empService.addEmp(emp); if (addEmp==1){ System.out.println("影响一条数据"); }else { System.out.println("再检查检查"); } //根据部门编号进行查询 List<Emp> byDeptno = empService.findByDeptno(20); byDeptno.forEach(System.out::println); } }
这篇关于spring下的jdbcTemplate对数据库的操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性