Mybatis框架的再次学习一

经过了之前对SSM框架的初步学习,学会了框架的简单而又基本的使用。

显然这并不够,时间长了连基础的使用也会遗忘,因此我希望结合SSM框架书籍对

这些再次学习,深入去理解以前所学的知识。

 

1.Mybatis是一个java技术的持久层框架,是用于对数据库的操作

持久层是什么,数据库系统就是一个持久层,将业务的数据保存到磁盘,具备长期存储的能力,

java就可以用mybatis去更好的实现对数据库,也就是持久层的操作。

2.mybatis的优点,它可以自己书写sql语句,这样的操作可以让开发者针对需求自定义查询方式,这样可以

实现sql的优化,更适合互联网开发;同时它有动态sql这样一个灵活的功能;在一个就是通过mapper代理,

可以实现一个借口和一个XML文件就可以实现一个映射器,极大提高了开发效率。

3.想要学会熟练使用mybatis,首先需要了解它的核心组件

 

sqlsessionfactorybuilder 构造器     根据配置或者代码去生成sqlsessionfactory

sqlsessionfactory 是一个工厂接口,用于生成相应的sqlsession

sqlsession 会话    用于发送SQL语句,并返回拿到执行结果

而在mybatis中通常使用mapper代理的方式去去替代sqlsession发送sql语句和返回结果,更加高效

 

 

1.关于sqlsessionfactory,每一个mybatis的应用都是基于此接口的实例为中心,它的唯一作用就是去

创建用于发送sql的session,对于工厂的创建普遍采取XML配置.

2.session它是mybatis的核心接口,作用类似于jdbc的connection,用于开启连接

  作用:获取mapper ,发送sql ,控制数据库的事务

 

 

说道XML配置:

mybatis的XML配置分为两类,一类是基础配置 mybatis-config.xml

用于配置上下文参数和数据库的运行环境(别名,环境),其中还包含<mapper>标签,

用于去表示引入了哪些映射器

第二类是映射器配置

映射器

由一个接口和对应的XML配置文件组成

 

在配置完映射器之后就可以开始发送sql并执行了:

此时有两种方法,第一是通过sqlsession去发送

第二是通过mapper接口发送,即用sqlsession的getMapper方法去拿到接口,

再调用接口中的方法去实现发送sql(推荐)

 

下面附上代码:

测试程序;

package student.main;

import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;

import org.apache.catalina.Session;
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 org.springframework.core.io.Resource;

import student.mapper.studentMapper;
import student.pojo.student;

public class studentMain {

	public static void main(String[] args) throws IOException {
		
		SqlSessionFactory sqlSessionFactory = null ;
		InputStream inputStream =null ;
		SqlSession sqlSession =null ;
		String resource = "mybatis-config.xml";
		      //这里使用了mybatis提供的获取xml文件的Resource方法
			  inputStream = Resources.getResourceAsStream(resource);
		 
		
		 
		
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
		
	    sqlSession = 	sqlSessionFactory.openSession();
		
		studentMapper studentMapper =  sqlSession.getMapper(studentMapper.class);
		
		student student = studentMapper.getpassword("doctorL");
		
		String ps = student.getPassword();
		
		sqlSession.close();
		
		System.out.println(ps);
		
		
		  

	}

}

pojo类

package student.pojo;

public class student {
		 private String studentName ;
		 private String password ;
		 private String studentnumber ;
		 
		 
		 public student() {
			super();
			// TODO Auto-generated constructor stub
		}
		public student(String studentName, String password, String studentnumber) {
			super();
			this.studentName = studentName;
			this.password = password;
			this.studentnumber = studentnumber;
		}
		public String getStudentName() {
			return studentName;
		}
		public void setStudentName(String studentName) {
			this.studentName = studentName;
		}
		public String getPassword() {
			return password;
		}
		public void setPassword(String password) {
			this.password = password;
		}
		public String getStudentnumber() {
			return studentnumber;
		}
		public void setStudentnumber(String studentnumber) {
			this.studentnumber = studentnumber;
		}
		 
		 
		 
		 
}

mapper接口和xml

package student.mapper;

import student.pojo.student;

public interface studentMapper {
			 

			public student getpassword(String studentName);
}
<?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="student.mapper.studentMapper">
  <select id="getpassword" parameterType="string"  resultType  ="student.pojo.student">
    select  password from  student where studentName = #{name}
  </select>
</mapper>

基础配置文件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 resource="jdbc.properties"></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="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="student/mapper/studentMapper.xml"/>
  </mappers>
</configuration>

jdbc.properties 和log4j.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password= 



# Global logging configuration
log4j.rootLogger= DEBUG ,  stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值