美文网首页技术栈
五、(三)持久层框架——JDBC

五、(三)持久层框架——JDBC

作者: 烟雨乱平生 | 来源:发表于2019-07-22 00:25 被阅读0次
@Configuration
public class DataSourceConfig {

    @Bean(name = "dataSource")
    public DataSource dataSource(){
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
        dataSource.setUsername("root");
        dataSource.setPassword("");
        return dataSource;
    }

    @Bean(name = "dbcp")
    public DataSource dbcp(){
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
        dataSource.setUsername("root");
        dataSource.setPassword("");
        dataSource.setInitialSize(5);
        dataSource.setMaxIdle(10);
        return dataSource;
    }

    @Bean(name = "c3p0")
    public DataSource c3p0() throws PropertyVetoException {
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        dataSource.setDriverClass("com.mysql.jdbc.Driver");
        dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
        dataSource.setUser("root");
        dataSource.setPassword("");
        dataSource.setInitialPoolSize(5);
        dataSource.setMaxPoolSize(10);
        return dataSource;
    }

    @Bean(name = "druid")
    public DataSource druid() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/userinfo?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false");
        dataSource.setUsername("root");
        dataSource.setPassword("");
        dataSource.setInitialSize(5);
        dataSource.setMaxActive(10);
        return dataSource;
    }

    @Bean
    public JdbcTemplate jdbcTemplate(){
        JdbcTemplate template = new JdbcTemplate(dataSource());
        return template;
    }

    @Bean
    public NamedParameterJdbcTemplate namedParameterJdbcTemplate(){
        NamedParameterJdbcTemplate template = new NamedParameterJdbcTemplate(dbcp());
        return template;
    }

}

使用JDBC

@Component
public class UserServiceUseJDBC {

    @Autowired
    @Qualifier("dataSource")
    private DataSource dataSource;

    public void insert(User user){
        Connection connection = null;
        PreparedStatement statement = null;
        String sql = "insert into user(name,account,password,gender) values(?,?,?,?)";
        try {
            connection = dataSource.getConnection();
            statement =connection.prepareStatement(sql);
            statement.setString(1,user.getName());
            statement.setString(2,user.getAccount());
            statement.setString(3,user.getPassword());
            statement.setString(4,user.getGender());
            statement.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            try {
                if(statement!=null) {
                    statement.close();
                }
                if(connection!=null){
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

使用JDBC模板

@Component
public class UserServiceUseTemplate {

    @Autowired
    private JdbcTemplate template;

    public void insert(User user){
        String sql = "insert into user(name,account,password,gender) values(?,?,?,?)";
        template.update(sql,user.getName(),user.getAccount(),user.getPassword(),user.getGender());
    }
}
@Component
public class UserServiceUseTemplate {

    @Autowired
    private JdbcTemplate template;

    @Autowired
    private NamedParameterJdbcTemplate namedTemplate;

    public void insert(User user){
        String sql = "insert into user(name,account,password,gender) values(:name,:account,:password,:gender)";
        Map<String,Object> params = new HashMap<>();
        params.put("name",user.getName());
        params.put("account",user.getAccount());
        params.put("password",user.getPassword());
        params.put("gender",user.getGender());
        namedTemplate.update(sql,params);
    }
}

使用DAO支持类

相关文章

  • 五、(三)持久层框架——JDBC

    使用JDBC 使用JDBC模板 使用DAO支持类

  • MyBatis框架

    MyBatis:一款半自动化的持久层框架 是基于java面向对象的持久层框架 jdbc则是一个面向...

  • 浅谈JDBC与MyBatis

    浅谈JDBC与MyBatis MyBatis是一个基于Java的、封装了JDBC的持久层框架。 1 JDBC JD...

  • MyBatis入门

    MyBatis 快速入门 简介&操作步骤 MyBatis是一款优秀的持久层框架,用于简化JDBC的开发 持久层 负...

  • 自定义持久层框架思路

    使用端:(项目):引入自定义持久层框架的jar包 自定义持久层框架本身:(工程):本质就是对JDBC代码进行了封装

  • SpringBoot(34) — MyBatis简介(1)

    前言 在SpringBoot开发中,之前已经讲过了数据持久层框架,包括Jdbc,Jpa等。Jdbc已经逐渐淡出开发...

  • 045-mybatis plus

    MyBatis是目前最流行的JDBC持久层框架,著名的ssm框架中的m。关于springboot集成mybatis...

  • MyBatis 框架

    1 :MyBatis 框架概述 mybatis 是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,...

  • 手写Mybatis

    JDBC问题分析 自定义持久层框架设计思路 使用者(项目):引入自定义持久层框架的jar包 提供两部分配置信息数据...

  • 1. Mybatis环境搭建及其入门案例

    1、 MyBatis 框架概述 mybatis是一个优秀的基于 java 的持久层框架,它内部封装了 jdbc,使...

网友评论

    本文标题:五、(三)持久层框架——JDBC

    本文链接:https://www.haomeiwen.com/subject/qtdblctx.html