Mybatis学习(九)mybatis原始dao接口与dao实现的开发。
来源:互联网 发布:怎么提高记忆知乎 编辑:程序博客网 时间:2024/05/18 16:35
在我们ssh的框架开发中一般会有dao层的分层,在这儿我们也开发出一个用于比较。
在目录机构框架中加入dao层
cn.bj.mybatis
|---model
|---dao
|---impl
类分别为IUserDao.java、UserDaoImpl.java
IUserDao.java
package cn.bj.mybatis.dao;import cn.bj.mybatis.model.User;public interface IUserDao {//根据用户ID查询用户信息public User selectUser(int id);//增加用户信息public void addUser(User user);//删除用户信息public void deleteUser(int id);//修改用户信息public void updateUser(User user);}UserDaoImpl.java
package cn.bj.mybatis.dao.impl;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import cn.bj.mybatis.dao.IUserDao;import cn.bj.mybatis.model.User;public class UserDaoImpl implements IUserDao{//需要向dao实现类中注入sqlSessionFactoryprivate SqlSessionFactory sqlSessionFactory;//在这里用构造方法注入public UserDaoImpl(SqlSessionFactory sqlSessionFactory){this.sqlSessionFactory = sqlSessionFactory;}@Overridepublic User selectUser(int id) {SqlSession session = sqlSessionFactory.openSession();User user = session.selectOne("cn.bj.mybatis.models.UserMapper.selectUser", id);session.close();return user;}@Overridepublic void addUser(User user) {SqlSession session = sqlSessionFactory.openSession();session.insert("cn.bj.mybatis.models.UserMapper.addUser", user);session.commit();session.close();}@Overridepublic void deleteUser(int id) {SqlSession session = sqlSessionFactory.openSession();session.delete("cn.bj.mybatis.models.UserMapper.deleteUser", id);session.commit();session.close();}@Overridepublic void updateUser(User user) {SqlSession session = sqlSessionFactory.openSession();session.update("cn.bj.mybatis.models.UserMapper.updateUser", user);session.commit();session.close();}}User.xml
<?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="cn.bj.mybatis.models.UserMapper"> --> <mapper namespace="cn.bj.mybatis.models.UserMapper"> <select id="getUserOrders" parameterType="int" resultMap="resultUserOrderList"> select t_user.id,t_user.username,t_user.age,t_order.id o_id,t_order.orderName from t_user,t_order where t_user.id=t_order.userid and t_user.id=#{id} </select> <resultMap type="Order" id="resultUserOrderList"> <id property="id" column="o_id"/> <result property="orderName" column="orderName"/> <association property="user" javaType="User"> <id property="id" column="id" /> <result property="name" column="name" /> <result property="age" column="age" /> </association> </resultMap> <!-- 查询数据 --> <select id="selectUser" resultType="User"> select * from t_user where id = #{id} </select> <!-- 增加数据 --> <insert id="addUser" parameterType="User" useGeneratedKeys="true" keyProperty="id"> insert into t_user(username,age) values(#{username},#{age}) </insert> <!-- 修改数据 --> <update id="updateUser" parameterType="User"> update t_user set username=#{username},age=#{age} where id=#{id} </update> <!-- 删除数据 --> <delete id="deleteUser" parameterType="int"> delete from t_user where id = #{id} </delete></mapper>
Mybatistest.java
package cn.bj.mybatis.test;import java.io.IOException;import java.io.InputStream;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 cn.bj.mybatis.dao.IUserDao;import cn.bj.mybatis.dao.impl.UserDaoImpl;import cn.bj.mybatis.model.IUserOperation;import cn.bj.mybatis.model.Order;import cn.bj.mybatis.model.User;public class MybatisTest {public static void main(String[] args){SqlSessionFactory sqlSessionFactory = null;SqlSession session = null;String resource = "Configuration.xml";InputStream inputStream;try {inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);IUserDao userDao = new UserDaoImpl(sqlSessionFactory);//User user = userDao.selectUser(2);查询///*修改User user = userDao.selectUser(2);user.setAge(90);userDao.updateUser(user);*//**添加User user = new User();user.setUsername("kkddkdk");user.setAge(20);userDao.addUser(user);*//** * 删除 userDao.deleteUser(2);*/} catch (IOException e) {e.printStackTrace();}finally{if(session != null){session.close();}}}}在测试类Mybatistest.java中放开注释依次测试即可。
6 0
- Mybatis学习(九)mybatis原始dao接口与dao实现的开发。
- Mybatis开发原始Dao(即有Dao的实现)
- mybatis原始dao开发改进(dao接口和dao实现类)
- Mybatis原始的dao开发
- 原始DAO开发mybatis
- Mybatis(原始dao开发)
- mybatis学习之原始开发DAO与mapper代理开发DAO的区别
- Mybatis之原始dao开发方法(程序员需要写dao接口和dao实现类)(11)
- mybatis原始dao开发实现用户的增删改查
- mybatis 原始dao开发存在的问题
- mybatis 用原始的dao方法开发
- mybatis开发原始dao的方式
- Mybatis-Dao层开发之原始dao
- 使用mybatis开发原始dao
- MyBatis原始Dao开发方式
- Mybatis开发dao的方法--原始dao篇
- MyBatis(5)MyBatis DAO接口开发
- (四)mybatis学习之原始Dao开发方式及与spring整合
- #leetcode#Text Justification
- Linux vim编辑器的使用
- 什么是垃圾回收
- AsyncTask使用
- gcc -I -L -l区别 ./configure --prefix
- Mybatis学习(九)mybatis原始dao接口与dao实现的开发。
- 使用excel进行数据挖掘(1)
- 微信公众平台Js API实现微信分享
- 测试需求分析
- T-SQL_常用内置函数和操作
- Unity 5.1 重大发布,新功能全力支持VR开发!
- protobuf
- 做事还是做人
- Java基础—正则表达式