发表于: 2017-12-19 20:56:50

2 582


今天我学习了jdbcTemplate 以前没有听说过

DAO层接口:

public interface UserDao {

List<User> USER_LIST();

   void addUser(User user);

   void deleteUser(int id);

   User getUser(int id);

   void updateUser(User user);
}

DAO层实现类:

public List<User> USER_LIST() {
String sql = "select * from user";
   return this.getJdbcTemplate().query(sql,new UserRowMapper());
}

public void addUser(User user) {
String sql = "insert into user values(?,?,?,?)";
   this.getJdbcTemplate().update(sql,null,user.getUserName(),user.getPassword(),user.getAge());
}

public void deleteUser(int id) {
String sql = "delete from user where id=?";
   this.getJdbcTemplate().update(sql,id);
}

public User getUser(int id) {
String sql = "select * from user where id=?";
   return this.getJdbcTemplate().queryForObject(sql,new UserRowMapper(),id);
}

public void updateUser(User user) {
String sql = "update user set userName = ?,password = ?,age = ? where id=?";
   this.getJdbcTemplate().update(sql,user.getUserName(),user.getPassword(),user.getAge(),user.getId());
}

class UserRowMapper implements RowMapper<User> {
public User mapRow(ResultSet resultSet, int i) throws SQLException {
User user = new User();
       user.setId(resultSet.getInt("id"));
       user.setUserName(resultSet.getString("userName"));
       user.setPassword(resultSet.getString("password"));
       user.setAge(resultSet.getInt("age"));
       return user;
   }
}

mybatis:DAO层写接口,然后映射到xml文件

JDBCTemplate和mybatis的区别:

mybatis写起来更加简单 JDBCTemplate需要先继承JdbcDaoSupport,然后再用getJdbcTemplate方法进行增删改查的操作,还要有一个工具类实现RowMapper来封装数据,而mybatis的DAO接口可以通过配置文件

<property name="mapperLocations" value="classpath*:/sqlmap/*.xml"/>

直接映射到xml文件,简化很多步骤


junit单元测试

@Test
public void testUserList(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
   UserDao dao = (UserDao) ctx.getBean("userDao");
   List<User> users = dao.USER_LIST();
   for (User user:users) {
System.out.println(user.toString());
   }

}

@Test
public void testDeleteUser(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
   UserDao dao = (UserDao) ctx.getBean("userDao");
   dao.deleteUser(1);
}

@Test
public void testAddUser(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
   UserDao dao = (UserDao) ctx.getBean("userDao");
   User user = new User();
   user.setId(1);
   user.setUserName("fffad");
   user.setPassword("fwe");
   user.setAge(32);
   dao.addUser(user);
}

@Test
public void testGetUser(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
   UserDao dao = (UserDao) ctx.getBean("userDao");
   User user = dao.getUser(2);
   System.out.println(user.toString());
}

@Test
public void testUpdateUser(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
   UserDao dao = (UserDao) ctx.getBean("userDao");
   User user = new User();
   user.setId(5);
   user.setUserName("fff");
   user.setPassword("ttt");
   user.setAge(666);
   dao.updateUser(user);
}


创建容器,把配置文件放里面,再去配置文件中找到需要的bean进行操作


返回列表 返回列表
评论

    分享到