mybatis入门案例

     Mybatis入门案例

     1.首先搭建maven项目

     环境jdk1.7,eclipse4.5.1, mysql

    


     2.pom.xml内容如下    

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.neutron</groupId>
	<artifactId>flowers</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>flowers</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
	        <!-- mybatis jar -->
		<dependency> 
			<groupId>org.mybatis</groupId>  
                        <artifactId>mybatis</artifactId>  
                        <version>3.3.1</version>  
                </dependency>  
                <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
		<dependency>
		    <groupId>org.mybatis</groupId>
		    <artifactId>mybatis-spring</artifactId>
		    <version>1.2.2</version>
		</dependency>
                <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		    <version>5.1.38</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	
	<build>
		<defaultGoal>compile</defaultGoal>
	</build>
</project>
   

     3.创建连接数据库配置文件db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis
name=root
password=root

              4.创建mybatis的配置文件conf.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>
	<!-- 作为属性值引入到conf.xml中 -->
	<properties resource="db.properties" />
	
	<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="${name}" />
				<property name="password" value="${password}" />
			</dataSource>
		</environment>
	</environments>
	
	<mappers>
		<mapper resource="com/neutron/flowers/mapper/userMapper.xml" />
	</mappers>
	
</configuration>
              其中使用properties属性将db.properties配置文件引入到conf.xml中

    

     5.创建数据库表,并且插入两条数据    

create database mybatis;
use mybatis;
create table users(id int primary key auto_increment, name varchar(20), age int);
insert into users(name, age) values('tom', 12);
insert into users(name, age) values('jack', 11);

        6.创建与数据库表对应的实体类.

     注意此时数据库表中的字段和实体类的属性是一一对应的,并且大小写一样。

package com.neutron.flowers.entity;

public class User 
{
	private int id;
	private String name;
	private int age;
	
	public User() 
	{
		super();
	}

	public User(int id, String name, int age) 
	{
		super();
		this.id = id;
		this.name = name;
		this.age = age;
	}

	// get set

	@Override
	public String toString() 
	{
		return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
	}
	
}
    

    7.创建映射文件,文件位置信息请参考代码和前面的项目结构userMapper.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"> 
<!-- namespace相当于Id,需要唯一,此处设置为实体类包名+mapper文件名 -->
<mapper namespace="com.neutron.flowers.mapper.userMapper"> 
	<select id="query" parameterType="int" resultType="com.neutron.flowers.entity.User">
		select id,name,age from users where id = #{id}
	</select>
</mapper>
      其中select表示查询,parameterType表示传入参数类型,resultType表示返回值类型。

    再次提示,此处需要表字段和类属性名称必须相同,并且一一对应,如果不同需要进行别名设置而已。此处配置文件是将java实体类和数据库表进行关联。

   

    8.测试类   

package com.neutron.flowers;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import com.neutron.flowers.entity.User;

import junit.framework.TestCase;

public class UserTest extends TestCase {
	
	@Test
	public void testSelect() {
		String resource = "conf.xml";
		// 类加载器加载配置文件拿到配置文件流
		InputStream is = UserTest.class.getClassLoader().getResourceAsStream(resource);
		// 1.创建SqlSessionFactory实例
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
		// 2.创建SqlSession实例
		SqlSession session = factory.openSession();
		
		// statement = namespace + . + id
		String statement = "com.neutron.flowers.mapper.userMapper"+ "." + "query";
		// 3.查询
		User user = session.selectOne(statement, 1);
		System.out.println(user);
	}
}
              其中,mybatis和hibernate的操作十分类似

     1.根据配置文件创建工厂

     2.根据工厂创建session

     3.根据session和sql进行操作         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值