mybatis-3.2.3学习

工程目录结构如下:

sql语句如下:

/*  
SQLyog 企业版 - MySQL GUI v8.14   
MySQL - 5.1.33-community-log : Database - test  
*********************************************************************  
*/  
  
  
/*!40101 SET NAMES utf8 */;  
  
/*!40101 SET SQL_MODE=''*/;  
  
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;  
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;  
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;  
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;  
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;  
  
USE `test`;  
  
/*Table structure for table `student` */  
  
DROP TABLE IF EXISTS `student`;  
  
CREATE TABLE `student` (  
  `sid` int(10) unsigned NOT NULL AUTO_INCREMENT,  
  `sname` varchar(30) DEFAULT NULL,  
  `major` varchar(30) DEFAULT NULL,  
  `birth` date DEFAULT NULL,  
  `score` float DEFAULT NULL,  
  PRIMARY KEY (`sid`)  
) ENGINE=MyISAM DEFAULT CHARSET=utf8;  
  
/*Data for the table `student` */  
  
insert  into `student`(`sid`,`sname`,`major`,`birth`,`score`) values (1,'mary','nv','2013-01-01',90),(2,'tom','nan','2012-01-01',91),(3,'aaa','nan','2011-01-01',66),(4,'mm','nv','2015-11-11',100),(5,'cate','nv','2020-11-11',100);  
  
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;  
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;  
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;  
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;  

1. Eclipse导入mybatis-3.2.3.jar和mysql-connector-java-5.1.28-bin.jar两个jar包。

2. 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>

  <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=""/>
        <property name="driver.encoding" value="UTF8"/>
      </dataSource>
    </environment>
  </environments>  
  
  <mappers>
    <!--<mapper resource="data.StudentMapper.xml"/>-->
    <!--<mapper class="data.StudentMapper"/>-->
    <package name="data"/>
  </mappers>
</configuration>

3. StudentMapper.java内容如下:

package data;

import java.util.List;

import mybatis.Student;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

public interface StudentMapper
{
	@Insert("insert into student(sname,major,birth,score) values (#{sname},#{major},#{birth},#{score})")
	public void insertStudent(Student student);
	
	@Delete("delete from student where sid = #{sid}")
	public void deleteStudentById(int sid);
	
	@Update("update student set sname=#{sname},major=#{major},birth=#{birth},score=#{score} where sid=#{id}")
	public void updateStudent(Student student);
	
	@Select("select LAST_INSERT_ID()")
	public int queryInsertId();
	
	@Select("select sid,sname from student where sid = #{sid}")
	public Student queryStudentById(int sid);
	
	@Select("select * from student where sname like \"%\"#{sname}\"%\"")
	public List<Student> queryStudentByName(String sname);
}

4. IStudentDAO.java内容如下:

 

package mybatis;

import java.util.List;

public interface IStudentDAO
{
	public void addStudent(Student student);
	public void addStudentBySequence(Student student);
	public void deleteStudentById(int id);
	public void updateStudentById(Student student);
	public List<Student> queryAllStudent();
	public List<Student> queryStudentByName(String name);
	public Student queryStudentById(int id);
	public int queryInsertId();
}

5. IStudentDAOImpl.java内容如下:

package mybatis;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Date;
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 data.StudentMapper;


public class IStudentDAOImpl implements IStudentDAO
{
	private static SqlSessionFactory sqlSessionFactory = null;
	
