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"
"http://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 id="development">
   <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" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mybatis.mapper">

 <!-- 使用已经配置的java类全路径的别名Student -->
 <resultMap type="Student" id="studentMap">
  <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 id="getAllStu" resultMap="studentMap">
  select
  id,name,pwd,birth from
  tbl_student;
 </select>

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

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

 </select>

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

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

 <update id="updateStu" 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");
  }
 }

}

 

时间: 2024-09-22 05:10:47

mybatis使用步骤的相关文章

Maven项目创建mybatis generator步骤

Maven项目创建mybatis generator需要注意事项: 1.参考资料中说的 <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator</artifactId> <version>1.3.2</version> </dependency> 这个没必要使用,使用了会一直下载不到jar 报错 2.

图文详解mybatis+postgresql平台搭建步骤_java

从头开始搭建一个mybatis+postgresql平台 最近有个项目的数据库使用postgresql,使用原生态的mybatis操作数据,原生态的没什么不好,只不过国内有个tk.mybatis的工具帮助我们做了很多实用的事情,大多数情况下我们需要在原生态mybatis上加工的想法它基本上都已经有很好的实现,这篇将分享安装postgresql,配置tk.mybatis的详细步骤以及在这过程中可能遇到的一些小问题. 安装postgresql,执行下面的命令就可以安装了: 复制代码 代码如下: ap

Spring Boot MyBatis 通用Mapper插件集成

看本文之前,请确保你已经在SpringBoot中集成MyBatis,并能正常使用. 如果没有,那么请先移步 http://blog.csdn.net/catoop/article/details/50553714 做了解后,再按本文步骤操作. 使用MyBatis在我们通过xml集中配置SQL,并通过创建接口Mapper文件来完成持久化DAO层(mybatis内部使用的是动态代理,所以我们不需要自己编写实现类). 然而在实际开发中,单表操作非常多,如果你也想像JPA.JDBC那样做一个所谓的Bas

Java使用JDBC或MyBatis框架向Oracle中插入XMLType数据_java

先来了解一下什么是XMLType类型. XMLType是Oracle从9i开始特有的数据类型,是一个继承了Blob的强大存在,可以用来存储xml并提供了相当多的操作函数.理论上可以保存2G大小的数据. 那怎么样通过java来插入XMLType类型的数据呢?项目当中采用的是Mybatis,总是出现莫名的异常,都搞不清楚到底是Mybatis的问题还是jdbc本身的问题,所以打算一步步来,先搞定jdbc,再解决Mybatis. JDBC在折腾了半天之后,发现jdbc操作主要有3种方法: 一.在Java

Spring整合MyBatis(Maven+MySQL)图文教程详解_java

一. 使用Maven创建一个Web项目 为了完成Spring4.x与MyBatis3.X的整合更加顺利,先回顾在Maven环境下创建Web项目并使用MyBatis3.X,第一.二点内容多数是回顾过去的内容 . 1.2.点击"File"->"New"->"Other"->输入"Maven",新建一个"Maven Project",如下图所示: 1.2.请勾选"Create a si

使用Mybatis Generator结合Ant脚本快速自动生成Model、Mapper等文件的方法_java

MyBatis简介: MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 相关阅读:MyBatis入门学习教程(一)-MyBatis快速入门 使用过Mybatis的同学都知道,针对每一个项目中使用到的数据库表都需要建

Maven+Mybatis+Spring+SpringMVC实现分页查询(附源码)

版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 目录(?)[+] 下面小宝鸽将分享一篇Mybatis分页功能的博文,下面将给出详细的步骤,跟着博主的节奏肯定能实现.另外最后还会附上整个工程的源码.如果是没有使用过maven的猿友可自行下载相关的jar包即可. 一.项目搭建 关于项目搭建,小宝鸽以前写过一篇Spirng+SpringMVC+Maven+Mybatis+MySQL项目搭建,这篇文章提供了详细的搭建过程,而且提供了源码下载,接下

Spring+Velocity+Mybatis整合笔记(step by step)

一.开发工具 开发过程中使用的操作系统是OS X,关于软件安装的问题请大家移步高效的Mac环境设置. 本文是我对自己学习过程的一个回顾,应该还有不少问题待改进,例如目录的设置.编码习惯和配置文件的处理等,请大家多多指正. 文中用到的开发工具列举如下: JDK 1.7.0_79 Intellij IDEA Ultimate 14 Mysql 5.6.25 Maven 3 Git.SourceTree 二.新建工程 1. 新建空的maven工程 第一步新建工程,选择Maven工程,如图1所示.注意,

spring+mybatis+c3p0数据库连接池或druid连接池使用配置整理

在系统性能优化的时候,或者说在进行代码开发的时候,多数人应该都知道一个很基本的原则,那就是保证功能正常良好的情况下,要尽量减少对数据库的操作. 据我所知,原因大概有这样两个: 一个是,一般情况下系统服务器和数据库服务器应该是不在同一硬件上,这时候对数据库的连接.操作就和网络有了很大的关系,连接.操作数据库越多就越影响性能. 二是,数据库的数据持久化在硬件磁盘上,对数据库数据的操作就要进行磁盘的io读写操作,同样是操作越多就越容易影响性能. 而数据库连接池的作用是负责分配.管理和释放数据库连接,它