发表于: 2017-07-14 23:59:41
1 1285
今天完成的事情:
(今天的日报写完了竟然没提交就关机了。。。我也是醉了。。。)
任务17:
jdbcTemplate的用法
在DAO里定义一个 jdbcTemplate:
private DataSource dataSource;
private JdbcTemplate jdbcTemplate;
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
增:
jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.update(sql, new Object[] { student.getId(),
student.getName(),student.getQq(),student.getType(),student.getEnterDate(),
student.getSchool(),student.getStId(),student.getLink(),student.getWord(),
student.gettA(),student.getSource(),student.getUpdate_at(),student.getCreate_at()
});
查:
jdbcTemplate = new JdbcTemplate(dataSource);
student = (Student)jdbcTemplate.queryForObject(sql, new Object[] {id},
new BeanPropertyRowMapper<Student>(Student.class));
BeanPropertyRowMapper可以自动映射,只要数据库的列名和bean的变量名符合规范(一致或中间有下划线隔开)
还有一种是让DAO继承JdbcDaoSupport,这样就不用定义datasource和jdbcTemplate,而是使用getJdbcTemplate
增:
getJdbcTemplate().update(sql, new Object[] { student.getId(),
student.getName(),student.getQq(),student.getType(),student.getEnterDate(),
student.getSchool(),student.getStId(),student.getLink(),student.getWord(),
student.gettA(),student.getSource(),student.getUpdate_at(),student.getCreate_at()
});
查:
student = (Student)getJdbcTemplate().queryForObject(sql, new Object[] {id},
new BeanPropertyRowMapper<Student>(Student.class));
接着是mybatis:
第一种 直接用
写一个mybatis的config文件
mapper就是和javabean的映射
然后是StudentDAO.xml,id和StudentDAO接口里面的函数名对应,这样后面可以直接用DAO类操作
然后在主函数这样配置:
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession session = sqlSessionFactory.openSession();
然后可以选择用
Student student1= (Student)session.selectOne("com.tom.springjdbc.dao.StudentDAO.get", 1L);
session.insert("com.tom.springjdbc.dao.StudentDAO.addStudent",student);
session.delete("com.tom.springjdbc.dao.StudentDAO.delStudent",24L);
session.update("com.tom.springjdbc.dao.StudentDAO.updateStudent",student2);
lS =session.selectList("com.tom.springjdbc.dao.StudentDAO.query");
也可以用DAO类直接操作
session记得要commit()
最后是Spring+Mybatis:
Spring-module:
spring-mybatis
主函数:
ApplicationContext context = new ClassPathXmlApplicationContext("spring-module.xml");
SqlSessionFactory sqlSessionFactory = (SqlSessionFactory) context.getBean("sqlSessionFactory");
SqlSession session = sqlSessionFactory.openSession();
评论