mybatis快速学习(二)

对于mybatis应用的一些优化:

  • 可以把数据库配置文件放在一个单独的文件中,在mybatis的配置文件中引入就可以了例如:

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/jsky
    username=root
    password=123456

    在配置文件中引入:

    <!-- 引入配置文件 -->
    	<properties resource="db.propertities"/>
  • 为了不用每次都写全类名,可以在配置文件中为类创建别名:
    <!-- 指定別名 -->
    	<typeAliases >
    	<!-- 指定單個類的別名 -->
    	<!--   <typeAlias type="jsky.model.Student" alias="_Student"/> -->
    	  <!-- 指定某個包下所有類別名,默認直接類名 -->
    	  <package name="jsky.model"/>
    	</typeAliases>
  • 可以创建相关的工具类来帮助我们获取session
    public class MyBatisUtils {
     private static SqlSessionFactory factory;
      static
      {
    	  try {
    		InputStream is=Resources.getResourceAsStream("mybatis.xml");
    		  factory=new SqlSessionFactoryBuilder().build(is);
    	} catch (IOException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
      }
      /**
       * 创建sqlsession
       * @return sqlsession
       */
      public static SqlSession getSession()
      {
    	  return factory.openSession();
      }
      /**
       * 关闭sqlsession
       * @param sqlSession sqlsession
       */
      public static void closeSession(SqlSession sqlSession)
      {
    
    	  if(sqlSession!=null)sqlSession.close();
      }
    }
    
  • 在应用时,可以为类设计DAO接口,而映射文件对该接口的方法实现数据库的操作

    StudentMapper.java

    public interface StudentMapper {
    
    	/**
    	 * 通過id獲取學生信息
    	 * @param id
    	 * @return
    	 */
    	Student getById(Integer id);
    	/**
    	 * 通過name獲取學生信息
    	 * @param name
    	 * @return
    	 */
    	Student getByName(String name);
    	/**
    	 * 獲取所有學生信息
    	 * @return
    	 */
    	List<Student> getAll();
    	/**
    	 * insert a student message
    	 * @param student
    	 */
    	void insert(Student student);
    	/**
    	 *delete a student
    	 * @param id
    	 */
    	void delete(Integer id);
    	/**
    	 * update a student message
    	 * @param student
    	 */
    	void update(Student student);
    }
    

    对应的配置文件:这里namespace填接口

    <mapper namespace="jsky.dao.StudentMapper">
            <select id="getById" parameterType="Integer" resultType="Student">
              select * from student where id=#{id}
            </select>
            <select id="getByName" parameterType="String" resultType="Student">
            select * from student where name=#{name}
            </select>
            <select id="getAll" resultType="Student">
             select * from student
            </select>
            <insert id="insert" parameterType="Student" useGeneratedKeys="true" keyProperty="id"  >
            insert into student(name,password,school) values(#{name},#{password},#{school})
            </insert>
            <delete id="delete" parameterType="Integer">
            delete student where id=#{id}
            </delete>
            <update id="update" parameterType="Student">
             update student set name=#{name},password=#{password},school=#{school} where id=#{id}
            </update>
            </mapper>

    mybatis会为这个接口自动提供实现。

  • 最后测试:
    	@Test
    	public void add()
    	{
    		SqlSession session=MyBatisUtils.getSession();
    		Student stu=new Student("張三", "121", "台灣小學");
    		StudentMapper mapper=session.getMapper(jsky.dao.StudentMapper.class);
    		Student st=mapper.getById(1);
    		System.out.println(st);
    		mapper.insert(stu);
    		session.commit();
    		MyBatisUtils.closeSession(session);
    	}

    对应的源码:

时间: 2024-11-04 17:32:06

mybatis快速学习(二)的相关文章

Mybatis快速学习(一)

这两天学习mybatis,写一下主要的知识点和流程吧,懒得再分类了,暂且把它放在ssh类里面吧.首先,它是一个ORM框架,性能介于原生JDBC和hibernate之间,需要自己写sql语句,开发效率比hibernate慢一些,比jdbc快一些,但是对于运行效率比hibernate快一些,比jdbc慢一些,反正也差不多. mybatis快速入门步骤: 第一:引入包:mybatis包和mysql的包. 第二:写配置文件:只要是关于jdbc的配置: <?xml version="1.0"

Mybatis基础学习(二)&mdash;开发Dao方式

一.原始Dao开发方式 UserDao.java public interface UserDao{ public User findUserByID(Serializable id); public List<User> findUsersByName(String name); } UserDaoImpl.java public class UserDaoImpl implements UserDao{ //SqlSessionFactory是单例存在,不应该在具体实例中创建,需要外部依赖

MyBatis基础——MyBatis初探——MyBatis快速学习

一.Mybatis介绍: MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录.(简单的说:替代jdbc,使数据持久化) 二.Mybatis--jar包: 下载地址:http://download.csdn.net/do

mybatis基础学习二

操作users表的CRUD XML实现方式 定义sql映射xml文件 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"> <m

MyBatis框架学习二

增删改查操作 mapper接口本质就是原来的Dao接口,知识为了方便我们的书写,一个mapper接口对应一个mapper映射文件 将UserMapper更名为UserDao,说明本质 修改对应的mapper映射文件的namespace属性,对应上接口. 编写接口 1 package com.like.dao; 2 3 import com.like.pojo.User; 4 5 import java.util.List; 6 7 public interface UserDao{ 8 //获取

MyBatis学习总结(一)——MyBatis快速入门(转载)

孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(一)--MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备

MyBatis学习总结——MyBatis快速入门

MyBatis学习总结(一)--MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.Mybatis入门 1. 用到的相关包      {Mybatis} mybat

【转】MyBatis学习总结(一)——MyBatis快速入门

[转]MyBatis学习总结(一)——MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通jav

MyBatis学习总结(一)——MyBatis快速入门

MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通java项目或者是JavaWeb项目均可,如下图所示: 2.添加相应的jar包 [mybat