网站推广策划思维导图,百度app下载安装,厦门建设与管理局官网,网站需求建设书Spring模块对象: 把共性的方法抽取出来固定为一个模板#xff0c;后续再操作只需要填充内容即可。 比如#xff1a;淘宝每次买东西都要填写地址#xff0c;只是每次买的东西不一样#xff0c;所以可以做一个默认地址#xff0c;每次买东西都要去选商品就行了#xff0c;不…Spring模块对象: 把共性的方法抽取出来固定为一个模板后续再操作只需要填充内容即可。 比如淘宝每次买东西都要填写地址只是每次买的东西不一样所以可以做一个默认地址每次买东西都要去选商品就行了不需要每次都填写地址。 JdbcTemplate
pom.xml dependencies!--无mybatis配置坐标--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.47/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.1.9.RELEASE/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-jdbc/artifactIdversion5.1.9.RELEASE/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion5.1.9.RELEASE/version/dependency/dependencies工具类JDBCConfig
public class JDBCConfig {Value(${jdbc.driver})private String driver;Value(${jdbc.url})private String url;Value(${jdbc.username})private String userName;Value(${jdbc.password})private String password;Bean(dataSource)public DataSource getDataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;}//注册JdbcTemplate模块对象beanBean(jdbcTemplate)public JdbcTemplate getJdbcTemplate(Autowired DataSource dataSource){return new JdbcTemplate(dataSource);}Bean(jdbcTemplate2)public NamedParameterJdbcTemplate getJdbcTemplate2(Autowired DataSource dataSource){return new NamedParameterJdbcTemplate(dataSource);}
}工具类SpringConfig
Configuration
ComponentScan(com.itheima)
PropertySource(classpath:jdbc.properties)
Import(JDBCConfig.class)
public class SpringConfig {
}AccountDao
public interface AccountDao {void save(Account account);void delete(Integer id);void update(Account account);String findNameById(Integer id);Account findById(Integer id);ListAccount findAll();ListAccount findAll(int pageNum,int preNum);Long getCount();
}实现类AccountDaoImpl(提供标准的sql语句操作API)
//dao注册为bean
Repository(accountDao)
public class AccountDaoImpl implements AccountDao {//注入模板对象Autowiredprivate JdbcTemplate jdbcTemplate;public void save(Account account) {String sql insert into account(name,money)values(?,?);jdbcTemplate.update(sql,account.getName(),account.getMoney());}public void delete(Integer id) {String sql delete from account where id ?;jdbcTemplate.update(sql,id);}public void update(Account account) {String sql update account set name ? , money ? where id ?;jdbcTemplate.update(sql, account.getName(),account.getMoney(),account.getId());}public String findNameById(Integer id) {String sql select name from account where id ? ;//单字段查询可以使用专用的查询方法必须制定查询出的数据类型例如name为String类型return jdbcTemplate.queryForObject(sql,String.class,id );}public Account findById(Integer id) {String sql select * from account where id ? ;//支持自定义行映射解析器RowMapperAccount rm new RowMapperAccount() {public Account mapRow(ResultSet rs, int rowNum) throws SQLException {Account account new Account();account.setId(rs.getInt(id));account.setName(rs.getString(name));account.setMoney(rs.getDouble(money));return account;}};return jdbcTemplate.queryForObject(sql,rm,id);}public ListAccount findAll() {String sql select * from account;//使用spring自带的行映射解析器要求必须是标准封装return jdbcTemplate.query(sql,new BeanPropertyRowMapperAccount(Account.class));}public ListAccount findAll(int pageNum, int preNum) {String sql select * from account limit ?,?;//分页数据通过查询参数赋值return jdbcTemplate.query(sql,new BeanPropertyRowMapperAccount(Account.class),(pageNum-1)*preNum,preNum);}public Long getCount() {String sql select count(id) from account ;//单字段查询可以使用专用的查询方法必须制定查询出的数据类型例如数据总量为Long类型return jdbcTemplate.queryForObject(sql,Long.class);}
}实现类AccountDaoImpl2
//dao注册为bean
Repository
//Primary
public class AccountDaoImpl2 implements AccountDao {//注入模板对象Autowiredprivate NamedParameterJdbcTemplate jdbcTemplate;public void save(Account account) {String sql insert into account(name,money)values(:name,:money);Map pm new HashMap();pm.put(name,account.getName());pm.put(money,account.getMoney());jdbcTemplate.update(sql,pm);}public void delete(Integer id) {}public void update(Account account) {}public String findNameById(Integer id) {return null;}public Account findById(Integer id) {return null;}public ListAccount findAll() {return null;}public ListAccount findAll(int pageNum, int preNum) {return null;}public Long getCount() {return null;}
}实体类Account
public class Account implements Serializable {private Integer id;private String name;private Double money;
}AccountService
public interface AccountService {void save(Account account);void delete(Integer id);void update(Account account);String findNameById(Integer id);Account findById(Integer id);ListAccount findAll();ListAccount findAll(int pageNum,int preNum);Long getCount();
}AccountServiceImpl
Service(accountService)
public class AccountServiceImpl implements AccountService {Autowiredprivate 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 String findNameById(Integer id) {return accountDao.findNameById(id);}public Account findById(Integer id) {return accountDao.findById(id);}public ListAccount findAll() {return accountDao.findAll();}public ListAccount findAll(int pageNum, int preNum) {return accountDao.findAll(pageNum,preNum);}public Long getCount() {return accountDao.getCount();}
}pom.xml dependencies!--无mybatis配置坐标--dependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.1.9.RELEASE/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion5.1.9.RELEASE/version/dependencydependencygroupIdorg.springframework.data/groupIdartifactIdspring-data-redis/artifactIdversion2.0.6.RELEASE/version/dependencydependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion2.9.0/version/dependency/dependenciesRedisTemplate
RedisTemplate对象结构 public void changeMoney(Integer id, Double money) {redisTemplate.opsForValue().set(account:id:id,money);
}
public Double findMondyById(Integer id) {Object money redisTemplate.opsForValue().get(account:id: id);return new Double(money.toString());
}策略模式应用
策略模式Strategy Pattern使用不同策略的对象实现不同的行为方式策略对象的变化导致行为的变化。