事务增删改案例
创建实体
/*序列化 (Serialization)*/ public class Account implements Serializable { private Integer accountId; private String accountName; private double balance; public Integer getAccountId() { return accountId; } public void setAccountId(Integer accountId) { this.accountId = accountId; } public String getAccountName() { return accountName; } public void setAccountName(String accountName) { this.accountName = accountName; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } }创建Dao接口
public interface AccountDao { public List<Account> getAll(); }创建Dao实现类方法1
@Repository//默认ByName方式,如果name确实默认按照ByType方式注入, public class AccountDaoImpl extends JdbcDaoSupport implements AccountDao { @Override public List<Account> getAll() { List<Account> query = this.getJdbcTemplate().query("select * from account", new RowMapper<Account>() { @Override public Account mapRow(ResultSet rs, int RowNum) throws SQLException { Account account = new Account(); account.setAccountId(rs.getInt("accountid")); account.setAccountName(rs.getString("accountname")); account.setBalance(rs.getDouble("balance")); return account; } }); return query; }创建Dao实现类方法2
@Repository public class AccountDaoImpl extends JdbcDaoSupport implements AccountDao { @Override public List<Account> getAll() { RowMapper<Account> ac = new BeanPropertyRowMapper<>(Account.class); List<Account> query = getJdbcTemplate().query("select * from account", ac); return query; }编写service接口
public interface AccountService { public List<Account> getAll(); }service接口实现类
@Service("accountServiceImpl")//用于标注业务类 public class AccountServiceImpl implements AccountService { @Resource private AccountDao dao; //必须需要set方法 public void setDao(AccountDao dao) { this.dao = dao; } @Override public List<Account> getAll() { return dao.getAll(); } }编写database.properties文件
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/account?useUniCode=true&characterEncoding=utf-8 jdbc.username=root jdbc.password=root编写ApplicationContext.xml
<?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"> //连接database.properties <context:property-placeholder location="classpath:database.properties"/> <!--数据源--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}"></property> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </bean> <bean id="jdbcTempalate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> <!--找到daoimpl--> <bean id="accountDaoImpl" class="com.jdbcTempalate.dao.impl.AccountDaoImpl"> <property name="jdbcTemplate" ref="jdbcTempalate"></property> </bean> <bean id="accountServiceImpl" class="com.jdbcTempalate.Service.impl.AccountServiceImpl"> <property name="dao" ref="accountDaoImpl"></property> </bean> </beans>删除修改添加
@Override public int delAccount(int account) { String sql="delete from account where accountid=?"; int update = getJdbcTemplate().update(sql, account); return update; } @Override public int INSERT(Account account) { String sql="INSERT INTO account (accountid,accountname,balance) VALUE(?,?,?)"; int insert = getJdbcTemplate().update(sql, account.getAccountId(),account.getAccountName(), account.getBalance()); return insert; } @Override public void addMoney(double balance,Integer id) { String sql="update account set balance=balance+? where accountid=?"; this.jdbcTemplate.update(sql,new Object[]{balance,id}); System.out.println(sql); }创建实体
/*序列化 (Serialization)*/ public class Account implements Serializable { private Integer accountId; private String accountName; private double balance; public Integer getAccountId() { return accountId; } public void setAccountId(Integer accountId) { this.accountId = accountId; } public String getAccountName() { return accountName; } public void setAccountName(String accountName) { this.accountName = accountName; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; } }dao接口
public interface AccountDao{ List<Account> getAll();//查询 }dao实现类
@Repository// extends JdbcDaoSupport public class AccountDaoImpl implements AccountDao { @Resource private JdbcTemplate jdbcTemplate; @Override public List<Account> getAll() { BeanPropertyRowMapper<Account> a = new BeanPropertyRowMapper<>(Account.class); List<Account> query = jdbcTemplate.query("select * from account", a); return query; } }service接口
public interface AccountService { List<Account> getAll(); }service接口实现类
@Service("accountServiceImpl") public class AccountServiceImpl implements AccountService { //@Resource可以不需要set方法 @Resource private AccountDao dao; @Override public List<Account> getAll() { return dao.getAll(); } }ApplicationContext.xml
<?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"> <--开启注解--> <context:component-scan base-package="com.jdbcTempalate"/> <context:property-placeholder location="classpath:database.properties"/> <!--数据源--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${jdbc.driver}"></property> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </bean> <bean id="jdbcTempalate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> </beans>database.properties
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/account?useUniCode=true&characterEncoding=utf-8 jdbc.username=root jdbc.password=root注解和事事务比较起来也就是xml和daoimpl里代码改的多
