spring-dao-anno全注解方式连接数据库,进行增删改查示例
2020-01-15 11:53
344 查看
基于Maven项目:
pom.xml
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.2.1.RELEASE</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.2.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.2.1.RELEASE</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.45</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.21</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.1.RELEASE</version> </dependency> </dependencies>
实体类:
Employee.java
package com.bean; import java.io.Serializable; public class Employee implements Serializable { private static final long serialVersionUID = 3150943784355277187L; private Integer id; private String name; private int age; public Employee() { } public Employee(String name, int age) { this.name = name; this.age = age; } public Employee(Integer id, String name, int age) { this.id = id; this.name = name; this.age = age; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } 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 "Employee [id=" + id + ", name=" + name + ", age=" + age + "]"; } }
dao:
EmployeeDao.java
package com.dao; import java.util.List; import com.bean.Employee; public interface EmployeeDao { public void save(Employee employee); public List<Employee> getAll(); }
dao实现类:
EmployeeDaoImpl.java
package com.dao.impl; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import com.bean.Employee; import com.dao.EmployeeDao; @Repository public class EmployeeDaoImpl implements EmployeeDao { @Autowired private JdbcTemplate template; @Override public void save(Employee employee) { template.update("INSERT INTO tb_employee(name,age) VALUES(?,?)", employee.getName(), employee.getAge()); } @Override public List<Employee> getAll() { return template.query("SELECT * FROM tb_employee", new RowMapper<Employee>(){ @Override public Employee mapRow(ResultSet rs, int rowNum) throws SQLException { Employee employee = new Employee(); employee.setId(rs.getInt("id")); employee.setName(rs.getString("name")); employee.setAge(rs.getInt("age")); return employee; } }); } }
service:
EmployeeService.java
package com.service; import java.util.List; import com.bean.Employee; public interface EmployeeService { public void save(Employee employee); public List<Employee> getAll(); }
service实现类:
EmployeeServiceImpl.java
package com.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.bean.Employee; import com.dao.EmployeeDao; import com.service.EmployeeService; @Service public class EmployeeServiceImpl implements EmployeeService { @Autowired private EmployeeDao employeeDao; @Override public void save(Employee employee) { employeeDao.save(employee); } @Override public List<Employee> getAll() { return employeeDao.getAll(); } }
配置类:在主包下面
AppConfig.java
package com; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import org.springframework.context.annotation.PropertySource; @Configuration//代表是配置文件 @PropertySource("classpath:db.properties") @Import(JdbcConfig.class) // 引入别的配置文件 @ComponentScan("com") public class AppConfig { }
JdbcConfig.java
package com; import javax.sql.DataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.jdbc.core.JdbcTemplate; import com.alibaba.druid.pool.DruidDataSource; //@Configuration,可要可不要,如果没在AppConfig下引用的话,就必须要。 public class JdbcConfig { @Value("${jdbc.driverClassName}") private String driverClass; @Value("${jdbc.url}") private String jdbcUrl; @Value("${jdbc.username}") private String username; @Value("${jdbc.password}") private String password; @Bean("dataSource") public DataSource dataSource() { DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName(driverClass); ds.setUrl(jdbcUrl); ds.setUsername(username); ds.setPassword(password); return ds; } @Bean public JdbcTemplate jdbcTemplate(DataSource dataSource) { return new JdbcTemplate(dataSource); } }
db.properties
jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/test jdbc.username=root jdbc.password=root
纯注解测试
AppConfigTest.java
package com.test; import java.util.List; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; import com.AppConfig; import com.bean.Employee; import com.service.EmployeeService; // 纯注解测试 @RunWith(SpringRunner.class) @ContextConfiguration(classes=AppConfig.class) public class AppConfigTest { @Autowired private EmployeeService service; @Test public void testGetAll() { List<Employee> emps = service.getAll(); for (Employee emp : emps) { System.out.println(emp); } } @Test public void testAdd() { service.save(new Employee(3,"aa",32)); } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- spring-tx-anno,spring事务中xml与注解相结合的方式之转账示例
- 二、spring Boot构建的Web应用中,基于MySQL数据库的几种数据库连接方式进行介绍
- java springBoot连接数据库进行增删改查、模糊查询、表连接、全选操作、分页操作、数据回显。学习项目实例
- Spring 使用注解方式进行事务管理
- spring配置datasource三种方式 数据库连接
- Spring 使用注解方式进行事务管理
- 每日一得--Spring 应用程序经常获取不到数据库连接,平时进行数据库操作也很慢
- Spring与Hibernate Dao中操作数据库的另外方式
- Python 3.x 连接数据库示例(pymysql 方式)
- [java][spring]取得通过配置文件和注解注入的bean、取得当前数据库连接、取得ApplicationContext的方法
- java连接Hbase 1.4.0集群进行增删改查示例
- Spring连接数据库的几种常用的方式
- [bigdata-076] maven+mybatis+mysql 数据库 mybatis注解方式 示例
- Spring 使用注解方式进行事务管理
- ODBC 、DAO 、ADO 、OLEDB 数据库连接方式区别及联系(转摘)
- Spring使用AspectJ进行AOP的开发:注解方式
- Silverlight 使用WCF RIA 方式对数据库进行增删改查
- C# ADO.net连接数据库 进行增删改查操作
- Spring 使用注解方式进行事务管理
- springboot+mybatis结合 并对数据库中的数据进行增删改查