发表于: 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进行操作
评论