通过Mybatis操作数据库

4 篇文章 0 订阅
4 篇文章 0 订阅
  1. 创建普通java类 含get set toString 等方法。。
public class Student {

    private int id;
    private String name;
    private double score;
    private String hobby;

   getter;
   setter;
   toString;
}

2.使用单例形式创建SQLSession对象。为什么使用单例模式,请看我在代码中注释。

public class MyBatisUtil {
    /**
     * 创建单例对象 
     * SqlSessionFactory 是一个重量级对象 系统开销很大。 一个应用只需要一个这样的对象就可以了。
     * 所以把它设置成为单例。。
     */
    private static SqlSessionFactory factory;

    public static SqlSession getSqlSession() {
        try {
            if (factory == null) {
                  //读取主配置文件,将主配置文件与输入流连上。
                InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
                //通过输入流 创建SqlSessionFactory 对象
                factory = new SqlSessionFactoryBuilder().build(inputStream);
            }
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }
        //返回session 对象... 默认是将自动提交关闭了的,所以要手动地写上commit()方法..
        return factory.openSession();
    }

}

3.创建dao接口。 主要是通过接口去执行sql语句。。直接上代码:

package com.evecom.dao;

import java.util.List;
import java.util.Map;

import com.evecom.common.*;

public interface IStudentDao {

    /**
     * 插入学生数据   
     * @param student
     */
  void insertStudent(Student student);
  /***
   * 删除学生数据
   * @param id 学生id
   */
  void deleteStudentById(int id);
  /***
   * 通过id 更新学生信息
   * @param 传入学生对象
   */
  void upDateStudentInfo(Student student);

  /***
   * 查询所有数据
   * @return
   */
  List<Student> selectAllStudent();
  /***
   * 查询
   * @return
   */
  Map<String, Student>selectStudentMap();
  /***
   * 根据id查询 数据
   * @param id
   * @return
   */
  Student selectStudentById(int id);
  /***
   * 查询数据
   * @param map 通过map中的key值。
   * @return
   */
  Student selectStudentByMap(Map<String, Object> map);
  /***
   * 根据学生名字查询学生信息
   * @param name 学生名字
   * @return 可能有同名的学生, 所以这里是 list 
   */

  List<Student> selectStudentByName(String name);

}

4.创建实现类. 实现接口中方法。完成数据库操作

public class StudentDaoImpl implements IStudentDao {
    private SqlSession session;
    /*** 数据库中student list */
    public List<Student> list = null;
    public void insertStudent(Student student) {
        // TODO Auto-generated method stub

        try {
            session = MyBatisUtil.getSqlSession();
            session.insert("reyco.insertStu", student);
            session.commit();
        } finally {
            // TODO: handle finally clause
            if (session!= null) {
                session.close();
            }
        }

    }
}

5.测试。。

public static void main(String[] args) {
        // TODO Auto-generated method stub
         IStudentDao iStudentDao = new StudentDaoImpl();

//         List<Student> list = iStudentDao.selectAllStudent();
//         
//         for (Student student : list) {
//          System.out.println(student);
//      }

//      Map<String, Student> map = iStudentDao.selectStudentMap();
////      若key值相同。后存入的值覆盖之前存入的值。。。 是最后一条数据。。
//     Student student3 = map.get("wwww");
//     System.out.println(student3);

//         Student student = iStudentDao.selectStudentById(17);
//         System.out.println(student);

         List<Student> students = iStudentDao.selectStudentByName("张");
         for (Student student : students) {
            System.out.println(student);
        }

    }

如上所示。就是增删改查的全过程。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值