一、依赖
<dependencies>
<!--spring-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.28</version>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.9</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.7</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.29</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.16</version>
</dependency>
<!--springjdbc-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.28</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.28</version>
</dependency>
</dependencies>
二、配置
<!--扫描-->
<context:component-scan base-package="com.apesource"></context:component-scan>
<!--数据源-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/account_db?serverTimezone=GMT"></property>
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<!--sqlSessionFacotyBean-->
<bean id="factoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!--mybatis主配置文件-->
<property name="configLocation" value="classpath:mybatis.xml"></property>
</bean>
<!--MapperScannerConfigurer-->
<bean id="configurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.apesource.dao"></property>
</bean>
数据库
三、类
3.1.POJO
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Account {
private int aid;
private String aname;
private int amoney;
public Account(String aname, int amoney) {
this.aname = aname;
this.amoney = amoney;
}
}
3.2.DAO
public interface IAccountDao {
@Insert("insert into account_table(aname,amoney) values (#{aname},#{amoney})")
public void insert(Account account);
@Select("select * from account_table")
public List<Account> showAll();
@Update("UPDATE account_table SET aname = #{aname},amoney = #{amoney} where aid = #{aid}")
public void updateAccount(Account account);
@Select("select * from account_table where aname=#{aname}")
public Account selectByAname(String aname);
}
3.3.SERVICE
public interface IAccountService {
public void insert(Account account);
public List<Account> showAll();
public void updateAccount(Account account);
public Account selectByAname(String aname);
public void transfer(String fromName, String forName, int money);
}
public class AccountServiceImp implements IAccountService {
@Autowired
IAccountDao dao;
@Override
public void insert(Account account) {
dao.insert(account);
}
@Override
public List<Account> showAll() {
return dao.showAll();
}
@Override
public void updateAccount(Account account) {
dao.updateAccount(account);
}
@Override
public Account selectByAname(String aname) {
return dao.selectByAname(aname);
}
public void transfer(String fromName, String forName, int money) {
Account fromAccount = dao.selectByAname(fromName);
Account forAccount = dao.selectByAname(forName);
fromAccount.setAmoney(fromAccount.getAmoney() - money);
forAccount.setAmoney(forAccount.getAmoney() + money);
dao.updateAccount(fromAccount);
dao.updateAccount(forAccount);
}
}
3.4.CONTROLLER
public interface IAccountController {
public void insert(Account account);
public List<Account> showAll();
public void updateAccount(Account account);
public Account selectByAname(String aname);
public void transfer(String fromName,String forName,int money);
}
@Controller(value = "controller")
public class AccountControllerImp implements IAccountController {
@Autowired
IAccountService service;
@Override
public void insert(Account account) {
service.insert(account);
}
@Override
public List<Account> showAll() {
return service.showAll();
}
@Override
public void updateAccount(Account account) {
service.updateAccount(account);
}
@Override
public Account selectByAname(String aname) {
return service.selectByAname(aname);
}
@Override
public void transfer(String fromName, String forName, int money) {
service.transfer(fromName,forName,money);
}
}
四、测试
public class Test0 {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext=new AnnotationConfigApplicationContext(ApplicationContext.class);
IAccountController controller = (IAccountController) applicationContext.getBean("controller");
List<Account> list = controller.showAll();
for (Account account : list){
System.out.println(account);
}
}
}
测试结果:
、