SSM项目从零开始到入门007-使用接口完成增删改查操作
来源:互联网 发布:网络音乐播放器hifi 编辑:程序博客网 时间:2024/05/16 17:06
使用接口完成增删改查操作
本文将继续前边的例子完成CRUD(增加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)首字母简写)的操作。
CRUD主要被用在描述软件系统中数据库或者持久层的基本操作功能。
在之前的demo例子mybatis测试类里直接调用mapper文件完了一个查询操作,现在我们使用后接口进行方法的定义、
首先新建立dao接口包和接口实现类包以及对应实体的UserDao接口和UserDaoImpl实现类
在接口中定义CRUD的操作方法
package com.jsx.dao;import java.util.List;import com.jsx.pojo.User;public interface UserDao {/** * 添加用户 * @param user */public void addUser(User user);/** * 根据id删除用户 * @param id */public void deleteUser(Long id);/** * 更新用户信息 * @param user */public void updateUserById(User user);/** * 根据用户id返回用户信息 * @param id * @return */public User findUserById(Long id);/** * 根据用户名和密码返回用户信息 * @param username * @param password * @return */public User findUserByNameAndPwd(User user);/** * 返回所有用户信息 * @return List<User> */public List<User> findUserAll();}
然后去实现类实现接口中定义的方法,由于方法执行需要sqlSession,所以要把sqlSession已构造函数的形式传入
然后实现所有方法
package com.jsx.dao.impl;import java.util.List;import org.apache.ibatis.annotations.Param;import org.apache.ibatis.session.SqlSession;import com.jsx.dao.UserDao;import com.jsx.pojo.User;public class UserDaoImpl implements UserDao{private SqlSession sqlSession;public UserDaoImpl(SqlSession sqlSession){this.sqlSession = sqlSession;}@Overridepublic void addUser(User user) {sqlSession.insert("UserMapper.addUser",user);}@Overridepublic void deleteUserById(Long id) {sqlSession.delete("UserMapper.deleteUserById",id);}@Overridepublic void updateUser(User user) {sqlSession.update("UserMapper.updateUser",user);}@Overridepublic User findUserById(Long id) {return sqlSession.selectOne("UserMapper.findUserById", id);}@Overridepublic User findUserByNameAndPwd(User user) {return sqlSession.selectOne("UserMapper.findUserByNameAndPwd",user);}@Overridepublic List<User> findUserAll() {return sqlSession.selectList("UserMapper.findUserAll");}}
在UserMapper配置文件定义接口方法实现的sql语句
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="UserMapper"><!-- 插入语句定义 --><insert id="addUser" parameterType="com.jsx.pojo.User">INSERT INTO t_user(user_name,password,name,age,sex,birthday,created,updated)VALUES(#{userName},#{password},#{name},#{age},#{sex},#{birthday},NOW(),NOW());</insert><!-- 删除语句定义 --><delete id="deleteUserById">delete from t_user where id = #{id}</delete><!-- 修改语句定义 --><update id="updateUser">UPDATE t_userSETuser_name = #{userName},password = #{password},name = #{name},age = #{age},sex = #{sex},birthday = #{birthday},updated = NOW()WHERE(id = #{id});</update><!-- 查询 id 标识(唯一) resultType结果集映射的java对象类型 --><select id="findUserById" resultType="com.jsx.pojo.User">select * ,user_name as username from t_user where id = #{id}</select><select id="findUserByNameAndPwd" resultType="com.jsx.pojo.User">select * ,user_name as username from t_user where user_name = #{userName} and password = #{password}</select><select id="findUserAll" resultType="com.jsx.pojo.User">select *,user_name as username from t_user</select></mapper>
添加junit支持,并创建UserDao的测试类
在pom.xml文件添加
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency>
在UserDao右键点击创建junit测试类,路径选择到/mybatis01/src/test/java
完成对上先写的方法测试
package com.jsx.test;import static org.junit.Assert.fail;import java.io.InputStream;import java.util.Date;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Before;import org.junit.Test;import com.jsx.dao.UserDao;import com.jsx.dao.impl.UserDaoImpl;import com.jsx.pojo.User;public class UserDaoTest {SqlSession sqlSession =null;UserDao userDao =null;@Beforepublic void setUp() throws Exception {//mybatis配置文件 String resource = "mybatis-config.xml";//读取配置文件信息InputStream is = Resources.getResourceAsStream(resource );//构件SqlSessionFactorySqlSessionFactory sf = new SqlSessionFactoryBuilder().build(is);//获取sqlSessionsqlSession = sf.openSession();userDao = new UserDaoImpl(sqlSession);}@Testpublic void testAddUser() {User user = new User();user.setuserName("dsadsad");user.setPassword("sadsadsa");user.setName("1234dsa");user.setAge(18);user.setSex(2);user.setBirthday(new Date());userDao.addUser(user);System.out.println(user.toString());sqlSession.commit();}@Testpublic void testDeleteUserById() {userDao.deleteUserById(36l);sqlSession.commit();}@Testpublic void testUpdateUser() {User user = userDao.findUserById(37l);user.setName("落尘曦1");userDao.updateUser(user);sqlSession.commit();}@Testpublic void testFindUserById() {User user = userDao.findUserById(26l);System.out.println(user.toString());}@Testpublic void testFindUserByNameAndPwd() {User user = new User();user.setuserName("123");user.setPassword("123");user = userDao.findUserByNameAndPwd(user);System.out.println(user.toString());}@Testpublic void testFindUserAll() {List<User> findUserAll = userDao.findUserAll();for (User user : findUserAll) {System.out.println(user.toString());}}}
阅读全文
0 0
- SSM项目从零开始到入门007-使用接口完成增删改查操作
- CodeIgniter(1)简单入门---使用mvc来完成对新闻的一组操作----增删改查
- SSM 增删改查
- 使用iBATIS3.0完成增删改查
- mybatis入门---增删查改操作
- SSM整合--增删改查
- SSM框架---增删查改
- SSM整合(增删改查)
- SSM整合--增删改查
- ssm实现增删改查
- 晨魅--练习ssm框架整合,做增删改查操作
- SSM+EasyUI整合,简单实现后台增删改查操作
- 练习ssm框架整合,做增删改查操作
- SSM框架解读 Mapper.xml 增删改查操作
- 练习ssm框架整合,做增删改查操作
- ElasticSearch使用入门-增删查改
- 使用非类型化的DataSet完成用户信息的增删改查操作
- 使用Spring框架下的JdbcTemplate 完成对数据库的增删改查操作
- 【Scikit-Learn 中文文档】交叉验证
- Android IPC机制(一)开启多进程和用Messenger进程间通信
- 解决 emoji 表情的存储问题。
- 策略模式
- 安装wordpress后显示index of/wordpress,或者Forbidden You dont't have permission
- SSM项目从零开始到入门007-使用接口完成增删改查操作
- MQTT源码交叉编译与移植
- 关于同一个函数,在多个js中有,在html调用这个函数的时候,是后者覆盖掉前者,还是执行完前者,再执行后者?
- 断点续传
- Python----@property 可以用装饰器函数 get/set方法
- QT5.9.1与opencv3.3读取图片(2)
- <随手记>java.lang.NoClassDefFoundError的解决
- Apache服务器的下载与安装
- 关于open file limit问题解决