mybatis学习笔记(1):搭建开发环境,以及mybatis各个配置文件之间的关系

一、环境

1.myeclipse10.7

2.数据库:mysql

3.jdk:jdk1.8

4.jar包:mybatis3.2.0.jar

mysql-connector-java-5.1.22-bin.jar    log4j-1.2.16.jar

二、步骤

1.新建一个web工程:mybatis001。

将所需Jar包都拷贝到工程的WebRoot\WEB-INF\lib目录下(或者建一个java工程)

2.mysql新建一个数据库表:mybatis001

3.在表中增加2条信息

4.新建以下package

(1)src->com.roles

(2)src->com.roles->student

(3)src->com.roles->student->model

(4)src->com.roles->student->DAO(预留,所以这一节可以不建teacher这个包)

(5)src->com.roles->teacher(预留,所以这一节可以不建teacher这个包)

(6)src->config

(7)src->config->mybatis

(8)src->config->spring(预留,所以这一节可以不建spring这个包)

5.所有代码

   (1)在src->com.roles->student->model下建一个Student类

<给不熟悉java或者myeclipse的朋友一个建议:在代码界面邮件点击,选择Source->Generate Getters and Setters..可以自动生成get()和set()函数>

package com.roles.student.model;
/**
 *
 * @author code陈
 *
 */
public class Student {

	private String name;
	//性别 1:男 0:女
	private String gender;
	private int age;
	private String id;

	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}

}

(2)在src目录下新建一个Configuration.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>
    <typeAliases>
        <typeAlias alias="Student" type="com.roles.student.model.Student"/>
    </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://127.0.0.1:3306/mybatis001" />
            <property name="username" value="root"/>
            <property name="password" value="mysql"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="config/mybatis/student.xml"/>
    </mappers>
</configuration>

<解释>

(a)<typeAlias>将Student类取了一个别名,目的是为了方便,而不是必须得,如果不使用别名,就需要在任何需要Student的地方使用"com.roles.student.model.Student",显然别名方便多了。

(b)<environment>主要是初始化连接的数据库的信息:ip、端口、数据库表、用户名和密码等等

(c)<mappers>定义了sql查询语句的配置文件(比如student.xml),其实这个配置文件还能有表中字段名和实体类属性的映射关系,这个将在后面会学习到。

     (3)在src->config->mybatis下新建一个student.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.roles.student.model.studentMapper">
    <select id="getStudent" parameterType="String" resultType="Student">
        select * from student where id = #{id}
    </select>

</mapper> 

<解释>

(a)namespace有点像package的意思,而都比较习惯用XXMapper的形式

  (b)<select>这个就是sql语句了,id=“ getStudent”这个id相当于一个函数名字,如果我们要使用这条查询语句,调用这个id即可,后面将会用到。parameterType则是查询条件的类型,String、id、map等等,这个很重要,resultType查询结果返回类型,这个需要和Configuration.xml中相应类的别名保持一致。

(4)测试:在src目录下新建一个test包,包下新建一个test类(过程可以不用这么复杂,只是为了好管理代码而已)

package test;

import config.mybatis.*;
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.roles.student.model.Student;

import java.io.IOException;
public class test {
	/***
	   * 获得MyBatis SqlSessionFactory
	   * SqlSessionFactory 负责创建SqlSession ,一旦创建成功,就可以用SqlSession实例来执行映射语句
	   * @return
	   */
	private static SqlSessionFactory getSessionFactory(){
	    SqlSessionFactory sessionFactory=null;
	    String resource="Configuration.xml";
	     try {
	      sessionFactory=new SqlSessionFactoryBuilder().build(Resources.getResourceAsReader(resource));
	    } catch (IOException e) {
	      e.printStackTrace();
	    }
	    return sessionFactory;
	  }
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 SqlSession session=getSessionFactory().openSession();
		try{
			//参数:映射文件的命名空间+sql语句id
			Student student = (Student)session.selectOne("com.roles.student.model.studentMapper.getStudent","2015051701");
			System.out.println("姓名:"+student.getName());
			String gender=student.getGender().equals("1")?"男":"女";
			System.out.println("性别:"+gender);
			System.out.println("年龄:"+student.getAge());
			System.out.println("学号:"+student.getId());
		 }
		 catch (Exception e) {
		      e.printStackTrace();
		    }
		  finally{
		      session.close();
		    }
	}

}

(5)整个工程目录结构如下:

   (6)运行结果

<如果出现了警告,诸如:log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging)>

解决方法:在src目录下新建一个log4j.properties,内容为:

# Set root category priority to INFO and its only appender to CONSOLE.
log4j.rootCategory=INFO, CONSOLE, LOGFILE

#log4j.rootCategory=INFO, CONSOLE, 

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, LOGFILE 

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy:MM:dd HH:mm:ss:SSS} %-5p [%c{1}] %m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOGFILE.File=c\:konbao.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{yyyy:MM:dd HH:mm:ss:SSS} [%24F:%-4L:%-5p]%x %m%n

