MyBatis入门配置及简单应用

MyBatis:支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。

在这里简单的创建一个java web项目MyBatis:



在这里,StudentMapper.java相当于dao层,而StudentMapper.xml相当于dao的impl。


实体类Student.java:

package cn.hbue.entity;

public class Student {

 private Integer id;
 private String name;
 private String sex;
 private String birth;
 private String department;
 private String address;

 public Student(){
	 super();
 }

public Integer getId() {
	return id;
}

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

public String getName() {
	return name;
}

public void setName(String name) {
	this.name = name;
}

public String getSex() {
	return sex;
}

public void setSex(String sex) {
	this.sex = sex;
}

public String getBirth() {
	return birth;
}

public void setBirth(String birth) {
	this.birth = birth;
}

public String getDepartment() {
	return department;
}

public void setDepartment(String department) {
	this.department = department;
}

public String getAddress() {
	return address;
}

public void setAddress(String address) {
	this.address = address;
}

@Override
public String toString() {
	return "Student [id=" + id + ", name=" + name + ", sex=" + sex + ", birth="
			+ birth + ", department=" + department + ", address=" + address
			+ "]";
}
 
public Student(Integer id,String name,String sex,String birth,String department,String address){
	super();
	this.id=id;
	this.name=name;
	this.sex=sex;
	this.birth=birth;
	this.department=department;
	this.address=address;
	
	
}
 

 
}


 数据的简单操作StudentMapper.java:

package cn.hbue.mapper;

import java.util.List;

import cn.hbue.entity.Student;


/**接口类型  相当于StuedntDao **/
public interface StudentMapper {
	
	public Student getStudentById(Integer id);  //通过id查询
	public int saveStudent(Student stu);  //插入数据
	public void updateStudent(Student stu);  //更新数据
	public void deleteStudentById(Integer id);  //删除数据
	
	
	//批量操作
	public List<Student> getAllStudent();  

}



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">
  
  <!-- 相当于 StudentDaoImpl
       namespace:指向接口,对应接口的全类名,一个命名空间对应一个dao接口-->
<mapper namespace="cn.hbue.mapper.StudentMapper">
  <!-- id:对应接口中的方法        resultType:对应返回值类型                parameterType: 对应参数类型-->


  <select id="getStudentById" resultType="cn.hbue.entity.Student">
    select * from student where id = #{id}
  </select>
  <insert id="saveStudent" parameterType="cn.hbue.entity.Student">
    insert into student values(#{id},#{name},#{sex},#{birth},#{department},#{address})
  </insert>
  <update id="updateStudent" parameterType="cn.hbue.entity.Student" >
     update student set id=#{id}, name=#{name},sex=#{sex},birth=#{birth},department=#{department},address=#{address} where id=#{id}
  </update>
  <delete id="deleteStudentById" parameterType="Integer">
    delete from student where id=#{id}
  </delete>
  
  <!-- 批量操作   -->
  <resultMap type="cn.hbue.entity.Student" id="StudentList"> 
   <!-- id:数据库表主键   , property:对应javabean的属性 ,column:对应数据库表的字段 -->
    <id property="idCard" column="stu_id_card"/> 
    <result property="id" column="id"/>
    <result property="name" column="name"/>
    <result property="sex" column="sex"/>
    <result property="birth" column="birth"/>
    <result property="department" column="department"/>
    <result property="address" column="address"/>
  </resultMap> 
  <select id="getAllStudent" resultMap="StudentList">
    select * from student;
  </select>
 

</mapper>


mybatis的映射文件mybatis-configure.xml,处理数据库连接资源

<?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>
  <environments default="development">
    <environment id="development">
    <!-- 事务管理 -->
      <transactionManager type="JDBC"/>
      <!-- 数据源 -->
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/lanou?useUnicode=true&characterEncoding=UTF8"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
      </dataSource>
    </environment>
  </environments>
  <!-- 映射文件 -->
  
  <mappers>
    <mapper resource="cn/hbue/mapper/StudentMapper.xml"/>
  </mappers>

</configuration>


在这里,针对数据表student做了简单的增删改查以及批量的查询操作:

package cn.hbue.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 org.junit.Test;

import cn.hbue.entity.Student;
import cn.hbue.mapper.StudentMapper;

public class MybatisTest {

	@Test
	public static void main(String[] args) throws IOException{
		String resource ="mybatis-configure.xml";
		InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
		SqlSession session = sqlSessionFactory.openSession();
		try {
		StudentMapper mapper = session.getMapper(StudentMapper.class);
//		Student stu_select = mapper.getStudentById(907); //查询id=907
//		Student stu_insert = new Student(909,"幺妹儿","女","1992","舞蹈系","鄂州市鄂城区");
//	    mapper.saveStudent(stu_insert);  //将数据插入数据库
//    	System.out.println("查询907:"+stu_select.toString()); 
//		Student stu = mapper.getStudentById(909); //查询刚插入的数据   id=908 
//		System.out.println("查询908:"+stu.toString()); 
//	    System.out.println("更新之后查询908:"+stu.toString());
//		Student stu_update = new Student(909,"哈哈","女","1999","舞蹈系","鄂州市鄂城区");
//		mapper.updateStudent(stu_update);
//		System.out.println("更新之后查询909: "+stu_update.toString());
//	    mapper.deleteStudentById(908);  //删除成功
//	    System.out.println("删除成功-----");
		
		
	
		List<Student> list=mapper.getAllStudent();
		for(Student student: list){
			System.out.println("学生信息:"+student.toString());
		}
		System.out.println("查询所有student信息成功-----");	
		
		
		session.commit();
		}
	   finally {
		  session.close();
		}

	}

}










  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园悬赏任务平台对字典管理、论坛管理、任务资讯任务资讯公告管理、接取用户管理、任务管理、任务咨询管理、任务收藏管理、任务评价管理、任务订单管理、发布用户管理、管理员管理等进行集中化处理。经过前面自己查阅的网络知识,加上自己在学校课堂上学习的知识,决定开发系统选择小程序模式这种高效率的模式完成系统功能开发。这种模式让操作员基于浏览器的方式进行网站访问,采用的主流的Java语言这种面向对象的语言进行校园悬赏任务平台程序的开发,在数据库的选择上面,选择功能强大的Mysql数据库进行数据的存放操作。校园悬赏任务平台的开发让用户查看任务信息变得容易,让管理员高效管理任务信息。 校园悬赏任务平台具有管理员角色,用户角色,这几个操作权限。 校园悬赏任务平台针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理任务信息,管理任务资讯公告信息等内容。 校园悬赏任务平台针对用户设置的功能有:查看并修改个人信息,查看任务信息,查看任务资讯公告信息等内容。 系统登录功能是程序必不可少的功能,在登录页面必填的数据有两项,一项就是账号,另一项数据就是密码,当管理员正确填写并提交这二者数据之后,管理员就可以进入系统后台功能操作区。项目管理页面提供的功能操作有:查看任务,删除任务操作,新增任务操作,修改任务操作。任务资讯公告信息管理页面提供的功能操作有:新增任务资讯公告,修改任务资讯公告,删除任务资讯公告操作。任务资讯公告类型管理页面显示所有任务资讯公告类型,在此页面既可以让管理员添加新的任务资讯公告信息类型,也能对已有的任务资讯公告类型信息执行编辑更新,失效的任务资讯公告类型信息也能让管理员快速删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值