mybatis 學習三 使用接口類編寫程序

須要兩個jar包,mysql-connector-java-5.1.21.jar和mybatis-3.4.2.jar 對應的maven爲java

<dependencies>
  	<dependency>
		<groupId>org.mybatis</groupId>
		<artifactId>mybatis</artifactId>
		<version>3.4.2</version>
	</dependency>
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>5.1.21</version>
	</dependency>
  </dependencies>

1.建立表

use test;
create table t_employeer(
        employeer_id int not null  primary key AUTO_INCREMENT ,
        employeer_name varchar(50) default null,
        employeer_age int default null,
        employeer_department varchar(100) default null,
        employeer_worktype varchar(100) default null
)

2.建立實體類

public class Employeer {
	private Integer employeer_id;
	private String employeer_name;
	private Integer employeer_age ;
	private String employeer_department;
	private String employeer_worktype;
        ...

3.建立mybatis配置文件mybatis-config.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格式對應文件,從而使得主配置文件更加通用。這樣對部署很是有用  -->
	<!-- <properties resource="mysql.properties" /> -->
	<!-- 設置別名,必定要放在properties下面  -->
	<typeAliases>
		<typeAlias alias="Employeer" type="com.mucfc.model.Employeer"  />
	</typeAliases>
	<!-- 配置數據源相關的信息  -->
	<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/test?characterEncoding=UTF-8"/> 
			<property name="username" value="root"/> 
			<property name="password" value="1994713"/> 
			<!--<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/mucfc/model/Employeer.xml" />
	</mappers>
</configuration>

若是想從配置文件讀取mysql的數據源,能夠添加對應的properties文件,上文的註釋爲properties方式的配置 mysql.propertiesmysql

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?charset=utf8
username=hsm
password=1994713

4.根據實體列編寫對應的xml文件Employeer.xml

這個地方的命名空間很重要,必定是具體的接口sql

<?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.hsm.inter.EmployeerMapper">
 
     <!-- 查找 -->
     <select id="findEmployeerByID" parameterType="int" resultType="Employeer">
     select* from `t_employeer` where employeer_id =#{employeer_id}
     </select>
     
      <!-- 插入 -->  
      <!-- useGeneratedKeys設置爲"true"代表要MyBatis獲取由數據庫自動生成的主鍵;keyProperty="id"指定把獲取到的主鍵值注入到Employeer的id屬性 --> 
    <insert id="addEmployeer" parameterType="Employeer"
    useGeneratedKeys="true" keyProperty="employeer_id">  
        insert into `t_employeer`(employeer_name,employeer_age,employeer_department,employeer_worktype) 
        values(#{employeer_name},#{employeer_age},#{employeer_department},#{employeer_worktype})  
    </insert>  
    
     <!-- 刪除  -->
    <delete id="deleteEmployeer" parameterType="int">  
        delete from `t_employeer` where employeer_id = #{employeer_id}  
    </delete>  
    
    <!-- 修改 -->  
    <update id="updateEmployeer" parameterType="Employeer">  
        update t_employeer set employeer_name = #{employeer_name},employeer_age= #{employeer_age},employeer_department = #{employeer_department}
        ,employeer_worktype=#{employeer_worktype}  where employeer_id = #{employeer_id}  
    </update>  
    
 </mapper>

5.編寫mapper接口

package com.hsm.inter;

import com.mucfc.model.Employeer;

public interface EmployeerMapper {
	/**
	 * 注意要和Employeer.xml的方法名對應
	 */
	public Employeer findEmployeerByID(int id);
	public void addEmployeer(Employeer employeer);
	public void deleteEmployeer(int id);
	public void updateEmployeer(Employeer employeer);
}

6 .編寫測試類

package com.hsm;

import java.io.Reader;

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 com.hsm.inter.EmployeerMapper;
import com.mucfc.model.Employeer;

public class MybatisTest2 {
	private static SqlSessionFactory sqlSessionFactory;
	private static Reader reader;
	static {
		try {
			reader = Resources.getResourceAsReader("mybatis-config.xml");
			sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * 查找
	 */
	public static void findEmployeerById(int id) {
		SqlSession session = null;
		try {
			session = sqlSessionFactory.openSession();
			EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
			Employeer employeer=employeerMapper.findEmployeerByID(id);
			if (employeer == null)
				System.out.println("null");
			else
				System.out.println(employeer);
		} finally {
			session.close();
		}
	}
	/**
	 * 增長
	 */
	public static void addEmployeer(Employeer employeer){
		SqlSession session = null;
		try {
			session = sqlSessionFactory.openSession();
			EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
			employeerMapper.addEmployeer(employeer);
            session.commit() ;  		
		} finally {
			session.close();
		}
		
	}
	/**
	 * 刪除
	 * 
	 */
	public static void deleteEmployeer(int id){
		SqlSession session = null;
		try {
			session = sqlSessionFactory.openSession();
			EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
			employeerMapper.deleteEmployeer(id);
            session.commit() ;  		
		} finally {
			session.close();
		}
	}
	/**
	 * 更改
	 */
	public static void updateEmployeer(Employeer employeer){
		SqlSession session = null;
		try {
			session = sqlSessionFactory.openSession(); 
			EmployeerMapper employeerMapper=session.getMapper(EmployeerMapper.class);
			employeerMapper.updateEmployeer(employeer);
            session.commit() ;  		
		} finally {
			session.close();
		}
		
	}

	public static void main(String[] args) {							
		Employeer employeer1=new Employeer();
		employeer1.setEmployeer_name("李四");
		employeer1.setEmployeer_age(23);
		employeer1.setEmployeer_department("產品一部");
		employeer1.setEmployeer_worktype("開發工程師");
		
		Employeer employeer2=new Employeer();
		employeer2.setEmployeer_name("張三");
		employeer2.setEmployeer_age(30);
		employeer2.setEmployeer_department("產品二部");
		employeer2.setEmployeer_worktype("測試工程師");
		
		Employeer employeer3=new Employeer();
		employeer3.setEmployeer_name("小王");
		employeer3.setEmployeer_age(22);
		employeer3.setEmployeer_department("產品三部");
		employeer3.setEmployeer_worktype("數據分析師");
		
		
		Employeer employeer4=new Employeer();
		employeer4.setEmployeer_name("明明");
		employeer4.setEmployeer_age(22);
		employeer4.setEmployeer_department("財會部");
		employeer4.setEmployeer_worktype("財務人員");
	
		//插入
     	addEmployeer(employeer1);
     	addEmployeer(employeer2);
     	addEmployeer(employeer3);
     	addEmployeer(employeer4);
     	findEmployeerById(26);
     	deleteEmployeer(27);
		
		//更改
		employeer2.setEmployeer_id(28);
		employeer2.setEmployeer_age(21);
		employeer2.setEmployeer_department("產品四部");
		updateEmployeer(employeer2);

	}

}
相關文章
相關標籤/搜索