第一步:创建User实体类(POJO)

package com.xu.pojo;import java.util.Date;/*** * @author 徐亮亮* Title: User* Description: POJO* Project: mybatis1* Package: com.xu.pojo* @date 2018年3月2日 下午11:27:29* @version 1.0*/
public class User {// 属性名和数据库表的字段对应private int id;private String username;// 用户姓名private String sex;// 性别private Date birthday;// 生日private String address;// 地址public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}
}

第二步:创建UserDao接口(进行数据库的增删改查操作,方便其他类继承访问)

package com.xu.dao;import com.xu.pojo.User;
/*** * @author 徐亮亮* Title: UserDao* Description: UserDao(功能:用来封装实体类与数据库的访问)* Project: mybatis1* Package: com.xu.dao* @date 2018年3月5日 上午12:52:11* @version 1.0*/
public interface UserDao {//根据id查询用户信息public User findUserById(int id) throws Exception;//添加用户信息public void addUser(User user) throws Exception;//删除用户信息public void deleteUSer(int id) throws Exception;
}

第三步:创建UserDaoImpl实现接口类

package com.xu.dao;import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;import com.xu.pojo.User;
/*** * @author 徐亮亮* Title: UserDaoImpl* Description: 接口的实现类* Project: mybatis1* Package: com.xu.dao* @date 2018年3月5日 上午1:31:35* @version 1.0*/
public class UserDaoImpl implements UserDao {private SqlSessionFactory sqlSessionFactory;//通过构造方法创建SqlSessionFactory会话工厂public UserDaoImpl(SqlSessionFactory sqlSessionFactory) {this.sqlSessionFactory = sqlSessionFactory;}/*** id 查询用户信息*/@Overridepublic User findUserById(int id) throws Exception {//通过sqlSessionFactory会话工厂创建SqlSession会话SqlSession sqlSession = sqlSessionFactory.openSession();//进行数据库的查询操作User user = sqlSession.selectOne("test.findUserById", id);//关闭SqlSession会话
        sqlSession.close();return user;}/*** 添加用户信息*/@Overridepublic void addUser(User user) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();sqlSession.insert("test.addUser", user);//开启事务
        sqlSession.commit();sqlSession.close();}/*** 删除用户信息*/@Overridepublic void deleteUSer(int id) throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();sqlSession.delete("test.deleteUser", id);sqlSession.commit();sqlSession.close();}}

第四步:测试代码

