Spring 框架系列之 JDBC 整合

微信公众号:compassblog

欢迎关注、转发,互相学习,共同进步!

有任何问题,请后台留言联系!

1、Spring框架整合 DAO 模板

JDBC:org.springframework.jdbc.core.JdbcTemplate

Hibernate3.0:org.springframework.orm.hibernate3.HibernateTemplate

MyBatis:org.springframework.orm.ibatis.SqlMapClientTemplate

JPA:org.springframework.orm.jpa.JpaTemplate

2、JdbcTemplate 模板整合 JDBC 实例

(1)、新建web项目,导入所需要的 jar 包,如下图所示:

Spring 框架系列之 JDBC 整合_第1张图片

(2)、在 MySQL 数据库 JdbcTemplateDB 中新建数据表 t_user, 如下图所示:

Spring 框架系列之 JDBC 整合_第2张图片

(3)、新建一个 bean 类,具体代码如下:

User.java

package com.spring.bean;

public class User {

    private Integer id;

    private String name;

    public Integer getId() {

        return id;

    }

    public void setId(Integer id) {

        this.id = id;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    @Override

    public String toString() {

        return "User [id=" + id + ", name=" + name + "]";

    }

}

(4)、书写 DAO 接口,代码如下:

UserDao.java

package com.spring.dao;

import java.util.List;

import com.spring.bean.User;

public interface UserDao {

    //增

    void save(User u);

    //删

    void delete(Integer id);

    //改

    void update(User u);

    //查

    User getById(Integer id);

    //查

    int getTotalCount();

    //查

    List getAll();

}

(5)、书写一个类实现 DAO 接口,代码如下:

UserDaoImpl.java

package com.spring.dao;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.List;

import org.springframework.jdbc.core.RowMapper;

import org.springframework.jdbc.core.support.JdbcDaoSupport;

import com.spring.bean.User;

//使用JDBC模板实现增删改查

public class UserDaoImpl extends JdbcDaoSupport implements UserDao {

    public void save(User u) {

        String sql = "insert into t_user values(null,?) ";

        super.getJdbcTemplate().update(sql, u.getName());

    }

    public void delete(Integer id) {

        String sql = "delete from t_user where id = ? ";

        super.getJdbcTemplate().update(sql,id);

    }

    public void update(User u) {

        String sql = "update  t_user set name = ? where id=? ";

        super.getJdbcTemplate().update(sql, u.getName(),u.getId());

    }

    public User getById(Integer id) {

        String sql = "select * from t_user where id = ? ";

        return super.getJdbcTemplate().queryForObject(sql,new RowMapper(){

            public User mapRow(ResultSet rs, int arg1) throws SQLException {

                User u = new User();

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

                u.setName(rs.getString("name"));

                return u;

            }}, id);

    }

    public int getTotalCount() {

        String sql = "select count(*) from t_user  ";

        Integer count = super.getJdbcTemplate().queryForObject(sql, Integer.class);

        return count;

    }

    public List getAll() {

        String sql = "select * from t_user  ";

        List list = super.getJdbcTemplate().query(sql, new RowMapper(){

            public User mapRow(ResultSet rs, int arg1) throws SQLException {

                User u = new User();

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

                u.setName(rs.getString("name"));

                return u;

            }});

        return list;

    }

}

(6)、新建数据库驱动链接资源文件,代码如下:

db.properties

jdbc.jdbcUrl=jdbc:mysql:///JdbcTemplateDB

jdbc.driverClass=com.mysql.jdbc.Driver

jdbc.user=root

jdbc.password=root

(7)、书写 Spring 配置文件,代码如下:

applicationContext.xml




   

   

   

   


   


   

(8)、新建测试类进行测试,代码如下:

TestDemo.java

package com.spring.test;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.jdbc.core.JdbcTemplate;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import com.spring.bean.User;

import com.spring.dao.UserDao;

//演示JDBC模板

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration("classpath:applicationContext.xml")

public class TestDemo {

    @Autowired

    private UserDao ud;

    @Test

    public void fun1() throws Exception{

        //1、准备连接池

        ComboPooledDataSource dataSource = new ComboPooledDataSource();

        dataSource.setDriverClass("com.mysql.jdbc.Driver");

        dataSource.setJdbcUrl("jdbc:mysql:///JdbcTemplateDB");

        dataSource.setUser("root");

        dataSource.setPassword("root");

        //2、创建JDBC模板对象

        JdbcTemplate jt = new JdbcTemplate();

        jt.setDataSource(dataSource);

        //3、书写sql语句,并执行

        String sql = "insert into t_user values(null,'rose') ";

        jt.update(sql);

    }

    @Test

    public void fun2() throws Exception{

        User u = new User();

        u.setName("tom");

        ud.save(u);

    }

    @Test

    public void fun3() throws Exception{

        User u = new User();

        u.setId(2);

        u.setName("jack");

        ud.update(u);

    }

    @Test

    public void fun4() throws Exception{

        ud.delete(2);

    }

    @Test

    public void fun5() throws Exception{

        System.out.println(ud.getTotalCount());

    }

    @Test

    public void fun6() throws Exception{

        System.out.println(ud.getById(1));

    }

    @Test

    public void fun7() throws Exception{

        System.out.println(ud.getAll());

    }

}

(9)、配置依赖关系与使用图解:

Spring 框架系列之 JDBC 整合_第3张图片

注:部分知识源于网络,侵权联删!

您可能还喜欢:

Spring框架系列之AOP思想

Spring框架系列(二)之Bean的注解管理

【SSH框架】之Hibernate系列(一)

本系列后期仍会持续更新,欢迎关注!

如果你认为这篇文章有用,欢迎转发分享给你的好友!

本号文章可以任意转载,转载请注明出处!

                                      

                                 扫码关注微信公众号,了解更多

Spring 框架系列之 JDBC 整合_第4张图片

你可能感兴趣的:(Spring 框架系列之 JDBC 整合)