zoukankan      html  css  js  c++  java
  • 10分钟入门MyBatis跟我从零开始学MyBatis

    1.准备MyBatis环境

    1.1 create sql database

    create database studentdb;
    use studentdb;
    
    create table student
    (
    	id int auto_increment primary key,
    	name varchar(20) unique not null,
    	age int not null,
    	phone varchar(11) not null,
    	address varchar(50) not null
    );
    
    insert into student values(null,'user1',21,'13311112222','hubeiwuhan');
    insert into student values(null,'user2',32,'13311113333','jiangsuchangde');
    insert into student values(null,'user3',14,'13314444222','shanghaipudong');
    insert into student values(null,'user4',26,'13311555522','beijingdongcheng');
    insert into student values(null,'user5',31,'13317777222','wuhanxudong');
    	
    

    1.2  Building SqlSessionFactory from 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>
    	<properties resource="com/ibatis/config/sql.properties" />
    	<settings>
    		<setting name="cacheEnabled" value="false"/>
    	</settings>
    	<typeAliases>
    		<typeAlias alias="Student" type="com.ibatis.entity.Student"/>
    	</typeAliases>
    	<environments default="development">
    		<environment id="development">
    			<transactionManager type="JDBC" />
    			<dataSource type="POOLED">
    				<property name="driver" value="${driver}" />
    				<property name="url" value="${url}" />
    				<property name="username" value="${username}" />
    				<property name="password" value="${password}" />
    			</dataSource>
    		</environment>
    	</environments>
    	<mappers>
    		<mapper resource="com/ibatis/entity/maps/studentMapper.xml" />
    	</mappers>
    </configuration>
    

     1.3  sql.properties

     driver=com.mysql.jdbc.Driver
     url=jdbc:mysql://localhost:3306/studentdb
     username=root
     password=123
    

     1.4 Exploring Mapped SQL Statements

    <?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="com.ibatis.entity.maps.StudentMapper">  
    	<!--查询所有学生  -->
     	<select id="selectAllStudents" resultType="Student">
     		select * from Student
     	</select>
     	
     	<!-- 根据ID查询学生 -->
     	<select id="selectStudentById" resultType="Student" parameterType="int">
     		select * from Student where id=#{id}
     	</select>
     	
     	<!-- 添加学生 -->
     	<insert id="addStudent" parameterType="Student">
     		insert into Student(name,age,phone,address) 
     		values (#{name},#{age},#{phone},#{address})
     	</insert>
     	
     	<!-- 更新学生信息 -->
     	<update id="updateStudent" parameterType="Student">
     		update Student set 
     			name=#{name},
     			age=#{age},
     			phone=#{phone},
     			address=#{address}
     			where id=#{id}
     	</update>
     	
     	<!-- 删除学生信息 -->
     	<delete id="deleteStudent" parameterType="int">
     		delete from Student where id=#{id}
     	</delete>
     	
     	<!-- 根据学生姓名模糊查询学生 -->
     	<select id="selectStudentByName" parameterType="String" resultType="Student">
     		
     		select * from Student 
     		where name like "%"#{name}"%"
     	</select>
    </mapper> 
    

     2.Start

    2.1  building entityBean

    package com.ibatis.entity;
    
    import java.io.Serializable;
    
    @SuppressWarnings("serial")
    public class Student implements Serializable {
    
    	private Integer id;
    	private String name;
    	private Integer age;
    	private String phone;
    	private String address;
    
    	public Student(){
    		
    	}
    	
    	public Student(String name, Integer age, String phone, String address) {
    		this.name = name;
    		this.age = age;
    		this.phone = phone;
    		this.address = address;
    	}
    
    
    	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 Integer getAge() {
    		return age;
    	}
    
    	public void setAge(Integer age) {
    		this.age = age;
    	}
    
    	public String getPhone() {
    		return phone;
    	}
    
    	public void setPhone(String phone) {
    		this.phone = phone;
    	}
    
    	public String getAddress() {
    		return address;
    	}
    
    	public void setAddress(String address) {
    		this.address = address;
    	}
    
    	@Override
    	public String toString() {
    		return "id:" + this.id + "  name:" + this.name + "  age:" + this.age
    				+ "  phone:" + this.phone + "  address:" + this.address;
    	}
    }
    

    2.2  building sqlSessionFactory

    String resource = "com/ibatis/config/mybatis-config.xml"; 
    InputStream inputStream = null;
    	try {
    		inputStream = Resources.getResourceAsStream(resource);
    	} catch (IOException e) {
    		e.printStackTrace();
    	} 
     SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    SqlSession session=sqlSessionFactory.openSession();
    

    2.3 selectAllStudent

    List<Student> list=session.selectList("selectAllStudents");
    

     2.4 selectStudentById

    Student student = session.selectOne("selectStudentById",id);
    

     2.5  addStudent

    this.session.insert("addStudent", student);
    this.session.commit();
    

     2.6 updateStudent

    this.session.update("updateStudent", student);
    this.session.commit();
    

     2.7 deleteStudent

    this.session.delete("deleteStudent", id);
    this.session.commit();
    

     2.8  selectStudentsByName

    List<Student> list=session.selectList("selectStudentByName",name);
    

     2.9  Test

  • 相关阅读:
    分析NGINX 健康检查和负载均衡机制
    基于ASIO的协程库orchid简介
    基于ASIO的协程与网络编程
    Boost.Asio技术文档
    Linux升级命令yum upgrade和yum update的区别
    yum和apt-get的用法和区别
    Linux-centos7设置静态IP地址
    Linux-各种姿势(lessvi等)打开各种类型的文件(txt/csv/xlsx等)出现不能打开(全乱码、部分乱码、二进制文件等)的问题
    Excel-vlookup(查找值,区域范围,列序号,0)如何固定住列序列号,这样即使区域范围变动也不受影响
    EXCEL-名称管理器
  • 原文地址:https://www.cnblogs.com/Laupaul/p/2441966.html
Copyright © 2011-2022 走看看