文档章节

mybatis 学习二 搭建第一个程序

忘川-hsm
 忘川-hsm
发布于 2017/03/29 15:53
字数 849
阅读 7
收藏 0

需要两个jar包,mysql-connector-java-5.1.21.jar和mybatis-3.4.2.jar 对应的maven为

<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.properties

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

4.根据实体列编写对应的xml文件Employeer.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="com.mucfc.model.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.创建测试类

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.mucfc.model.Employeer;

public class MybatisTest {
	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();
			Employeer employeer = (Employeer) session.selectOne(
					"com.mucfc.model.EmployeerMapper.findEmployeerByID", 1);
			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();
			 //返回值是记录条数  
            int resultCount = session.insert("com.mucfc.model.EmployeerMapper.addEmployeer", employeer );  
            System.out.printf("当前插入的employeer_id :%d    当前插入数据库中条数:%d " , employeer.getEmployeer_id() ,resultCount);  //获取插入对象的id  
            System.out.println("");
            session.commit() ;  		
		} finally {
			session.close();
		}
		
	}
	/**
	 * 删除
	 * 
	 */
	public static void deleteEmployeer(int id){
		SqlSession session = null;
		try {
			session = sqlSessionFactory.openSession();
			 //返回值是记录条数  
			 int resultCount=session.delete("com.mucfc.model.EmployeerMapper.deleteEmployeer",id); 
			  System.out.println("当前删除数据库中条数: "+resultCount);  //获取插入对象的id  
            session.commit() ;  		
		} finally {
			session.close();
		}
	}
	/**
	 * 更改
	 */
	public static void updateEmployeer(Employeer employeer){
		SqlSession session = null;
		try {
			session = sqlSessionFactory.openSession(); 
            session.update("com.mucfc.model.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(1);
		//删除
		deleteEmployeer(1);
		//更改
		employeer2.setEmployeer_id(2);
		employeer2.setEmployeer_age(21);
		employeer2.setEmployeer_department("产品三部");
		updateEmployeer(employeer2);
	}

}

© 著作权归作者所有

忘川-hsm
粉丝 8
博文 84
码字总数 50675
作品 0
深圳
程序员
私信 提问
MyBatis入门

一 简介 mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句。 mybatis可以将向preparedStatement中输入参数...

Bbigbug
2017/11/16
0
0
稀饭下雪/CompanyManager

CompanyManager项目简介 该项目的搭建环境: 项目管理:maven 框架:spring、springmvc、mybatis、easyui 数据:mysql 主要用途:实现了用户管理、菜单管理、部门管理、理财管理、理财报表、...

稀饭下雪
2016/11/02
0
0
MyBatis的初步使用(入门操作)

MyBatis是一个基于Java的开源的持久层框架 首先进行MyBatis的环境搭建 1.下载MyBatis 下载地址https://github.com/mybatis/mybatis-3/releases 2.将MyBatis相关的包导入到工程中 将下载好的M...

IT-Mamba
2015/08/17
128
1
springmvc+mybatis学习笔记(汇总)

springmvc+mybatis学习笔记(汇总) 标签 : springmvc mybaits [TOC] 笔记分为两大部分:mybatis和springmvc mybatis springmvc 笔记内容主要是mybatis和springmvc的一些基本概念和使用方法,...

brianway
2016/03/30
2.4K
2
手把手教学系列——疯狂Spring Cloud教学视频

大家好,我是《疯狂Spring Cloud微服务架构实战》一书的作者杨恩雄,该书的配套教学视频已经录制完成,目的是为了让更多的朋友能轻松地学习Spring Cloud。本书与配套视频,适合Spring Cloud的...

杨大仙的程序空间
2017/10/18
6.7K
27

没有更多内容

加载失败,请刷新页面

加载更多

Git

指令 git init :创建版本库,生成.git文件夹 git add XX:上传代码到暂存区 git state:查看目前本地工作起、暂存区、分支,三者之间的文件状态 git diff demo.html:查看工作区和暂存区的代码...

Hui先生
36分钟前
6
0
绘制流程图用什么软件好?分享绘制流程图的简单方法

绘制流程图一般有两种方法,一种是手绘,另一种是利用画图工具进行绘制,更多的人们选择使用第二种方法进行绘制,方便简单。那绘制流程图用什么软件好?若是使用电脑进行绘制,可以选择迅捷画...

百因必有果
38分钟前
8
0
PHP制作的掷色子点数抽奖游戏实例

PHP制作的掷色子点数抽奖游戏实例,通过掷色子点数来达到抽奖的效果,为抽奖活动增添一些趣味性。 我们将在html页面中写下如下的html结构代码,.wrap用来放置色子和提示信息,#prize则是用来...

ymkjs1990
51分钟前
5
0
宝塔免费版部署

宝塔免费版部署 NiuSHOP安装环境及宝塔一键部署免费版 1、Niushop安装环境 操作系统:支持Windows和linux 服务器:支持Apache/Nginx/IIS服务器 PHP5.6版本及以上,最高支持PHP7.2,MySQL版本...

Geek-Chic
今天
5
0
MySQL查询优化临时表

【理论分析】 MySQL在执行SQL查询时可能会用到临时表,一般情况下,用到临时表就意味着性能较低。 临时表存储 MySQL临时表分为“内存临时表”和“磁盘临时表”,其中内存临时表使用MySQL的M...

1只特立独行的猪
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部