Mybatis入门(一)-----基本配置(映射编程)

Mybatis入门(三)-----类型转化器(Java类型到JDBC类型的转化)

半ORM框架,对象关系映射框架

总结起来就是一个pojo类我们对应着一个mapper.xml文件,将一个个对象和数据库表的字段对应起来,使我们通过操作对象来操作数据库,这样的话,只需要去关注写sql,操作简单。

 

就是表字段和pojo类属性的直接关联,通过namespace和xml配置文件的标签id确定唯一的sql语句去执行。

流程过程

  • 第一步: 导入jar包,一般我们仅仅需要mybatis就够了,简单的话,不需要他的一些依赖包,再加上数据库驱动包,一共两个
  • 第二步: 我们肯定是需要一个对象类,也就是常说的pojo类,用它来了Mapper文件进行映射;下面的User类
  • 第三步:建立一个Mybatis-config.xml文件(这里就不一句一句解释配置文件的信息了,基本都能看懂)
  • 第四步: Mapper文件,这里直接把mapper文件和pojo类放一个包中,进行映射比较直观。
  • 第五步: 测试类:
  •           1.   读取Mybatis_config.xml文件,读取的话用Resources.getResourceAsReader("Mybaitis_config.xml");得到一个                            Reader对象
  •            2.   用SqlsessionFactory  的子类SqlsessionFactroyBulider.bulider()方法传入一个Reader对象
  •            3.   用SessionFactory打开整个sessionfactory.
  •            4.    拿到statement        (就是要执行的操作: 一个字符传mapper文件的namespace.标签的id名)确定一条唯一的sql语                     句。
  •            5.    用session去执行statement
  •            6.    重点重点:  jdbc事务操作的话我们一定要手动提交;

最简单的一个基础案例:

1. 创建一个User的java  pojo类

package Pojo;

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

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getWork() {
		return work;
	}

	public void setWork(String work) {
		this.work = work;
	}

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

2.  配置数据库链接池

<?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>
	<environments default="development">
		<environment id="development">
		    <!-- 事务处理JDBC -->
			<transactionManager type="JDBC" />
			<!-- 连接池的方式 -->
			<dataSource type="POOLED">
				<property name="driver" value="com.mysql.jdbc.Driver" />
				<property name="url" value="jdbc:mysql://localhost:3306/hibenate_01" />
				<property name="username" value="root" />
				<property name="password" value="451334131" />
			</dataSource>
		</environment>
	</environments>
	<mappers>
		<mapper resource="Pojo/UserMapperTest.xml" />
	</mappers>
</configuration>

3. 配置映射关系如下

<?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="Pojo.UserMapperTest">  
     <select id="selectUserbyid"   parameterType="int"  resultType="Pojo.User">    
        select * from systemuser where id = #{id}  
     </select> 
     
     <select id="selectall"  resultType="Pojo.User">
        select * from systemuser
     </select>
     
     <insert id="adduser" parameterType="Pojo.User" >
         insert  into   systemuser(id,name,age,work) values(#{id},#{name},#{age},#{work})
     </insert>
     
     <update id="updateone"  parameterType="Pojo.User">
        update systemuser set work=#{work},name=#{name},age =#{age} where id = #{id}
     </update>
</mapper>

4. 测试类

package Test;

import java.io.IOException;
import java.io.Reader;
import java.util.List;

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 Pojo.User;

public class test {

	/**
	 * @param args
	 * @throws IOException
	 *  
	 */
	public static void main(String[] args) throws IOException  {
		// TODO Auto-generated method stub
        //需要加载数据源,加载config文件
		Reader reader = Resources.getResourceAsReader("Mybaitis_config.xml");
		//SqlSessionFactory
		SqlSessionFactory sessionfactroy = new SqlSessionFactoryBuilder().build(reader);
		SqlSession session = sessionfactroy.openSession();
		
		/* 查id为1的值
		String statement = "Pojo.UserMapperTest.selectUserbyid";
	    User user =  session.selectOne(statement,1);
	    */
		
        //	查询所有数据	
	    String Statement = "Pojo.UserMapperTest.selectall";
	    List<User> lists =  session.selectList(Statement);
	    System.out.println(lists);
	    
	    /*增加一条数据
		
		String statement = "Pojo.UserMapperTest.adduser";
		User user= new User();
		user.setId(3); user.setName("徐盼盼"); user.setAge(20);user.setWork("测试开发");
	    int count = session.insert(statement, user);
	    session.commit();
	    System.out.println("增加"+count+"条数据");
	    
	    */
       /*	    
		String statement = "Pojo.UserMapperTest.updateone";
		User user= new User();
		user.setId(3); 
		user.setName("徐盼盼"); user.setAge(20);user.setWork("java开发");
	    int  count = session.update(statement,user);
	    session.commit();
	    System.out.println("更新"+count+"条数据");
	    */
	    
	    session.close();
	    
	    
	    
	    
		
	}

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值