正文
引言:
纵然是基础,也还是有很多人不会;
sqlyog,navicat...
),创建数据库spring-test
,导入以下SQLDROP TABLE IF EXISTS USER;
CREATE TABLE USER (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(32) NOT NULL COMMENT '用户名称',
birthday DATETIME DEFAULT NULL COMMENT '生日',
sex CHAR(1) DEFAULT NULL COMMENT '性别',
address VARCHAR(256) DEFAULT NULL COMMENT '地址',
PRIMARY KEY (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT INTO USER(id,username,birthday,sex,address) VALUES (41,'老王','2018-02-27 17:47:08','男','北京'),(42,'小二王','2018-03-02 15:09:37','女','鼓岭'),(43,'小二王','2018-03-04 11:34:34','女','东京'),(45,'南京','2018-03-04 12:04:06','男','北京金燕龙'),(46,'老王','2018-03-07 17:37:26','男','北京'),(48,'小马宝莉','2018-03-08 11:44:00','女','北京修正');
DROP TABLE IF EXISTS account;
CREATE TABLE account (
accountId INT(11) NOT NULL AUTO_INCREMENT,
UID INT(11) DEFAULT NULL COMMENT '用户编号',
MONEY DOUBLE DEFAULT NULL COMMENT '金额',
PRIMARY KEY (accountId),
KEY FK_Reference_8 (UID),
CONSTRAINT FK_Reference_8 FOREIGN KEY (UID) REFERENCES USER (id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
INSERT INTO account(accountId,UID,MONEY) VALUES (1,46,1000),(2,45,1000),(3,46,2000);
<?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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mobaijun</groupId>
<artifactId>spring_test</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!-- 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.6</version>
</dependency>
<!-- Spring的JdbcTemplate -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<!-- spring的IOC -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
</dependencies>
</project>
/**
* DevelopmentTool: IntelliJ IDEA 2018.2.4 x64
* Author: Auser·杰
* CreateDate: 2020/1/6 0:09
* 释义: 账户实体类
*/
@Data
public class Account implements Serializable{
private int accountId;
private int uid;
private double money;
/**
* DevelopmentTool: IntelliJ IDEA 2018.2.4 x64
* Author: Auser·杰
* CreateDate: 2020/1/26 0:56
* ClassName: AccountDao
* 释义:accountDao接口
*/
public interface AccountDao {
public void save(Account account);
public void update(Account account);
public void delete(int accountId);
public List<Account> findAll();
}
/**
* DevelopmentTool: IntelliJ IDEA 2018.2.4 x64
* Author: Auser·杰
* CreateDate: 2020/1/26 0:56
* ClassName: AccountDaoImpl
* 释义:AccountDaoImpl实现
*/
public class AccountDaoImpl implements AccountDao {
//需要JdbcTemplate对象(使用IOC容器创建)
private JdbcTemplate jdbcTemplate;
//提供setter,以便IOC进行依赖注入
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
public void save(Account account) {
jdbcTemplate.update("insert into account(uid,money) values(?,?)"
,account.getUid(),account.getMoney());
}
@Override
public void update(Account account) {
jdbcTemplate.update("update account set uid=?,money=? where accountId=?",
account.getUid(),account.getMoney(),account.getAccountId());
}
@Override
public void delete(int accountId) {
jdbcTemplate.update("delete from account where accountId = ?",accountId);
}
@Override
public List<Account> findAll() {
return jdbcTemplate.query("select * from account",new BeanPropertyRowMapper<>(Account.class));
}
}
/**
* DevelopmentTool: IntelliJ IDEA 2018.2.4 x64
* Author: Auser·杰
* CreateDate: 2020/1/26 0:56
* ClassName: AccountService
* 释义:AccountService实现
*/
public interface AccountService {
public void save(Account account);
public void update(Account account);
public void delete(int accountId);
public List<Account> findAll();
}
/**
* DevelopmentTool: IntelliJ IDEA 2018.2.4 x64
* Author: Auser·杰
* CreateDate: 2020/1/26 0:56
* ClassName: BaseController
* 释义:账户Service实现
*/
public class AccountServiceImpl implements AccountService{
//需要AccountDao对象(使用IOC进行注入)
private AccountDao accountDao;
//给IOC进行依赖注入的方法
public void setAccountDao(AccountDao accountDao) {
this.accountDao = accountDao;
}
@Override
public void save(Account account) {
accountDao.save(account);
}
@Override
public void update(Account account) {
accountDao.update(account);
}
@Override
public void delete(int accountId) {
accountDao.delete(accountId);
}
@Override
public List<Account> findAll() {
return accountDao.findAll();
}
}
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/spring_test?characterEncoding=utf-8
jdbc.username=xxxxxx
jdbc.password=xxxxxxx
<?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"
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">
<!-- 读取jdbc.properties文件 -->
<!--
classpath: 从类路径下面开始加载
-->
<context:property-placeholder location="classpath:jdbc.properties"/>
<!-- 1. 创建数据源对象 -->
<!--
DruidDataSource ds = new DruidDataSource()
ds.setUrl(xxx);
....
-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!-- 2. 创建JdbcTemplate对象,同时注入数据源 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!-- <constructor-arg ref="dataSource"/>-->
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 3. 创建Dao对象,同时注入JdbcTemplate对象 -->
<bean id="accountDao" class="com.mobaijun.dao.impl.AccountDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
<!-- 4. 创建Service对象,同时注入Dao对象 -->
<bean id="accountService" class="com.mobaijun.service.impl.AccountServiceImpl">
<property name="accountDao" ref="accountDao"/>
</bean>
</beans>
/**
* DevelopmentTool: IntelliJ IDEA 2018.2.4 x64
* Author: Auser·杰
* CreateDate: 2020/1/26 0:56
* ClassName: AccountServiceTest
* 释义:测试类
*/
public class AccountServiceTest {
@Test
public void testFindAll(){
//1.创建IOC容器
ApplicationContext ac = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
//2.获取service对象
AccountService accountService = (AccountService)ac.getBean("accountService");
List<Account> list = accountService.findAll();
for(Account account:list){
System.out.println(account);
}
}
}
好了各位读者朋友们,以上就是本文的全部内容了。