MyBatis初识

什么是MylBatis?

mybatis是一个持久层框架

持久化:

数据从瞬时状态变为持久状态

持久层:

完成持久化工作的代码块

MyBatis就是帮助程序员将数据存入数据库,和从数据库中取数据

传统的JDBC操作:

有很多重复代码块,比如:数据取出封装,数据库建立连接等,通过框架减少代码重复,提高开发效率

MyBatis是一个半自动的ORM(对象关系映射)框架

所需jar

asm-4.2.jar
cglib-3.1.jar
commons-logging-1.2.jar
javassist-3.17.1-GA.jar
log4j-1.2.17.jar
log4j-api-2.2.jar
log4j-core-2.2.jar
mysql-connector-java-5.1.20-bin.jar
slf4j-api-1.7.12.jar
slf4j-log4j12-1.7.12.jar

简单案例:

创建实体类User  bean:

package entity;

public class User {
	private int id;
	private String name;
	private String pwd;
	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 String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	

}

编写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="entity.userMapper">
	<select id="selectUser" resultType="entity.User">
		select * from user where id=#{id}
	</select>
	<insert id="addUser">
		insert into user(name,pwd) values(#{name},#{pwd});
	
	</insert>
</mapper>
	

持久层:

package dao;

import org.apache.ibatis.session.SqlSession;

import util.MyBatisUtil;
import entity.User;

public class UserDao {
	public User getById(int id) throws Exception
	{
		SqlSession session =MyBatisUtil.getSession();
		User user=session.selectOne("entity.userMapper.selectUser",1);
		
		return user;
			
	}
	public int add(User user) throws Exception
	{		
		SqlSession session =MyBatisUtil.getSession();
		int result=session.insert("entity.userMapper.addUser");
		session.close();
		return result;
		
	}

}

MyBatis工具类(创建SqlSessionFactory类):

package util;

import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
//创建sqlSessionFactory以及获得sqlSession
public class MyBatisUtil {
	public static SqlSessionFactory getSqlSessionFactory() throws Exception {
		String resource = "mybatis.cfg.xml";
		InputStream inputstream = Resources.getResourceAsStream(resource);
		SqlSessionFactory sqlsessionfactory = new SqlSessionFactoryBuilder()
				.build(inputstream);
		return sqlsessionfactory;

	}

	public static SqlSession getSession() throws Exception {
		SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();

		return sqlSessionFactory.openSession();

	}

}

Mybatis配置:

<?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">  
            <transactionManager type="JDBC" />  
            <dataSource type="POOLED">  
                <property name="driver" value="com.mysql.jdbc.Driver"/>  
                <property name="url" value="jdbc:mysql://localhost:3306/test" />  
                <property name="username" value="root" />  
                <property name="password" value="root" />  
            </dataSource>  
        </environment>  
    </environments> 
    
   	 <mappers>
		<mapper resource="entity/userMapper.xml"/>
	</mappers>  
</configuration>

测试类:

package test;

import org.apache.ibatis.session.SqlSession;

import entity.User;

import util.MyBatisUtil;

public class test {
	public static void main(String[] args) throws Exception {
		SqlSession session =MyBatisUtil.getSession();
		User user=session.selectOne("entity.userMapper.selectUser",1);
		//select("包名.sqlID名称",参数)
		System.out.println("id"+user.getId()+",name="+user.getName());
		session.close();
	}
}

 





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值