diff --git a/src/main/java/com.louy/config/JdbcConfig b/src/main/java/com.louy/config/JdbcConfig new file mode 100644 index 0000000000000000000000000000000000000000..238a1ccef016857676dcb7f90337b3a58b333502 --- /dev/null +++ b/src/main/java/com.louy/config/JdbcConfig @@ -0,0 +1,29 @@ +package com.atheima.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; + +import javax.sql.DataSource; + +public class JdbcConfig { + @Value("${jdbc.driver}") + private String driver; + @Value("${jdbc.url}") + private String url; + @Value("${jdbc.username}") + private String name; + @Value("${jdbc.password}") + private String pass; + + @Bean + public DataSource dataSource(){ + DruidDataSource ds=new DruidDataSource(); + ds.setDriverClassName(driver); + ds.setUrl(url); + ds.setUsername(name); + ds.setPassword(pass); + return ds; + } + +} \ No newline at end of file diff --git a/src/main/java/com.louy/config/MybatisConfig b/src/main/java/com.louy/config/MybatisConfig new file mode 100644 index 0000000000000000000000000000000000000000..425401242bc59f5b33257f69d2f48097eaad0f67 --- /dev/null +++ b/src/main/java/com.louy/config/MybatisConfig @@ -0,0 +1,24 @@ +package com.atheima.config; + +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.mapper.MapperScannerConfigurer; +import org.springframework.context.annotation.Bean; + +import javax.sql.DataSource; + +public class MybatisConfig { + + @Bean + public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){ + SqlSessionFactoryBean session = new SqlSessionFactoryBean(); + session.setTypeAliasesPackage("com.atheima.domain"); + session.setDataSource(dataSource); + return session; + } + @Bean + public MapperScannerConfigurer mapperScannerConfigurer(){ + MapperScannerConfigurer mapper=new MapperScannerConfigurer(); + mapper.setBasePackage("com.atheima.dao"); + return mapper; + } +} diff --git a/src/main/java/com.louy/config/SpringConfig b/src/main/java/com.louy/config/SpringConfig new file mode 100644 index 0000000000000000000000000000000000000000..f2034907aa2244ae9d22eab07a689034c779086f --- /dev/null +++ b/src/main/java/com.louy/config/SpringConfig @@ -0,0 +1,13 @@ +package com.atheima.config; + +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 +@ComponentScan("com.atheima") +@PropertySource("classpath:jdbc.properties") +@Import({JdbcConfig.class,MybatisConfig.class}) +public class SpringConfig { +} diff --git a/src/main/java/com.louy/dao/AccountDao b/src/main/java/com.louy/dao/AccountDao new file mode 100644 index 0000000000000000000000000000000000000000..a612c9bd6d14fb6719c82548f36de84a5db57dad --- /dev/null +++ b/src/main/java/com.louy/dao/AccountDao @@ -0,0 +1,24 @@ +package com.atheima.dao; + +import com.atheima.domain.Account; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.List; + +public interface AccountDao { + + + @Insert("insert into tbl_account(name,money)values(#{name},#{money})") + void save(Account account); + @Delete("delete from tbl_account where id = #{id}") + void delete(Integer id); + @Update("update tbl_account set name = #{name} , money = #{money} where id = #{id}") + void update(Account account); + @Select("select * from tbl_account") + List findAll(); + @Select("select * from tbl_account where id = #{id}") + Account findById(Integer id); +} diff --git a/src/main/java/com.louy/domain/Account b/src/main/java/com.louy/domain/Account new file mode 100644 index 0000000000000000000000000000000000000000..57ece55eb51ed9bca6f55e3466109e65e7169ea8 --- /dev/null +++ b/src/main/java/com.louy/domain/Account @@ -0,0 +1,51 @@ +package com.atheima.domain; + +import java.io.Serializable; + +public class Account implements Serializable { + private Integer id; + private String name; + private Double money; + + public Account() { + } + + public Account(Integer id, String name, Double money) { + this.id = id; + this.name = name; + this.money = money; + } + + 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 Double getMoney() { + return money; + } + + public void setMoney(Double money) { + this.money = money; + } + + @Override + public String toString() { + return "Account{" + + "id=" + id + + ", name='" + name + '\'' + + ", money=" + money + + '}'; + } +} diff --git a/src/main/java/com.louy/service/AccountService b/src/main/java/com.louy/service/AccountService new file mode 100644 index 0000000000000000000000000000000000000000..806f14d3ee0ef44d1d1ec4b64e231758dfb00607 --- /dev/null +++ b/src/main/java/com.louy/service/AccountService @@ -0,0 +1,14 @@ +package com.atheima.service; + +import com.atheima.domain.Account; + +import java.util.List; + +public interface AccountService { + void save(Account account); + void delete(Integer id); + void update(Account account); + List findAll(); + Account findById(Integer id); + +} diff --git a/src/main/java/com.louy/service/impl/AccountServiceImpl b/src/main/java/com.louy/service/impl/AccountServiceImpl new file mode 100644 index 0000000000000000000000000000000000000000..96219a4fcbd21951649dd439f3016e91d80e5107 --- /dev/null +++ b/src/main/java/com.louy/service/impl/AccountServiceImpl @@ -0,0 +1,34 @@ +package com.atheima.service.impl; + +import com.atheima.dao.AccountDao; +import com.atheima.domain.Account; +import com.atheima.service.AccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +@Service +public class AccountServiceImpl implements AccountService { + @Autowired + private AccountDao accountDao; + public void save(Account account) { + accountDao.save(account); + } + + public void delete(Integer id) { + accountDao.delete(id); + } + + public void update(Account account) { + accountDao.update(account); + } + + public List findAll() { + + return accountDao.findAll(); + } + + public Account findById(Integer id) { + return accountDao.findById(id); + } +} diff --git a/jdbc.properties b/src/main/resources/jdbc.properties similarity index 100% rename from jdbc.properties rename to src/main/resources/jdbc.properties diff --git a/src/pom.xml b/src/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..08013f398780112a97da8d83a215ac480c029e8f --- /dev/null +++ b/src/pom.xml @@ -0,0 +1,60 @@ + + + 4.0.0 + + com.louy + springAocAnli + 1.0-SNAPSHOT + + + org.springframework + spring-context + 5.2.10.RELEASE + + + org.springframework + spring-jdbc + 5.2.10.RELEASE + + + org.springframework + spring-test + 5.2.10.RELEASE + + + org.aspectj + aspectjweaver + 1.9.4 + + + mysql + mysql-connector-java + 5.1.47 + + + com.alibaba + druid + 1.1.16 + + + org.mybatis + mybatis + 3.5.6 + + + org.mybatis + mybatis-spring + 1.3.0 + + + junit + junit + 4.12 + test + + + + + \ No newline at end of file diff --git a/src/test/java/AccountServiceTest b/src/test/java/AccountServiceTest new file mode 100644 index 0000000000000000000000000000000000000000..705cbb245971df210a615a9dc869d2bee907f904 --- /dev/null +++ b/src/test/java/AccountServiceTest @@ -0,0 +1,28 @@ +import com.atheima.config.SpringConfig; +import com.atheima.domain.Account; +import com.atheima.service.AccountService; +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.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = SpringConfig.class) +public class AccountServiceTest { + + @Autowired + private AccountService accountService; + + @Test + public void test(){ + System.out.println(accountService.findAll()); + } + @Test + public void testFindById(){ + Account ac = accountService.findById(1); + System.out.println(ac); + } + + +} \ No newline at end of file diff --git a/target/classes/com.louy/config/JdbcConfig b/target/classes/com.louy/config/JdbcConfig new file mode 100644 index 0000000000000000000000000000000000000000..238a1ccef016857676dcb7f90337b3a58b333502 --- /dev/null +++ b/target/classes/com.louy/config/JdbcConfig @@ -0,0 +1,29 @@ +package com.atheima.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; + +import javax.sql.DataSource; + +public class JdbcConfig { + @Value("${jdbc.driver}") + private String driver; + @Value("${jdbc.url}") + private String url; + @Value("${jdbc.username}") + private String name; + @Value("${jdbc.password}") + private String pass; + + @Bean + public DataSource dataSource(){ + DruidDataSource ds=new DruidDataSource(); + ds.setDriverClassName(driver); + ds.setUrl(url); + ds.setUsername(name); + ds.setPassword(pass); + return ds; + } + +} \ No newline at end of file diff --git a/target/classes/com.louy/config/MybatisConfig b/target/classes/com.louy/config/MybatisConfig new file mode 100644 index 0000000000000000000000000000000000000000..425401242bc59f5b33257f69d2f48097eaad0f67 --- /dev/null +++ b/target/classes/com.louy/config/MybatisConfig @@ -0,0 +1,24 @@ +package com.atheima.config; + +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.mapper.MapperScannerConfigurer; +import org.springframework.context.annotation.Bean; + +import javax.sql.DataSource; + +public class MybatisConfig { + + @Bean + public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){ + SqlSessionFactoryBean session = new SqlSessionFactoryBean(); + session.setTypeAliasesPackage("com.atheima.domain"); + session.setDataSource(dataSource); + return session; + } + @Bean + public MapperScannerConfigurer mapperScannerConfigurer(){ + MapperScannerConfigurer mapper=new MapperScannerConfigurer(); + mapper.setBasePackage("com.atheima.dao"); + return mapper; + } +} diff --git a/target/classes/com.louy/config/SpringConfig b/target/classes/com.louy/config/SpringConfig new file mode 100644 index 0000000000000000000000000000000000000000..f2034907aa2244ae9d22eab07a689034c779086f --- /dev/null +++ b/target/classes/com.louy/config/SpringConfig @@ -0,0 +1,13 @@ +package com.atheima.config; + +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 +@ComponentScan("com.atheima") +@PropertySource("classpath:jdbc.properties") +@Import({JdbcConfig.class,MybatisConfig.class}) +public class SpringConfig { +} diff --git a/target/classes/com.louy/dao/AccountDao b/target/classes/com.louy/dao/AccountDao new file mode 100644 index 0000000000000000000000000000000000000000..a612c9bd6d14fb6719c82548f36de84a5db57dad --- /dev/null +++ b/target/classes/com.louy/dao/AccountDao @@ -0,0 +1,24 @@ +package com.atheima.dao; + +import com.atheima.domain.Account; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.List; + +public interface AccountDao { + + + @Insert("insert into tbl_account(name,money)values(#{name},#{money})") + void save(Account account); + @Delete("delete from tbl_account where id = #{id}") + void delete(Integer id); + @Update("update tbl_account set name = #{name} , money = #{money} where id = #{id}") + void update(Account account); + @Select("select * from tbl_account") + List findAll(); + @Select("select * from tbl_account where id = #{id}") + Account findById(Integer id); +} diff --git a/target/classes/com.louy/domain/Account b/target/classes/com.louy/domain/Account new file mode 100644 index 0000000000000000000000000000000000000000..57ece55eb51ed9bca6f55e3466109e65e7169ea8 --- /dev/null +++ b/target/classes/com.louy/domain/Account @@ -0,0 +1,51 @@ +package com.atheima.domain; + +import java.io.Serializable; + +public class Account implements Serializable { + private Integer id; + private String name; + private Double money; + + public Account() { + } + + public Account(Integer id, String name, Double money) { + this.id = id; + this.name = name; + this.money = money; + } + + 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 Double getMoney() { + return money; + } + + public void setMoney(Double money) { + this.money = money; + } + + @Override + public String toString() { + return "Account{" + + "id=" + id + + ", name='" + name + '\'' + + ", money=" + money + + '}'; + } +} diff --git a/target/classes/com.louy/service/AccountService b/target/classes/com.louy/service/AccountService new file mode 100644 index 0000000000000000000000000000000000000000..806f14d3ee0ef44d1d1ec4b64e231758dfb00607 --- /dev/null +++ b/target/classes/com.louy/service/AccountService @@ -0,0 +1,14 @@ +package com.atheima.service; + +import com.atheima.domain.Account; + +import java.util.List; + +public interface AccountService { + void save(Account account); + void delete(Integer id); + void update(Account account); + List findAll(); + Account findById(Integer id); + +} diff --git a/target/classes/com.louy/service/impl/AccountServiceImpl b/target/classes/com.louy/service/impl/AccountServiceImpl new file mode 100644 index 0000000000000000000000000000000000000000..96219a4fcbd21951649dd439f3016e91d80e5107 --- /dev/null +++ b/target/classes/com.louy/service/impl/AccountServiceImpl @@ -0,0 +1,34 @@ +package com.atheima.service.impl; + +import com.atheima.dao.AccountDao; +import com.atheima.domain.Account; +import com.atheima.service.AccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +@Service +public class AccountServiceImpl implements AccountService { + @Autowired + private AccountDao accountDao; + public void save(Account account) { + accountDao.save(account); + } + + public void delete(Integer id) { + accountDao.delete(id); + } + + public void update(Account account) { + accountDao.update(account); + } + + public List findAll() { + + return accountDao.findAll(); + } + + public Account findById(Integer id) { + return accountDao.findById(id); + } +} diff --git a/target/classes/jdbc.properties b/target/classes/jdbc.properties new file mode 100644 index 0000000000000000000000000000000000000000..29559ceb0a23d4b53e33486fed5e09b087e2b08d --- /dev/null +++ b/target/classes/jdbc.properties @@ -0,0 +1,4 @@ +jdbc.username=root +jdbc.password=123456 +jdbc.url=jdbc:mysql://localhost:3306/spring_db?serverTimezone=UTC +jdbc.driver=com.mysql.jdbc.Driver \ No newline at end of file diff --git a/target/test-classes/AccountServiceTest b/target/test-classes/AccountServiceTest new file mode 100644 index 0000000000000000000000000000000000000000..705cbb245971df210a615a9dc869d2bee907f904 --- /dev/null +++ b/target/test-classes/AccountServiceTest @@ -0,0 +1,28 @@ +import com.atheima.config.SpringConfig; +import com.atheima.domain.Account; +import com.atheima.service.AccountService; +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.SpringJUnit4ClassRunner; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = SpringConfig.class) +public class AccountServiceTest { + + @Autowired + private AccountService accountService; + + @Test + public void test(){ + System.out.println(accountService.findAll()); + } + @Test + public void testFindById(){ + Account ac = accountService.findById(1); + System.out.println(ac); + } + + +} \ No newline at end of file