diff --git a/spring/spring-jdbc-annotation/pom.xml b/spring/spring-jdbc-annotation/pom.xml
new file mode 100644
index 0000000..3fb924e
--- /dev/null
+++ b/spring/spring-jdbc-annotation/pom.xml
@@ -0,0 +1,84 @@
+
+
+ 4.0.0
+
+ com.heibaiying
+ spring-jdbc
+ 1.0-SNAPSHOT
+
+ 5.1.3.RELEASE
+
+
+
+
+
+ org.springframework
+ spring-context
+ ${spring-base-version}
+
+
+ org.springframework
+ spring-beans
+ ${spring-base-version}
+
+
+ org.springframework
+ spring-core
+ ${spring-base-version}
+
+
+ org.springframework
+ spring-web
+ ${spring-base-version}
+
+
+ org.springframework
+ spring-webmvc
+ ${spring-base-version}
+
+
+ javax.servlet
+ javax.servlet-api
+ 4.0.1
+ provided
+
+
+ org.projectlombok
+ lombok
+ 1.18.4
+ provided
+
+
+
+ org.springframework
+ spring-jdbc
+ ${spring-base-version}
+
+
+ mysql
+ mysql-connector-java
+ 8.0.13
+
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ org.springframework
+ spring-test
+ ${spring-base-version}
+ test
+
+
+ com.oracle
+ ojdbc6
+ 11.2.0.3.0
+
+
+
+
\ No newline at end of file
diff --git a/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/bean/Flow.java b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/bean/Flow.java
new file mode 100644
index 0000000..cdebadf
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/bean/Flow.java
@@ -0,0 +1,18 @@
+package com.heibaiying.bean;
+
+import lombok.Data;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@Data
+public class Flow {
+
+ private long id;
+
+ private long flowId;
+
+ private long plugId;
+}
diff --git a/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/bean/Relation.java b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/bean/Relation.java
new file mode 100644
index 0000000..74adb91
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/bean/Relation.java
@@ -0,0 +1,16 @@
+package com.heibaiying.bean;
+
+import lombok.Data;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+@Data
+public class Relation {
+
+ private String id;
+
+ private String name;
+
+}
diff --git a/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/config/DataSourceConfig.java b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/config/DataSourceConfig.java
new file mode 100644
index 0000000..51dd508
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/config/DataSourceConfig.java
@@ -0,0 +1,31 @@
+package com.heibaiying.config;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@Configuration
+@PropertySource(value = "classpath:mysql.properties")
+@Data
+public class DataSourceConfig {
+
+ /**
+ * 感觉这种注入的方式并不够好
+ * 没有spring-boot中使用@ConfigurationProperties(prefix = "config")指定前缀注入的方式优雅
+ */
+ @Value("${mysql.driverClassName}")
+ private String driverClassName;
+ @Value("${mysql.url}")
+ private String url;
+ @Value("${mysql.username}")
+ private String username;
+ @Value("${mysql.password}")
+ private String password;
+
+}
diff --git a/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/config/DispatcherServletInitializer.java b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/config/DispatcherServletInitializer.java
new file mode 100644
index 0000000..7ed14d2
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/config/DispatcherServletInitializer.java
@@ -0,0 +1,22 @@
+package com.heibaiying.config;
+
+import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
+
+/**
+ * @author : heibaiying
+ */
+
+public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
+
+ protected Class>[] getRootConfigClasses() {
+ return new Class[0];
+ }
+
+ protected Class>[] getServletConfigClasses() {
+ return new Class[]{ServletConfig.class};
+ }
+
+ protected String[] getServletMappings() {
+ return new String[]{"/"};
+ }
+}
diff --git a/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/config/ServletConfig.java b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/config/ServletConfig.java
new file mode 100644
index 0000000..b7daa08
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/config/ServletConfig.java
@@ -0,0 +1,62 @@
+package com.heibaiying.config;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.jdbc.datasource.DriverManagerDataSource;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+
+/**
+ * @author : heibaiying
+ */
+@Configuration
+@EnableTransactionManagement // 开启声明式事务处理 等价于xml中
+@ComponentScan(basePackages = {"com.heibaiying.*"})
+public class ServletConfig implements WebMvcConfigurer {
+
+ @Autowired
+ private DataSourceConfig sourceConfig;
+
+ /**
+ * 配置数据源
+ */
+ @Bean
+ public DriverManagerDataSource dataSource() {
+ DriverManagerDataSource dataSource = new DriverManagerDataSource();
+ dataSource.setDriverClassName(sourceConfig.getDriverClassName());
+ dataSource.setUrl(sourceConfig.getUrl());
+ dataSource.setUsername(sourceConfig.getUsername());
+ dataSource.setPassword(sourceConfig.getPassword());
+ return dataSource;
+ }
+
+
+ /**
+ * 配置jdbcTemplate
+ *
+ * @param dataSource 这个参数的名称需要保持和上面方法名一致 才能自动注入,因为
+ * 采用@Bean注解生成的bean 默认采用方法名为名称,当然也可以在使用@Bean时指定name属性
+ */
+ @Bean
+ public JdbcTemplate jdbcTemplate(DriverManagerDataSource dataSource) {
+ JdbcTemplate jdbcTemplate = new JdbcTemplate();
+ jdbcTemplate.setDataSource(dataSource);
+ return jdbcTemplate;
+ }
+
+ /**
+ * 定义事务管理器
+ */
+ @Bean
+ public DataSourceTransactionManager transactionManager() {
+ DataSourceTransactionManager manager = new DataSourceTransactionManager();
+ manager.setDataSource(dataSource());
+ return manager;
+ }
+
+}
diff --git a/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/MysqlDaoImpl.java b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/MysqlDaoImpl.java
new file mode 100644
index 0000000..2e6fa7b
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/MysqlDaoImpl.java
@@ -0,0 +1,42 @@
+package com.heibaiying.dao;
+
+import com.heibaiying.bean.Relation;
+import com.heibaiying.dao.impl.MysqlDao;
+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 java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@Repository
+public class MysqlDaoImpl implements MysqlDao {
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ /**
+ * 更多JDBC 的使用可以参考官方文档
+ * @see JdbcTemplate
+ */
+ public List get() {
+ List relations = jdbcTemplate.query("select * from help_keyword where help_keyword_id = ? ", new Object[]{691},
+ new RowMapper() {
+ public Relation mapRow(ResultSet rs, int rowNum) throws SQLException {
+ Relation relation = new Relation();
+ relation.setId(rs.getString("help_keyword_id"));
+ relation.setName(rs.getString("name"));
+ return relation;
+ }
+
+ });
+ return relations;
+ }
+}
diff --git a/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/OracleDaoImpl.java b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/OracleDaoImpl.java
new file mode 100644
index 0000000..295b97a
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/OracleDaoImpl.java
@@ -0,0 +1,43 @@
+package com.heibaiying.dao;
+
+import com.heibaiying.bean.Flow;
+import com.heibaiying.dao.impl.OracleDao;
+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 java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@Repository
+public class OracleDaoImpl implements OracleDao {
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ /**
+ * 更多JDBC 的使用可以参考官方文档
+ * @see JdbcTemplate
+ */
+ public List get() {
+ List flows = jdbcTemplate.query("select * from APEX_030200.WWV_FLOW_CALS where ID = ? ", new Object[]{217584603977429772L},
+ new RowMapper() {
+ public Flow mapRow(ResultSet rs, int rowNum) throws SQLException {
+ Flow flow = new Flow();
+ flow.setId(rs.getLong("ID"));
+ flow.setFlowId(rs.getLong("FLOW_ID"));
+ flow.setPlugId(rs.getLong("PLUG_ID"));
+ return flow;
+ }
+
+ });
+ return flows;
+ }
+}
diff --git a/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/impl/MysqlDao.java b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/impl/MysqlDao.java
new file mode 100644
index 0000000..6c34ca4
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/impl/MysqlDao.java
@@ -0,0 +1,14 @@
+package com.heibaiying.dao.impl;
+
+import com.heibaiying.bean.Relation;
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+public interface MysqlDao {
+
+ List get();
+}
diff --git a/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/impl/OracleDao.java b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/impl/OracleDao.java
new file mode 100644
index 0000000..9eecd9d
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/java/com/heibaiying/dao/impl/OracleDao.java
@@ -0,0 +1,13 @@
+package com.heibaiying.dao.impl;
+
+import com.heibaiying.bean.Flow;
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+public interface OracleDao {
+
+ List get();
+}
diff --git a/spring/spring-jdbc-annotation/src/main/resources/mysql.properties b/spring/spring-jdbc-annotation/src/main/resources/mysql.properties
new file mode 100644
index 0000000..e8ab06b
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/resources/mysql.properties
@@ -0,0 +1,5 @@
+# mysql ݿ
+mysql.driverClassName=com.mysql.jdbc.Driver
+mysql.url=jdbc:mysql://localhost:3306/mysql
+mysql.username=root
+mysql.password=root
diff --git a/spring/spring-jdbc-annotation/src/main/resources/oracle.properties b/spring/spring-jdbc-annotation/src/main/resources/oracle.properties
new file mode 100644
index 0000000..d2e0c50
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/main/resources/oracle.properties
@@ -0,0 +1,5 @@
+# oracle ݿ
+oracle.driverClassName=oracle.jdbc.driver.OracleDriver
+oracle.url=jdbc:oracle:thin:@//IPַ:˿ں/ݿʵ
+oracle.username=û
+oracle.password=
\ No newline at end of file
diff --git a/spring/spring-jdbc-annotation/src/test/java/com/heibaiying/dao/MysqlDaoTest.java b/spring/spring-jdbc-annotation/src/test/java/com/heibaiying/dao/MysqlDaoTest.java
new file mode 100644
index 0000000..ef3b774
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/test/java/com/heibaiying/dao/MysqlDaoTest.java
@@ -0,0 +1,36 @@
+package com.heibaiying.dao;
+
+import com.heibaiying.bean.Relation;
+import com.heibaiying.config.DispatcherServletInitializer;
+import com.heibaiying.config.ServletConfig;
+import com.heibaiying.dao.impl.MysqlDao;
+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 java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = {DispatcherServletInitializer.class, ServletConfig.class})
+public class MysqlDaoTest {
+
+ @Autowired
+ private MysqlDao mysqlDao;
+
+ @Test
+ public void get() {
+ List relations = mysqlDao.get();
+ if (relations != null) {
+ for (Relation relation : relations) {
+ System.out.println(relation.getId() + " " + relation.getName());
+ }
+ }
+ }
+}
diff --git a/spring/spring-jdbc-annotation/src/test/java/com/heibaiying/dao/OracleDaoTest.java b/spring/spring-jdbc-annotation/src/test/java/com/heibaiying/dao/OracleDaoTest.java
new file mode 100644
index 0000000..a4cd513
--- /dev/null
+++ b/spring/spring-jdbc-annotation/src/test/java/com/heibaiying/dao/OracleDaoTest.java
@@ -0,0 +1,39 @@
+package com.heibaiying.dao;
+
+import com.heibaiying.bean.Flow;
+import com.heibaiying.config.DispatcherServletInitializer;
+import com.heibaiying.config.ServletConfig;
+import com.heibaiying.dao.impl.OracleDao;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = {DispatcherServletInitializer.class, ServletConfig.class})
+public class OracleDaoTest {
+
+ /*注入接口时: 如果接口有多个实现类 可以用这个指定具体的实现类*/
+ @Qualifier("oracleDaoImpl")
+ @Autowired
+ private OracleDao oracleDao;
+
+ @Test
+ public void get() {
+ List flows = oracleDao.get();
+ if (flows != null) {
+ for (Flow flow : flows) {
+ System.out.println(flow.getId() + " " + flow.getPlugId());
+ }
+ }
+ }
+}
diff --git a/spring/spring-jdbc/pom.xml b/spring/spring-jdbc/pom.xml
new file mode 100644
index 0000000..3fb924e
--- /dev/null
+++ b/spring/spring-jdbc/pom.xml
@@ -0,0 +1,84 @@
+
+
+ 4.0.0
+
+ com.heibaiying
+ spring-jdbc
+ 1.0-SNAPSHOT
+
+ 5.1.3.RELEASE
+
+
+
+
+
+ org.springframework
+ spring-context
+ ${spring-base-version}
+
+
+ org.springframework
+ spring-beans
+ ${spring-base-version}
+
+
+ org.springframework
+ spring-core
+ ${spring-base-version}
+
+
+ org.springframework
+ spring-web
+ ${spring-base-version}
+
+
+ org.springframework
+ spring-webmvc
+ ${spring-base-version}
+
+
+ javax.servlet
+ javax.servlet-api
+ 4.0.1
+ provided
+
+
+ org.projectlombok
+ lombok
+ 1.18.4
+ provided
+
+
+
+ org.springframework
+ spring-jdbc
+ ${spring-base-version}
+
+
+ mysql
+ mysql-connector-java
+ 8.0.13
+
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ org.springframework
+ spring-test
+ ${spring-base-version}
+ test
+
+
+ com.oracle
+ ojdbc6
+ 11.2.0.3.0
+
+
+
+
\ No newline at end of file
diff --git a/spring/spring-jdbc/src/main/java/com/heibaiying/bean/Flow.java b/spring/spring-jdbc/src/main/java/com/heibaiying/bean/Flow.java
new file mode 100644
index 0000000..cdebadf
--- /dev/null
+++ b/spring/spring-jdbc/src/main/java/com/heibaiying/bean/Flow.java
@@ -0,0 +1,18 @@
+package com.heibaiying.bean;
+
+import lombok.Data;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@Data
+public class Flow {
+
+ private long id;
+
+ private long flowId;
+
+ private long plugId;
+}
diff --git a/spring/spring-jdbc/src/main/java/com/heibaiying/bean/Relation.java b/spring/spring-jdbc/src/main/java/com/heibaiying/bean/Relation.java
new file mode 100644
index 0000000..74adb91
--- /dev/null
+++ b/spring/spring-jdbc/src/main/java/com/heibaiying/bean/Relation.java
@@ -0,0 +1,16 @@
+package com.heibaiying.bean;
+
+import lombok.Data;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+@Data
+public class Relation {
+
+ private String id;
+
+ private String name;
+
+}
diff --git a/spring/spring-jdbc/src/main/java/com/heibaiying/dao/MysqlDaoImpl.java b/spring/spring-jdbc/src/main/java/com/heibaiying/dao/MysqlDaoImpl.java
new file mode 100644
index 0000000..2e6fa7b
--- /dev/null
+++ b/spring/spring-jdbc/src/main/java/com/heibaiying/dao/MysqlDaoImpl.java
@@ -0,0 +1,42 @@
+package com.heibaiying.dao;
+
+import com.heibaiying.bean.Relation;
+import com.heibaiying.dao.impl.MysqlDao;
+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 java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@Repository
+public class MysqlDaoImpl implements MysqlDao {
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ /**
+ * 更多JDBC 的使用可以参考官方文档
+ * @see JdbcTemplate
+ */
+ public List get() {
+ List relations = jdbcTemplate.query("select * from help_keyword where help_keyword_id = ? ", new Object[]{691},
+ new RowMapper() {
+ public Relation mapRow(ResultSet rs, int rowNum) throws SQLException {
+ Relation relation = new Relation();
+ relation.setId(rs.getString("help_keyword_id"));
+ relation.setName(rs.getString("name"));
+ return relation;
+ }
+
+ });
+ return relations;
+ }
+}
diff --git a/spring/spring-jdbc/src/main/java/com/heibaiying/dao/OracleDaoImpl.java b/spring/spring-jdbc/src/main/java/com/heibaiying/dao/OracleDaoImpl.java
new file mode 100644
index 0000000..295b97a
--- /dev/null
+++ b/spring/spring-jdbc/src/main/java/com/heibaiying/dao/OracleDaoImpl.java
@@ -0,0 +1,43 @@
+package com.heibaiying.dao;
+
+import com.heibaiying.bean.Flow;
+import com.heibaiying.dao.impl.OracleDao;
+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 java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@Repository
+public class OracleDaoImpl implements OracleDao {
+
+ @Autowired
+ private JdbcTemplate jdbcTemplate;
+
+ /**
+ * 更多JDBC 的使用可以参考官方文档
+ * @see JdbcTemplate
+ */
+ public List get() {
+ List flows = jdbcTemplate.query("select * from APEX_030200.WWV_FLOW_CALS where ID = ? ", new Object[]{217584603977429772L},
+ new RowMapper() {
+ public Flow mapRow(ResultSet rs, int rowNum) throws SQLException {
+ Flow flow = new Flow();
+ flow.setId(rs.getLong("ID"));
+ flow.setFlowId(rs.getLong("FLOW_ID"));
+ flow.setPlugId(rs.getLong("PLUG_ID"));
+ return flow;
+ }
+
+ });
+ return flows;
+ }
+}
diff --git a/spring/spring-jdbc/src/main/java/com/heibaiying/dao/impl/MysqlDao.java b/spring/spring-jdbc/src/main/java/com/heibaiying/dao/impl/MysqlDao.java
new file mode 100644
index 0000000..6c34ca4
--- /dev/null
+++ b/spring/spring-jdbc/src/main/java/com/heibaiying/dao/impl/MysqlDao.java
@@ -0,0 +1,14 @@
+package com.heibaiying.dao.impl;
+
+import com.heibaiying.bean.Relation;
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+public interface MysqlDao {
+
+ List get();
+}
diff --git a/spring/spring-jdbc/src/main/java/com/heibaiying/dao/impl/OracleDao.java b/spring/spring-jdbc/src/main/java/com/heibaiying/dao/impl/OracleDao.java
new file mode 100644
index 0000000..9eecd9d
--- /dev/null
+++ b/spring/spring-jdbc/src/main/java/com/heibaiying/dao/impl/OracleDao.java
@@ -0,0 +1,13 @@
+package com.heibaiying.dao.impl;
+
+import com.heibaiying.bean.Flow;
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+public interface OracleDao {
+
+ List get();
+}
diff --git a/spring/spring-jdbc/src/main/resources/jdbc.properties b/spring/spring-jdbc/src/main/resources/jdbc.properties
new file mode 100644
index 0000000..6dadcd3
--- /dev/null
+++ b/spring/spring-jdbc/src/main/resources/jdbc.properties
@@ -0,0 +1,11 @@
+# mysql ݿ
+mysql.driverClassName=com.mysql.jdbc.Driver
+mysql.url=jdbc:mysql://localhost:3306/mysql
+mysql.username=root
+mysql.password=root
+
+# oracle ݿ
+oracle.driverClassName=oracle.jdbc.driver.OracleDriver
+oracle.url=jdbc:oracle:thin:@//IPַ:˿ں/ݿʵ
+oracle.username=û
+oracle.password=
\ No newline at end of file
diff --git a/spring/spring-jdbc/src/main/resources/springApplication.xml b/spring/spring-jdbc/src/main/resources/springApplication.xml
new file mode 100644
index 0000000..0042bd7
--- /dev/null
+++ b/spring/spring-jdbc/src/main/resources/springApplication.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring/spring-jdbc/src/main/webapp/WEB-INF/web.xml b/spring/spring-jdbc/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..c5e8f38
--- /dev/null
+++ b/spring/spring-jdbc/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ springMvc
+ org.springframework.web.servlet.DispatcherServlet
+
+ contextConfigLocation
+ classpath:springApplication.xml
+
+ 1
+
+
+
+ springMvc
+ /
+
+
+
\ No newline at end of file
diff --git a/spring/spring-jdbc/src/main/webapp/index.jsp b/spring/spring-jdbc/src/main/webapp/index.jsp
new file mode 100644
index 0000000..47961e3
--- /dev/null
+++ b/spring/spring-jdbc/src/main/webapp/index.jsp
@@ -0,0 +1,9 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ index
+
+
+ hello Spring !
+
+
\ No newline at end of file
diff --git a/spring/spring-jdbc/src/test/java/com/heibaiying/dao/MysqlDaoTest.java b/spring/spring-jdbc/src/test/java/com/heibaiying/dao/MysqlDaoTest.java
new file mode 100644
index 0000000..340594c
--- /dev/null
+++ b/spring/spring-jdbc/src/test/java/com/heibaiying/dao/MysqlDaoTest.java
@@ -0,0 +1,34 @@
+package com.heibaiying.dao;
+
+import com.heibaiying.bean.Relation;
+import com.heibaiying.dao.impl.MysqlDao;
+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 java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@RunWith(SpringRunner.class)
+@ContextConfiguration({"classpath:springApplication.xml"})
+public class MysqlDaoTest {
+
+ @Autowired
+ private MysqlDao mysqlDao;
+
+ @Test
+ public void get() {
+ List relations = mysqlDao.get();
+ if (relations != null) {
+ for (Relation relation : relations) {
+ System.out.println(relation.getId() + " " + relation.getName());
+ }
+ }
+ }
+}
diff --git a/spring/spring-jdbc/src/test/java/com/heibaiying/dao/OracleDaoTest.java b/spring/spring-jdbc/src/test/java/com/heibaiying/dao/OracleDaoTest.java
new file mode 100644
index 0000000..7baf422
--- /dev/null
+++ b/spring/spring-jdbc/src/test/java/com/heibaiying/dao/OracleDaoTest.java
@@ -0,0 +1,37 @@
+package com.heibaiying.dao;
+
+import com.heibaiying.bean.Flow;
+import com.heibaiying.dao.impl.OracleDao;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+/**
+ * @author : heibaiying
+ * @description :
+ */
+
+@RunWith(SpringRunner.class)
+@ContextConfiguration({"classpath:springApplication.xml"})
+public class OracleDaoTest {
+
+ /*注入接口时: 如果接口有多个实现类 可以用这个指定具体的实现类*/
+ @Qualifier("oracleDaoImpl")
+ @Autowired
+ private OracleDao oracleDao;
+
+ @Test
+ public void get() {
+ List flows = oracleDao.get();
+ if (flows != null) {
+ for (Flow flow : flows) {
+ System.out.println(flow.getId() + " " + flow.getPlugId());
+ }
+ }
+ }
+}
diff --git a/spring/springmvc-base-annotation/README.md b/spring/springmvc-base-annotation/README.md
index 2cddc2d..e508751 100644
--- a/spring/springmvc-base-annotation/README.md
+++ b/spring/springmvc-base-annotation/README.md
@@ -402,7 +402,7 @@ public class Programmer {
```
-注:@Data 是lombok包下的注解,用来生成相应的set、get方法和全参、无参构造器,使得类的书写更为简洁。
+注:@Data 是lombok包下的注解,用来生成相应的set、get方法,使得类的书写更为简洁。
2.新建ParamBindController.java 文件
diff --git a/spring/springmvc-base/README.md b/spring/springmvc-base/README.md
index 1b08963..a3929f0 100644
--- a/spring/springmvc-base/README.md
+++ b/spring/springmvc-base/README.md
@@ -394,7 +394,7 @@ public class Programmer {
```
-注:@Data 是lombok包下的注解,用来生成相应的set、get方法和全参、无参构造器,使得类的书写更为简洁。
+注:@Data 是lombok包下的注解,用来生成相应的set、get方法,使得类的书写更为简洁。
2.新建ParamBindController.java 文件
diff --git a/spring/springmvc-base/src/main/webapp/index.jsp b/spring/springmvc-base/src/main/webapp/index.jsp
index 8d58dec..47961e3 100644
--- a/spring/springmvc-base/src/main/webapp/index.jsp
+++ b/spring/springmvc-base/src/main/webapp/index.jsp
@@ -4,6 +4,6 @@
index
- INDEX!
+ hello Spring !