Spring整合JDBC

使用DRUID,是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP等DB池的优点,同时加入了监控。

整合步骤
第一步:创建web项目,导入依赖


Spring整合JDBC_第1张图片
image.png
Spring整合JDBC_第2张图片
image.png
Spring整合JDBC_第3张图片
image.png

第二步:开发表对应的实体类
public class User {
private Integer id;
private String name;
private Integer age;

public User() {
}

public void setId(Integer id) {
    this.id = id;
}

public void setName(String name) {
    this.name = name;
}

public void setAge(Integer age) {
    this.age = age;
}

public Integer getId() {
    return id;
}

public String getName() {
    return name;
}

public Integer getAge() {
    return age;
}

@Override
public String toString() {
    return "User{" +
            "id=" + id +
            ", name='" + name + '\'' +
            ", age=" + age +
            '}';
}

}

第三步:开发DAO接口和实现类

@Repository("UserDaoImpl")
public class UserDaoImpl extends JdbcDaoSupport implements UserDao {

@Override
public void addUser(User user) {
    String sql="INSERT  INTO  testinstall (name,age) VALUES (?,?)";
    getJdbcTemplate().update(sql,user.getName(),user.getAge());
}

@Override
public void deleteUser(User user) {
    String sql="DELETE  FROM  testinstall WHERE  id =?";
    getJdbcTemplate().update(sql,user.getId());
}

@Override
public void updateUser(User user) {
    String sql="UPDATE testinstall SET name = ? ,age=? WHERE  id =?";
    getJdbcTemplate().update(sql,user.getName(),user.getAge(),user.getId());
}

@Override
public User queryUser(final User user) {
    String sql="SELECT  * FROM testinstall WHERE  id=? ";
   User user1  = getJdbcTemplate().queryForObject(sql, new RowMapper() {
        @Override
        public User mapRow(ResultSet rs, int rowNum) throws SQLException {
            User user1 = new User();
            String name = rs.getString("name");
            int age = rs.getInt("age");
            user1.setId(user.getId());
            user1.setName(name);
            user1.setAge(age);
            return user1;
        }
    }, user.getId());
    return user1;
}

@Override
public List queryAll() {
    String sql="SELECT  * FROM  testinstall ";
    List query = getJdbcTemplate().query(sql, new RowMapper() {
        @Override
        public User mapRow(ResultSet rs, int rowNum) throws SQLException {
            User user = new User();
            int id = rs.getInt("id");
            String name = rs.getString("name");
            int age = rs.getInt("age");
            user.setId(id);
            user.setName(name);
            user.setAge(age);
            return user;
        }
    });
    return query;
}

}

开发DAO实现类:
继承JdbcDaoSupport
getJdbcTemplate()得到JdbcTemplate(需要注入)

第四步:配置整合
需要把模板类对象赋值给持久层的DAO





    
    
    
    
    
    
    
    




    



    

测试方法如下所示:
public class TestUserService {
@Qualifier("UserServiceImpl")
@Autowired
private UserServiceImpl userService;
@Test
public void testUserServiceImplQueryAll(){
List users = userService.queryAll();
for (User user : users) {
Log.info(user);
}
}
}

观察输出如下所示:


image.png

修改配置文件如下所示:


我们修改了数据库的配置文件 直接抽取出来了db.properties 文件


Spring整合JDBC_第4张图片
image.png

这个是 DruidDatasource的源码 :

第一个配置文件就是依赖下面的源码进行配置的


Spring整合JDBC_第5张图片
image.png

第二个配置文件就是依赖下面的源码进行配置的


Spring整合JDBC_第6张图片
image.png

注意点: 注意此属性 设置最大等待时间 3000毫秒

如果获取失败,可以快速抛异常,避免占用。
开发环境建议设置maxWait=3000(开发环境原因链接本来就慢)
我们在线上配置的时候 ,此属性可以设置的低一些 比如 300毫秒, 可以对于高并发起到一定的作用。

你可能感兴趣的:(Spring整合JDBC)