Commit on jdbcTemplate or DataSource

后端 未结 5 749
天命终不由人
天命终不由人 2021-02-02 14:31

I wanted to do commit and rollback using jdbcTemplate.

My question is based on this thread

How do I commit or rollback, should I do it on jdbcTemplate like

5条回答
  •  春和景丽
    2021-02-02 15:14

    @Configuration
    public class ConfigurationApp {
        @Bean
        public DataSource dataSourceJdbc() {
            BasicDataSource dataSource = new BasicDataSource();
            dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
            dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:orcl");
            dataSource.setUsername("hossein");
            dataSource.setPassword("myjava123");
            dataSource.setDefaultAutoCommit(false);
            return dataSource;
        }
    
        @Bean
        public JdbcTemplate jdbcTemplate() {
            JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSourceJdbc());
            return jdbcTemplate;
        }
    
        @Bean
        public DAOImpl dao() {
            DAOImpl personDAO = new DAOImpl();
            personDAO.setJdbcTemplate(jdbcTemplate());
            return personDAO;
        }
    
    
        @Bean
        public PersonService personService() {
            PersonService personService = new PersonService();
            personService.setPersonDAO(dao());
            return personService;
        }
    }
    
    //////////////////////////////////////////
    public class Person {
        private Integer id;
        private String name;
        private String family;
        private Integer password;
    
        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;
        }
    
        public String getFamily() {
            return family;
        }
    
        public void setFamily(String family) {
            this.family = family;
        }
    
        public Integer getPassword() {
            return password;
        }
    
        public void setPassword(Integer password) {
            this.password = password;
        }
    }
    /////////////////////////////////////////
    import org.apache.commons.dbcp2.BasicDataSource;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.stereotype.Repository;
    import java.util.List;
    
    @Repository
    public class DAOImpl  {
        private JdbcTemplate jdbcTemplate;
    
        public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
            this.jdbcTemplate = jdbcTemplate;
        }
    
    
        public int add(Person person) {
            String sql = "insert into person(id,name,family,password) values(?,?,?,?)";
            return this.jdbcTemplate.update(sql, person.getId(), person.getName(), person.getFamily(), person.getPassword());
        }
    
        public void commit(){
            BasicDataSource basicDataSource= (BasicDataSource) jdbcTemplate.getDataSource();
            basicDataSource.setDefaultAutoCommit(true);
        }
      }
    
    ///////////////////////////////////
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    @Service
    public class PersonService {
        private DAOImpl personDAO;
        public void setPersonDAO(DAOImpl personDAO){
            this.personDAO=personDAO;
           }
        public void addPerson(Person person) {
           personDAO.add(person);
           this.personDAO.commit();
        }
    }
    ///////////////////////
    
    public class MainApp {
        public static void main(String[] args) {
            Locale.setDefault(Locale.ENGLISH);
            AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext(ConfigurationApp.class);
            PersonService person=ac.getBean(PersonService.class);
                 Person person1=new Person();
                    person1.setId(896);
                    person1.setName("vali");
                    person1.setFamily("hassanpoor");
                    person1.setPassword(12579);
                    person.addPerson(person1);
    }
    

提交回复
热议问题