MyBatis学习总结(一)---简单配置使用(基于XML方式实现CRUD以及加载配置文件的三种方式)
一、Mybatis简介
Mybatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
二、简单配置使用示例
1.Mybatis可应用于普通JAVA项目或JAVAWeb项目中,此处我建立的是一个JAVAWeb项目,目录结构如下:
2.导入相应的jar包
一个是mybatis的包,如:mybatis-3.4.6.jar;一个是数据库的包,如:mysql-connector-java-5.1.37.jar
3.配置Mybatis的配置文件,如:
[code]<?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:信息配置的是连接数据库的(数据源的)一些参数,如用户名,密码等,MyBatis数据库操作的session就是根据这些信息初始化的--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <!-- 数据源配置 --> <dataSource type="POOLED"> <!-- 数据库驱动 --> <property name="driver" value="com.mysql.jdbc.Driver" /> <!-- 数据库连接URL --> <property name="url" value="jdbc:mysql://localhost:3306/mybatisstudy?useUnicode=true&characterEncoding=utf8"/> <!-- 数据库用户名和密码 --> <property name="username" value="root" /> <property name="password" value="" /> </dataSource> </environment> </environments> <!-- mappers:配置的是一个个Mapper文件,这些文件来约束数据库的信息(Relationship) 和 对象(Object)的信息映射(Mapper);它负责完成对象和数据库表的映射,是ORM最具体的配置--> <mappers> <!-- 配置实体映射文件 --> <mapper resource="com/mybatisstudy/mapper/userMap.xml" /> </mappers> </configuration>
4.建表,如:
5.编写用于测试的实体类,如:
[code]package com.mybatisstudy.model; public class User { private int id; private String name; private String sex; private int age; public User() { super(); } public User(String name, String sex, int age) { super(); this.name = name; this.sex = sex; this.age = age; } public User(int id, String name, String sex, int age) { super(); this.id = id; this.name = name; this.sex = sex; this.age = age; } 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 getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "[id:" + id + ",name:" + name + ",sex:" + sex + ",age:" + age + "]"; } }
6.编写该实体类的映射文件,注意需要在Mybatis的配置文件中引用该文件,如:
[code]<?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="com.mybatisstudy.mapper.userMap"> <select id="selectAllUser" resultType="com.mybatisstudy.model.User"> SELECT * FROM user ; </select> <select id="selectUserById" parameterType="int" resultType="com.mybatisstudy.model.User"> SELECT * FROM user where id = #{id} ; </select> <insert id="addUser" parameterType="com.mybatisstudy.model.User"> INSERT INTO user(id,name,sex,age) VALUES(#{id},#{name},#{sex},#{age}); </insert> <delete id="deleteUserById" parameterType="com.mybatisstudy.model.User"> DELETE FROM user WHERE id=#{id}; </delete> <update id="updateUserById" parameterType="com.mybatisstudy.model.User"> UPDATE user SET age=#{age} ,name=#{name} WHERE id=#{id} </update> </mapper>
7.测试,如:
其中加载Mybatis的配置文件的方式主要有三种,第一种是通过类加载器来加载;第二种是采用文件读取的方式来加载;第三种是使用Mybatis提供的Resources类来进行加载。
注意:对于涉及到增删改数据时,需要手动进行提交(session.commit())。
[code]package com.mybatisstudy.test; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; 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 com.mybatisstudy.model.User; public class Test { public static void main(String[] args) { // mybatis的配置文件 String resource = "mybatisconf.xml"; InputStream inputStream = null; // 方式一:使用类加载器加载mybatis的配置文件 // inputStream = Test.class.getClassLoader().getResourceAsStream(resource); // 方式二:采用文件读取的方式,读取配置文件 /*File file = new File("src/mybatisconf.xml"); Reader reader = null; try { reader = new FileReader(file); } catch (FileNotFoundException e1) { e1.printStackTrace(); } SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);*/ // 方式三:使用MyBatis提供的Resouces类加载mybatis的配置文件 try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // 构建SqlSessionFacoty工厂 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 创建session对象,并使用它来进行数据库的各项 操作 SqlSession session = sqlSessionFactory.openSession(); // 根据Id查询用户 String statement = "com.mybatisstudy.mapper.userMap.selectUserById"; User user = session.selectOne(statement, 1001); System.out.println(user); // 查询所有的用户 String statement2 = "com.mybatisstudy.mapper.userMap.selectAllUser"; List<User> users = session.selectList(statement2); System.out.println(users); // 添加用户信息 User user2 = new User(1003, "小杰", "男", 20); String statement3 = "com.mybatisstudy.mapper.userMap.addUser"; int line = session.insert(statement3, user2); // 对于增删改,需要手动提交事务,才能将数据持久化,才能避免出现脏数据 session.commit(); // 修改用户信息 User user3 = new User(1003, "小明", "男", 21); String statement4 = "com.mybatisstudy.mapper.userMap.updateUserById"; int line2 = session.update(statement4, user3); session.commit(); // 删除用户信息 String statement5 = "com.mybatisstudy.mapper.userMap.deleteUserById"; int line3 = session.delete(statement5, 1003); session.commit(); session.close(); } }
8.结果:
阅读更多
- 简单两步快速实现shiro的配置和使用,包含登录验证、角色验证、权限验证以及shiro登录注销流程(基于spring的方式,使用maven构建)
- MyBatis总结——加载mappers映射文件的三种方式
- ApplicationContext的三种实现方式以及在web.xml配置的两种方式
- mybatis学习总结-核心配置文件mybatis-config.xml(一)
- mybatis学习总结-核心配置文件mybatis-config.xml(二)
- ApplicationContext的三种实现方式以及在web.xml配置的两种方式
- 转ApplicationContext的三种实现方式以及在web.xml配置的两种方式
- [置顶] Spring mvc通过xml配置文件方式实现简单HelloWorld
- 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
- mybatis学习总结-核心配置文件mybatis-config.xml(一)
- 复习struts2之基于XML配置文件实现指定方法的输入校验以及基于XML校验的一些特点
- spring aop的使用(注解方式以及基于xml配置方式)
- 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
- 使用MyBatis配置方式实现CRUD
- spring aop的使用(注解方式以及基于xml配置方式)
- Mybatis学习笔记-CURD(基于配置文件的方式)
- Java学习之道:mybatis简单应用(基于配置文件)
- 8 -- 深入使用Spring -- 4...6 AOP代理:基于注解的XML配置文件的管理方式
- spring 框架中的依赖注入(IOC--设值注入)---使用xml简单配置文件---的具体实例的简单实现
- mybatis学习总结-核心配置文件mybatis-config.xml(一)