三、各个配置文件之间的关系,大致如下~~~

以上内容为本人在学习mybatis时整理的笔记,个人理解的结果,如有问题,欢迎朋友们指正。

时间: 2024-10-22 03:37:41

mybatis学习笔记(1):搭建开发环境,以及mybatis各个配置文件之间的关系的相关文章

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclipse方便. 下载 进入官网:http://eclipse.org/downloads/. 找到相应的版本进行下载,我这里用的是eclipse-SDK-3.7.1-linux-gtk版本. 解压 下载下来一般是tar.gz文件,运行: $tar -zxvf eclipse-SDK-3.7.1-linu

mybatis学习笔记(六) -- maven+spring+mybatis从零开始搭建整合详细过程(下)

继续 mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(上) 五.使用监听器启动Spring容器 1.修改pom.xml文件,添加Spring-web 2.修改web.xml,配置启动Spring容器 3.新建BookServer 4.新建BookServlet 5.修改ApplicationContext.xml 6.测试 继续!!! 五.使用监听器启动Spring容器 1.修改pom.xml,添加Spring-web包(注:上一篇中的pom

mybatis学习笔记(五) -- maven+spring+mybatis从零开始搭建整合详细过程(附demo和搭建过程遇到的问题解决方法)

文章介绍结构一览 一.使用maven创建web项目 1.新建maven项目 2.修改jre版本 3.修改Project Facts,生成WebContent文件夾 4.将WebContent下的两个文件复制到src/main/webapp下,删掉WebContent 5.修改Deployment Assembly 6.测试 二.mybatis访问mysql 1.数据库准备 2.修改pom.xml 3.创建实体类 4.创建访问接口 5.添加映射文件 6.添加MyBatisCfg.xml配置文件,注

Mybatis学习(1)开发环境搭建

什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 ses

C语言入门学习教程-1.搭建开发环境

学习一门好的编程语言,对于一个网络安全爱好者来说就如同手持一把利剑.而对于学习安全的人来说最好的编程语言一定是越贴近底层越好.所以,推荐大家学习C语言.为了方便大家学习,我就将我学习C语言时的学习笔记进行了整理,发到我的博客上http://2937605316.blog.51cto.com/.每日更新,欢迎订阅.(求赞,求转!:)),也欢迎想要学习网络安全的朋友加入我们"VirtualSec|虚拟安全"小组(如果,想要加入的可以联系我QQ:2937605316). 那么说了这么多,就开

Android 学习笔记 2 Android开发环境的安装(Eclipse Bundle)

搭建eclipse开发环境,一般要经过 安装JDK.安装Eclipse.下载Android SDK.在Eclipse中安装ADT.在Eclipse中配置Android SDK.通过SDK Manager对Android SDK进行管理等几个比较麻烦的步骤. 后来Google推出了 adt-bundle 将ATD.SDK整合到Eclipse中,这样对于新手来说就免去了很多步骤,入门更容易了. 在此推荐一个网站 http://tools.android-studio.org/ 可以免去搬梯子去And

go语言学习笔记1 Go开发环境

什么是Go?Go是一门并发支持.垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡的一门编程语言. Go的主要特点有哪些?* 类型安全 和 内存安全* 以非常直观和极低代价的方案实现高并发* 高效的垃圾回收机制* 快速编译(同时解决C语言中头文件太多的问题:去除掉实际上没有用的头文件,如果头文件没有用会跳出编译异常)* 为多核计算机提供性能提升的方案* UTF-8编码支持 Go存在的价值是什么?Go在谷歌:以软件工程为目的的语言设计 http

Kinect学习笔记之三Kinect开发环境配置详解

0.前言: 首先说一下我的开发环境,Visual Studio是2013的,系统是win8的64位版本,SDK是Kinect for windows SDK 1.8版本.虽然前一篇博文费了半天劲,翻译了2.0SDK的新特性,但我还是决定要回退一个版本. 其实我之前一直在用2.0的SDK在调试Kinect,但无奈实验室提供的Kinect是for Windows 1.0版本的,而且Kinect从1.8之后就好像是一个分水岭,就比如win8和win7有很大的差别,2.0版的Kinect和SDK都是相较

C#学习笔记一:C#开发环境的设置

C#是.NET Framework的一部分,用于编写.NET应用程序. C#集成开发环境(IDE) 微软提供了以下C#编程开发工具: Visual Studio 2010 (VS) Visual C# 2010 Express (VCE) Visual Web Developer 最后两个是可以免费从微软的官方网站下载.利用这些工具,可以写各种各样的C#程序,从简单的命令行应用程序更复杂的应用.也可以使用一个基本的文本编辑器,如记事本编写C#源代码文件和代码编译成使用命令行编译器,这也是.NET