发表于: 2017-11-29 23:40:25
1 607
今天完成的事:
1、jdbcTemplate跑通了;
2、MyBatis和spring整合跑通了;
遇到的问题:
1、一下午都在调MyBatis,终于跑通了。
mybatis主配置文件,其他bean都交给spring容器,注册类的别名,将该包中所有简单类名指定为别名。不理解
<configuration>
<typeAliases>
<package name="com.jnshu.jdbc.bean"/>
</typeAliases>
<mappers>
<mapper resource="UserDao.xml"/>
</mappers>
</configuration>
2、
明天的计划:
学习log4j查看日志
学习debug模式
学习Spring、junit
收获:
1、spring的配置文件:
SqlSession是Mybatis中的关键,但是SqlSession是单例的,每次和数据库连接都需要创建,结束后关闭。
SqlSession有SqlSessionFactory创建,SqlSessionFactory由SqlSessionFactoryBuilder创建,和spring整合后是将sqlsessionfactory交给spring容器创建,
<bean id="mySqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:mybatis.xml"/>
<property name="dataSource" ref="myDataSource"/>
</bean>
<!--生成dao-->
<bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="SqlSessionFactory" ref="mySqlSessionFactory"/>
<property name="mapperInterface" value="com.jnshu.jdbc.dao.UserDao"/>
</bean>
<!--配置userservice-->
<bean id="userService" class="com.jnshu.jdbc.service.UserServiceImp">
<property name="dao" ref="userDao"/>
</bean>
接口的自动实现
<property name="mapperInterface" value="com.jnshu.jdbc.dao.UserDao"/>
2、jdbc对自定义对象的查询
RowMapper将查询的单个对象封装成一个对象,
public class UserRowMapper implements RowMapper<User> {
public User mapRow(ResultSet resultSet, int i) throws SQLException {
User user = new User();
user.setId(resultSet.getInt("id"));
user.setName(resultSet.getString("name"));
user.setAge(resultSet.getInt("age"));
return user;
}
}
public List<User> selectAllUsers(){
String sql = "select * from users";
List<User> users = this.getJdbcTemplate().query(sql, new UserRowMapper());
return users;
}
禅道需要延期 http://task.ptteng.com/zentao/my-task.html
评论