spring dbcp mysql_spring与Dbcp

基于jdbc,操作数据库速度比较快,优于hibernate但是功能没hibernate强大,增删改可以用,查询用起来比较麻烦

使用,首先jar包支持

commons-pool.jar

commons-dbcp.jar

mysql-connector-java-5.1.12-bin.jar

在之前的基础上加上spring-tx-4.2.0.RELEASE 这个包

基础jar包

这里要使用dbcp的话我们首先需要做的是配置spring的dataSource 同样的这也是我们以后要使用数据库主要的核心

解释:

连接池中最多10个链接

池子创建好后一开始就有2个链接

最小空闲数

最大空闲数

配置好了之后我们就可以正常使用了,在类中要使用我们首先要见过这个dbcp注入到类中去

完成注入:

然后需要让你的类继承JdbcDaoSupport这个类就可以了(最简单的方式)

public class UserDaoImpl extends JdbcDaoSupport

最后this.getJdbcTemplate()--获得jdbc模板就可以了

不过这里很麻烦,因为要继承类,我们有一种不需要继承的写法

然后在我们的类中

@Resource

private JdbcTemplate template;

这样就能获得了

案例:

演示增删改的操作

注意这个我们用的这个函数函数的有两个常用的参数update(sql,new Object[]{})----注意第一个参数是sql语句,如果有参数用占位符,第二个参数为设置占位符参数的位置

那我们的查询呢?

除了这个方法我们还有

queryForObject(sql,new UserMapper());---查处一个对象放在一个OBJECT中

queryForList(sql)---返回list数组对象

query(sql,rowMappwe)--查询结果集

queryForInt(sql);--查询聚合函数

这里比较麻烦的是查询这个东西,因为它首先需要的是一个映射表

public class UserMapper implements RowMapper

public Object mapRow(ResultSet rs, int index) throws SQLException {

User user=new User();

user.setId(rs.getInt("id"));

user.setEmail(rs.getString("email"));

user.setNickName(rs.getString("nickname"));

if(rs.getString("is_email_verify").equals("Y")){

user.setEmailVerify(true);

}else{

user.setEmailVerify(false);

}

user.setEmailVerifyCode(rs.getString("email_verify_code"));

user.setLastLoginIp(rs.getString("last_login_time"));

return user;

}

注意这里Spring2.5开始新增了一个类BeanPropertyRowMapper

我们可以这么玩

public List findAll() {

String sql="select * from d_user";

return (List) this.getJdbcTemplate().query(sql,new BeanPropertyRowMapper(User.class));---这里

}

我们就不用那么麻烦的去做一对mapper了

想一想它的好处坏处都有啥

配置applicationContext.xml:

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-4.2.xsd">

在dao层:

@Repositorypublic class UserDaoImpl implementsUserDao{

@ResourceprivateJdbcTemplate jdbcTemplate;public voidsetJdbcTemplate(JdbcTemplate jdbcTemplate) {this.jdbcTemplate =jdbcTemplate;

}/*** 增加用户*/@Overridepublic intaddUser(User user) {

String sql="INSERT INTO users VALUES(null,?,?)";int result=jdbcTemplate.update(sql, newObject[]{user.getUserName(),user.getUserPwd()});returnresult;

}/*** 删除用户*/@Overridepublic int delUserById(intid) {

String sql="DELETE FROM users WHERE USER_id=?";int result=jdbcTemplate.update(sql, newObject[]{id});returnresult;

}/*** 修改用户*/@Overridepublic int updateUserById(intid,User user) {

String sql="UPDATE users SET user_name=?,user_pwd=? WHERE user_id=?";int result=jdbcTemplate.update(sql, newObject[]{user.getUserName(),user.getUserPwd(),id});returnresult;

}/*** 查看用户*/@Overridepublic User selectUserById(intid) {

String sql="select * from users where user_id=?";

User user=jdbcTemplate.queryForObject(sql, new Object[]{id}, new BeanPropertyRowMapper<>(User.class));returnuser;

}

}

然后:

AbstractApplicationContext atx=new ClassPathXmlApplicationContext("applicationContext.xml");

UserService userService=(UserService) atx.getBean("userServiceImpl");

通过类似userService.updateUserById(user)的方法实现增删改查

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值