发表于: 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



返回列表 返回列表
评论

    分享到