您的位置:首页 > 编程语言 > Java开发

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));

}
}
  • 点赞
  • 收藏
  • 分享
  • 文章举报
一梦如意 发布了92 篇原创文章 · 获赞 1 · 访问量 1009 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: