閱讀190 返回首頁    go 技術社區[雲棲]


mybatis使用步驟

 

jdbcInfo.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/studentdb
jdbc.username=root
jdbc.password=root

 

Mybatis-Config.xml (這是mybatis總配置文件)

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>


 <!-- 引入外部屬性文件 -->
 <properties resource="jdbcInfo.properties" />
 
 <!-- 配置java類全路徑的別名 -->
 <typeAliases>
  <typeAlias alias="Student" type="com.xy.pojo.Student" />
 </typeAliases>

 

 <environments default="development">
  <environment >
   <transactionManager type="JDBC" />
   <dataSource type="POOLED">
    <property name="driver" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
   </dataSource>

  </environment>
 </environments>

 <mappers>
  <mapper resource="StudentMapper.xml" />
 </mappers>
</configuration>

 

 

StudentMapper.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "
https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mybatis.mapper">

 <!-- 使用已經配置的java類全路徑的別名Student -->
 <resultMap type="Student" >
  <id property="id" column="id" />
  <result property="sname" column="name" />
  <result property="spwd" column="pwd" />
  <result property="sbirth" column="birth" />
 </resultMap>

 <!-- sql語句是針對表的操作,而resultMap說明了表和pojo的映射關係 -->
 <select resultMap="studentMap">
  select
  id,name,pwd,birth from
  tbl_student;
 </select>

 <select parameterType="int" resultMap="studentMap">
  select
  id,name,pwd,birth from
  tbl_student where id=#{id};
 </select>

 <select parameterType="String" resultMap="studentMap">
  select
  id,name,pwd,birth from
  tbl_student where name like "%"#{name}"%";

 </select>

 <insert parameterType="Student">
  insert into
  tbl_student(name,pwd,birth)
  values(#{sname},#{spwd},#{sbirth});
 </insert>

 <delete parameterType="int">
  delete from tbl_student
  where id=#{id};
 </delete>

 <update parameterType="Student">
  update
  tbl_student
  set
  name=#{sname},pwd=#{spwd},birth=#{sbirth} where id=#{id};
 </update>

</mapper>

 

 

 

StudentDao

package com.xy.dao;

import java.util.List;

import com.xy.pojo.Student;

public interface StudentDao
{
 public List<Student> getAllStu();
 public Student getModel(int id);
 public void add(Student student);
 public void delete(int id);
 public void update(Student student);
 public List<Student> getModelByName(String name);  // 模煳查詢
}

 

 

 

BasicDaoImpl

package com.xy.dao.impl;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class BasicDaoImpl
{
 private static SqlSessionFactory sqlSessionFactory = null;
 static
 {
  String resource = "Mybatis-Config.xml";
  try
  {
   Reader reader = Resources.getResourceAsReader(resource);
   sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
  }
  catch (IOException e)
  {
   System.out.println("創建SqlSessionFactory實例失敗");
  }
 }

 public static SqlSessionFactory getSqlSessionFactory()
 {
  return sqlSessionFactory;
 }
}

 

 

StudentDaoImpl

package com.xy.dao.impl;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.xy.dao.StudentDao;
import com.xy.pojo.Student;

public class StudentDaoImpl implements StudentDao
{

 // 添加學生
 public void add(Student student)
 {
  SqlSession sqlSession = BasicDaoImpl.getSqlSessionFactory().openSession();
  try
  {
   sqlSession.insert("mybatis.mapper.insertStu", student);
   sqlSession.commit();
  }
  finally
  {
   sqlSession.close();
  }
 }

 // 刪除學生
 public void delete(int id)
 {
  SqlSession sqlSession = BasicDaoImpl.getSqlSessionFactory().openSession();
  try
  {
   sqlSession.insert("mybatis.mapper.deleteStu", id);
   sqlSession.commit();
  }
  finally
  {
   sqlSession.close();
  }
 }

 // 獲取所有學生
 public List<Student> getAllStu()
 {
  SqlSession sqlSession = BasicDaoImpl.getSqlSessionFactory().openSession();
  List<Student> students = null;
  try
  {
   students = (List<Student>) sqlSession.selectList("mybatis.mapper.getAllStu");
  }
  finally
  {
   sqlSession.close();
  }

  return students;
 }

 // 根據id獲取學生
 public Student getModel(int id)
 {
  SqlSession sqlSession = BasicDaoImpl.getSqlSessionFactory().openSession();
  Student stu = null;
  try
  {
   stu = (Student) sqlSession.selectOne("mybatis.mapper.getModelStu", id);
  }
  finally
  {
   sqlSession.close();
  }

  return stu;
 }

 // 更新學生
 public void update(Student student)
 {
  SqlSession sqlSession = BasicDaoImpl.getSqlSessionFactory().openSession();
  try
  {
   sqlSession.insert("mybatis.mapper.updateStu", student);
   sqlSession.commit();
  }
  finally
  {
   sqlSession.close();
  }
 }

 // 根據名字模煳查詢
 public List<Student> getModelByName(String name)
 {
  SqlSession sqlSession = BasicDaoImpl.getSqlSessionFactory().openSession();
  List<Student> students = null;
  try
  {
   students=(List<Student>)sqlSession.selectList("mybatis.mapper.getModelByName", name);
  }
  finally
  {
   sqlSession.close();
  }
  return students;
 }

}

}

 

pojo

package com.xy.pojo;

import java.util.Date;

public class Student
{
 private int id;
 private String sname;
 private String spwd;
 private Date sbirth;

 public int getId()
 {
  return id;
 }

 public void setId(int id)
 {
  this.id = id;
 }

 public String getSname()
 {
  return sname;
 }

 public void setSname(String sname)
 {
  this.sname = sname;
 }

 public String getSpwd()
 {
  return spwd;
 }

 public void setSpwd(String spwd)
 {
  this.spwd = spwd;
 }

 public Date getSbirth()
 {
  return sbirth;
 }

 public void setSbirth(Date sbirth)
 {
  this.sbirth = sbirth;
 }
}

 

 

Test

package com.xy.test;

import java.util.List;

import com.xy.dao.StudentDao;
import com.xy.dao.impl.StudentDaoImpl;
import com.xy.pojo.Student;
import com.xy.util.DateUtil;

public class Test
{

 public static void main(String[] args)
 {
  StudentDao sdao = new StudentDaoImpl();

  // 查找所有學生
  System.out.print("查找所有學生\n");
  List<Student> stus = sdao.getAllStu();
  for (int i = 0; i < stus.size(); i++)
  {

   System.out.print(stus.get(i).getSname());
   System.out.print(DateUtil.parseToString(stus.get(i).getSbirth(), DateUtil.yyyyMMdd));
   System.out.print("\n");
  }

  // 根據id獲取學生
  System.out.print("根據id獲取學生\n");
  Student stu = sdao.getModel(1);
  System.out.print(stu.getSname());
  System.out.print(DateUtil.parseToString(stu.getSbirth(), DateUtil.yyyyMMdd));
  System.out.print("\n");

  // 添加學生
  Student s = new Student();
  s.setSname("xynew");
  s.setSpwd("111");
  String strBirth = "1990-02-28";
  s.setSbirth(DateUtil.parseToDate(strBirth, DateUtil.yyyyMMdd));
  sdao.add(s);
  System.out.print("已經添加記錄");
  System.out.print("\n");

  // 刪除記錄
  

  // 更新記錄
  Student stuUpdate = new Student();
  stuUpdate.setId(6);
  stuUpdate.setSname("xy333");
  stuUpdate.setSpwd("111");
  String strBirthUpdate = "1990-02-28";
  stuUpdate.setSbirth(DateUtil.parseToDate(strBirthUpdate, DateUtil.yyyyMMdd));
  sdao.update(stuUpdate);
  System.out.print("已經更新記錄");
  System.out.print("\n");

  // 模煳查詢
  System.out.print("模煳查詢\n");
  List<Student> list = sdao.getModelByName("x");
  for (int i = 0; i < list.size(); i++)
  {

   System.out.print(list.get(i).getSname());
   System.out.print(DateUtil.parseToString(list.get(i).getSbirth(), DateUtil.yyyyMMdd));
   System.out.print("\n");
  }
 }

}

 

最後更新:2017-04-02 06:52:16

  上一篇:go HD文件管理器 v0.1.3----- 一款界麵簡約,功能強大的免費文件管理器(Android)
  下一篇:go 天氣預報 獲取節氣的代碼