	static
	{
		try
		{
			if(sqlSessionFactory == null)
			{
				InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
				sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
				inputStream.close();
			}
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		
	}

	public static void main(String[] args)
	{
		IStudentDAO dao = new IStudentDAOImpl();
		
		Student student = new Student();
		student.setSname("mary1");
		student.setMajor("nv");
		student.setBirth(Date.valueOf("2014-11-11"));
		student.setScore(100);
		dao.addStudent(student);
		System.out.println(dao.queryInsertId());
		
		/*Student student;
		student = dao.queryStudentById(1);
		System.out.println(student);*/
		
		//System.out.println(dao.queryStudentByName("m"));
	}

	@Override
	public void addStudent(Student student)
	{
		try (SqlSession session = sqlSessionFactory.openSession())
		{
			StudentMapper mapper = session.getMapper(StudentMapper.class);
			mapper.insertStudent(student);
		}
	}

	@Override
	public void addStudentBySequence(Student student)
	{
		
	}

	@Override
	public void deleteStudentById(int id)
	{
		try (SqlSession session = sqlSessionFactory.openSession())
		{
			StudentMapper mapper = session.getMapper(StudentMapper.class);
			mapper.deleteStudentById(id);
		}
	}

	@Override
	public void updateStudentById(Student student)
	{
		try (SqlSession session = sqlSessionFactory.openSession())
		{
			StudentMapper mapper = session.getMapper(StudentMapper.class);
			mapper.updateStudent(student);
		}
	}

	@Override
	public List<Student> queryAllStudent()
	{
		return null;
	}

	@Override
	public List<Student> queryStudentByName(String name)
	{
		try (SqlSession session = sqlSessionFactory.openSession())
		{
			StudentMapper mapper = session.getMapper(StudentMapper.class);
			return mapper.queryStudentByName(name);
		}
	}

	@Override
	public Student queryStudentById(int id)
	{
		try (SqlSession session = sqlSessionFactory.openSession())
		{
			StudentMapper mapper = session.getMapper(StudentMapper.class);
			return mapper.queryStudentById(id);
		}
	}
	
	@Override
	public int queryInsertId()
	{
		try (SqlSession session = sqlSessionFactory.openSession())
		{
			StudentMapper mapper = session.getMapper(StudentMapper.class);
			return mapper.queryInsertId();
		}
	}
}

6. Student.java内容如下:

package mybatis;

import java.sql.Date;

public class Student 
{
	private int sid = 0;
	private String sname = null;
	private String major = null;
	private Date birth = null;
	private float score = 0;
	
	public int getSid() {
		return sid;
	}
	
	public void setSid(int sid) {
		this.sid = sid;
	}
	
	public String getSname() {
		return sname;
	}
	
	public void setSname(String sname) {
		this.sname = sname;
	}
	
	public String getMajor() {
		return major;
	}
	
	public void setMajor(String major) {
		this.major = major;
	}
	
	public Date getBirth() {
		return birth;
	}
	
	public void setBirth(Date birth) {
		this.birth = birth;
	}
	
	public float getScore() {
		return score;
	}

	public void setScore(float score) {
		this.score = score;
	}

	@Override
	public String toString()
	{
		// TODO Auto-generated method stub
		String content = "sid="+sid+" sname="+sname+" major="+major+" birth="+birth+"score="+score;
		return content;
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
入门 安装 要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可。 如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中: <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version> </dependency>从 XML 中构建 SqlSessionFactory 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的。SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。 从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。但是也可以使用任意的输入流(InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置。MyBatis 包含一个名叫 Resources 的工具类,它包含一些实用方法,可使从 classpath 或其他位置加载资源文件更加容易。 String resource = "org/mybatis/example/mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);XML 配置文件(configuration XML)中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)。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> <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="org/mybatis/example/BlogMapper.xml"/> </mappers> </configuration>当然,还有很多可以在XML 文件中进行配置,上面的示例指出的则是最关键的部分。要注意 XML 头部的声明,用来验证 XML 文档正确性。environment 元素体中包含了事务管理和连接池的配置。mappers 元素则是包含一组 mapper 映射器(这些 mapper 的 XML 文件包含了 SQL 代码和映射定义信息)。 不使用 XML 构建 SqlSessionFactory 如果你更愿意直接从 Java 程序而不是 XML 文件中创建 configuration,或者创建你自己的 configuration 构建器,MyBatis 也提供了完整的配置类,提供所有和 XML 文件相同功能的配置项。 .....................................

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值