注意:以下操作全是在上一篇博客代码的基础上进行的
1.查询
在dao接口中加入方法findById
在用户的映射配置文件中进行配置
细节:
id:要与dao接口中方法名一致
resultType:用于指定结果集的类型,属性值是封装对象的包类名
parameterType:用于指定输入参数的类型
sql中的#{}:占位符,相当于jdbc中的?
测试类
public static void main(String[] args) throws Exception { //1.读取配置文件 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); //2.创建 SqlSessionFactory 的构建者对象 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //3.使用构建者创建工厂对象 SqlSessionFactory SqlSessionFactory factory = builder.build(in); //4.使用 SqlSessionFactory 生产 SqlSession 对象 SqlSession session = factory.openSession(); //5.使用 SqlSession 创建 dao 接口的代理对象 UserDao userDao = session.getMapper(UserDao.class); //6.使用代理对象执行查询所有方法 User user = userDao.findById(41); System.out.println(user); //7.释放资源 session.close(); in.close(); }
运行结果:
2.增加保存
在dao接口中添加方法
在用户的映射配置文件中进行配置
细节:
标签体为<insert>
parameterType:代表参数的类型,因为我们要传入的是一个类的对象所以类型就写类的全名称。
#{}内写对象的属性
执行方法:
public static void main(String[] args) throws Exception { //1.读取配置文件 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); //2.创建 SqlSessionFactory 的构建者对象 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //3.使用构建者创建工厂对象 SqlSessionFactory SqlSessionFactory factory = builder.build(in); //4.使用 SqlSessionFactory 生产 SqlSession 对象 SqlSession session = factory.openSession(); //5.使用 SqlSession 创建 dao 接口的代理对象 UserDao userDao = session.getMapper(UserDao.class); //6.使用代理对象执行查询所有方法 User user = new User(); user.setUsername("You"); user.setAddress("上海"); user.setBirthday(new Date()); user.setSex("女"); int i = userDao.saveUser(user); if(i == 1) System.out.println("保存成功"); else System.out.println("保存失败"); session.commit(); //7.释放资源 session.close(); in.close(); }
注意:
在增删改方法中一定要注意事务的提交 session.commit();
运行结果:
查看数据库确实运行成功
3.修改
在dao接口添加方法
配置用户映射文件
执行方法
public static void main(String[] args) throws Exception { //1.读取配置文件 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); //2.创建 SqlSessionFactory 的构建者对象 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //3.使用构建者创建工厂对象 SqlSessionFactory SqlSessionFactory factory = builder.build(in); //4.使用 SqlSessionFactory 生产 SqlSession 对象 SqlSession session = factory.openSession(); //5.使用 SqlSession 创建 dao 接口的代理对象 UserDao userDao = session.getMapper(UserDao.class); //6.使用代理对象执行查询所有方法 User user = userDao.findById(51); user.setUsername("ylm"); int i = userDao.updateUser(user); session.commit(); System.out.println(i); //7.释放资源 session.close(); in.close(); }
4.删除
在dao层添加方法
配置用户映射文件
执行方法
public static void main(String[] args) throws Exception { //1.读取配置文件 InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml"); //2.创建 SqlSessionFactory 的构建者对象 SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //3.使用构建者创建工厂对象 SqlSessionFactory SqlSessionFactory factory = builder.build(in); //4.使用 SqlSessionFactory 生产 SqlSession 对象 SqlSession session = factory.openSession(); //5.使用 SqlSession 创建 dao 接口的代理对象 UserDao userDao = session.getMapper(UserDao.class); //6.使用代理对象执行查询所有方法 int i = userDao.deleteUserById(50); session.commit(); System.out.println(i); //7.释放资源 session.close(); in.close(); }