Spring练习:JDBC模板和事务回滚

SSH框架是每个学生毕业前都必须掌握的一门技术,所以这里就用Spring的JDBC模板和自定义异常让事务回滚来做一个练习。主要用到的是spring和struts2框架来操作,这里暂时没用Hibernate来对数据进行操作。

一、练习要求。

要求写一个用户购买股票的项目,用户先开户后登陆,可以在里面买股票和卖股票,当买股票金额超过用户金额时就报异常让事务回滚,用户卖出股票时超过持有数量报异常让事务回滚。

二、数据库表

这里因为没有用到Hibernate所以不能通过配置实体类创建表,所以只能手动创建,表结构如下:

person表;


stock表


三、创建包和配置好所需的配置文件

先导入spring和struts2所需要用到的包,再创建配置文件,然后我们再新建对应的Package。


四、开户和登录

买或卖股票之前每个人都有自己的账户来存自己的金额和信息,这里先设计好jsp页面让用户进行选择是开户还是登录。(这里只是简单的弄了下jsp页面)


点击开户就进到另一个jsp页面来进行操作


到写数据操作语句,这里要先对用户名进行排重下,以免重复账户。先到Dao层写好接口,让DaoImp层实现接口。


DaoImp实现接口时也要继承下JdbcDaoSupport这样才能对数据进行处理。

public class ZhuCeDaoImp extends JdbcDaoSupport implements ZhuCeDao{

	@Override
	public boolean addUser(Person p) {
		System.out.println("进入开户~~~");
		//排重,如果为true就直接返回false;
		if(this.touser(p.getUserName())){
			return false;
		}
		//如果排除为false,就好进行添加用户,这里我们传实体类就可以获取到对应的参数。
		String sql = "insert into person(username,password,money) value (?,?,?)";
		//直接this关键字调用继承父类的方法来操作sql语句
		int i  = this.getJdbcTemplate().update(sql,p.getUserName(),p.getPassWord(),p.getMoney());
		if(i!=0){
		//判断下,在后台输出看是否成功
			System.out.println("开户成功");
			return true;
		}else{
			System.out.println("开户失败");
			return false;
		}
	}
	//用户名排重
	public boolean touser(String name){
		System.out.println("进入排重~~~");
		//查找对应的用户名
		String sql = "select username from person where username=?";
		List s = this.getJdbcTemplate().queryForList(sql, String.class,name);
		//存的是List类型,所以list不为空就是该用户名已存在,反之则没有
		if(s.size()!=0){
			return true;
		}
		return false;
	}
}
再写Service层接口,让ServiceImp层实现,Service层接口的方法就是Dao层接口的方法,所以为了方便集中把所以的Dao层接口方法都写在了一个Service层接口里面, ServiceImp层也是直接调用Dao层对象来实现全部方法。

Service层

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值