package com.xu.dao;import java.io.InputStream;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Before;
import org.junit.Test;import com.xu.pojo.User;public class UserDaoImplTest {private SqlSessionFactory sqlSessionFactory;@Beforepublic void setUp() throws Exception {//取得全局配置文件名称String resource = "SqlMapConfig.xml";//得到配置文件流InputStream inputStream = Resources.getResourceAsStream(resource);//创建会话工厂sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void testFindUserById() throws Exception {//实例化UserDao接口UserDao userDao = new UserDaoImpl(sqlSessionFactory);User user = userDao.findUserById(1);System.out.println(user.getUsername()+","+user.getSex());}@Testpublic void testAddUser() throws Exception {UserDao userDao = new UserDaoImpl(sqlSessionFactory);User user = new User();user.setUsername("孙琪");user.setSex("男");userDao.addUser(user);}@Testpublic void testDeleteUSer() throws Exception {UserDao userDao = new UserDaoImpl(sqlSessionFactory);userDao.deleteUSer(33);}}

总结:Mybatis框架的主要功能是支持数据的持久化,所以在web开发过程中主要应用与Dao的开发,Dao的功能是封装实体类与数据库的访问过程,则以上代码就是一个很实用的初始化代码。

      本人也是刚刚开始学习Mybatis框架,若有遗漏或理解错误的地方请各位大神评论多多指教。  

转载于:https://www.cnblogs.com/x-ll123/p/8507048.html

Mybatis编写初始化Dao代码相关推荐

  1. SpringBoot如何自动生成实体类和Dao层以及映射文件(mybatis generator 自动生成代码)

    一.首先添加自动生成代码插件 <!-- mybatis generator 自动生成代码插件 生成时解除注释 --><plugin><groupId>org.myb ...

  2. 1.Dao代码如何编写?

    Dao代码如何编写? 1.操作xml数据.数据保存在xml文件里. 2.使用jdbc技术. 2.1.原始的jdbc操作,connection,statement,resultset. 2.2.自定义一 ...

  3. 阿里面试题:Mybatis中的Dao接口和XML文件里的SQL是如何建立关系的?

    一.解析XML 首先,Mybatis在初始化SqlSessionFactoryBean的时候,找到mapperLocations路径去解析里面所有的XML文件,这里我们重点关注两部分. 1.创建Sql ...

  4. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    我们这一一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池的好处我 ...

  5. if mybatis tk 多个_面试题:mybatis 中的 DAO 接口和 XML 文件里的 SQL 是如何建立关系的?...

    前言 这是 mybatis 比较常问到的面试题,我自己在以前的面试过程中被问到了2次,2次都是非常重要的面试环节,因此自己印象很深刻. 这个题目我很早就深入学习了,但是一直没有整理出来,刚好最近一段时 ...

  6. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

    http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...

  7. 编写可读代码,提高工作效率

    本次分享是怎么做到"可读性"的 首先,正在进行的,说明下本文的可读性. 1.背景 根据今年形势996icu,加班加点的情况比较多.与其抱怨,不如改变. 从内因去改变:主题,编写可读 ...

  8. 第一个Mybatis程序配置(代码)

    2.第一个Mybatis程序 思路:搭建环境–>导入Mybatis–>编写代码–>测试! 2.1.搭建环境 搭建数据库 新建项目: 创建一个普通的Maven项目 删除src目录 导入 ...

  9. Mybatis中自动生成代码(利用mybatis-generator-core-1.3.2)

    Mybatis中自动生成代码(利用mybatis-generator-core-1.3.2) 引言: 在使用mybatis开发的过程中,通常我们会给数据库的每张表编写对应的po.mapper.mapp ...

最新文章

  1. Developer Express 之 XtraReport如何显示设计窗体,打开已设计过的报表
  2. Oracle定时任务执行存储过程备份日志记录表
  3. mysql去掉秒杀场景_秒杀场景下mysql减库存逻辑优化
  4. openmv集成应用_使用OpenMV引导无人机飞行
  5. .NET 5 尝鲜 - 开源项目TerminalMACS WPF管理端支持.NET 5
  6. Python zip函数 - Python零基础入门教程
  7. 邬贺铨/余晓晖/田溯宁…千家从业者,数十位行业大咖共同烹制了一场怎样的AIoT“盛宴”?
  8. python小球弹弹弹_python实现弹跳小球
  9. 年薪50W测试大牛,分享测试开发基础知识
  10. LeetCode:旋转链表【61】
  11. Unity 常用API以及C# 工具类的使用
  12. linux下修改mysql数据存储_Linux下修改MySQL数据存放目录方法及可能遇到的问题--转...
  13. win 7 双击themepack主题包没反应的完美解决方法!
  14. CF19E Fairy (奇偶环,树上差分)
  15. 华硕飞行堡垒键盘背光灯无法显示怎么办?
  16. Vue组件-卡片动画倒计时
  17. WordPress重要文件wp-seting.php文件详解
  18. 部署项目至青云服务器简易流程
  19. 使用PN532向小米手环写入加密卡(复制门禁卡)
  20. 孙子兵法——【12】(百家讲坛观后记录)

热门文章

  1. 【深度优先搜索】计蒜客:中国象棋
  2. LeetCode 73. 矩阵置零(两个标记变量)
  3. 基于运动特征的视频质量评价方法(基于H.264)
  4. wgan 不理解 损失函数_GAN:「太难的部分我就不生成了,在下告退」
  5. doxygen 无法生成图片_设计稿智能生成代码如何识别组件?Imgcook 3.0 解析
  6. 计算机网络八校联考试题,2019届高三信息技术3月联考试卷有解析与答案
  7. php怎么限制文章标题的字数,文章标题在WordPress中显示的长度即字数如何限制呢?...
  8. android edittext不可复制_Android 禁止输入框 EditText 复制粘贴
  9. 计算机类专业综合理论模拟试卷4,计算机类专业理论综合考试试题
  10. poj2528 区间覆盖